Hallo,
wie w"ar's wenn Du die nichtlinearen Argumente der beiden UnitStep[]
Funktionen in lineare umwandelst also z. B.
u1[x_] := (UnitStep[x] + UnitStep[1/2 - x]) - 1
u2[x_] := -UnitStep[x - 1] - UnitStep[1/2 - x] + 1
f[x_] := (-4*5*x + 5)*u1[x] + (4*5*x - 3*5)*u2[x]
dann kann Mathematica das prima integrieren
2/T*Integrate[f[t]*Cos[k*2*\[Omega]/T*t], {t, 0, 1},
Assumptions -> {Mod[k, 2] == 0, Im[k*\[Omega]/T] == 0}]
(5*T*(-4*Cos[(k*\[Omega])/T] + 4*Cos[Sqrt[(k^2*\[Omega]^2)/T^2]]^2 +
Sqrt[(k^2*\[Omega]^2)/T^2]*Sin[2*Sqrt[(k^2*\[Omega]^2)/T^2]]))/
(k^2*\[Omega]^2)
Man kann nat"urlich auch das Integral per Hand aufspalten und
2(Integrate[(-4*5*t + 5)*Cos[k*2*\[Omega]/T*t], {t, 0, 1/2},
Assumptions -> {Im[k*\[Omega]/T] == 0}] +
Integrate[(4*5*t - 3*5)*Cos[k*2*\[Omega]/T*t], {t, 1/2, 1},
Assumptions -> {Im[k*\[Omega]/T] == 0}])/T
rechnen.
Was dann schon die zweite Variante w"are.
Gruss
Jens
Oliver Rusterholz wrote:
>
> Hallo
>
> Ich möchte die einzelnen Fourierkomponenten einer stückweise definierten
> Funktion ausrechnen. Die Funktion ist ein Dreiecksignal und
> folgendermassen definiert:
> f[x_]:=(-4*5*x+5)*UnitStep[-x(x-1/2)]+(4*5*x-3*5)*UnitStep[-(x-1)(x-1/2)]
>
> Will ich nun die Komponente ak für gerade k ausrechnen, mache ich dass
> folgendermassen:
> 2/T*Integrate[f[t]*Cos[k*2*?/T*t], {t, 0, 1}, Assumptions -> Mod[k, 2] == 0]
>
> Nun rechnet Mathematica dies aber nicht aus, sondern zeigt das Integral
> an wie ich es oben eingegeben habe (mal abgesehen davon, dass er f[t]
> durch definierte Funktion ersetzt). Rechne ich nun das Integral
> numerisch mit N[%] aus bringt er drei Fehlermeldungen, der Integrand
> sein bei t=0.5 nicht numerisch. Das Resultat sollte eigentlich 0 sein.
>
> Gibt es nun irgendeinen Weg, wie ich das symbolisch ausrechnen kann?
> Oder wenigstens numerisch? Bei einfachen Funktionen, wie z.B. einem
> Rechtecksignal funktioniert dieses Vorgehen.
>
> Vielen Dank
> Oliver