ist es das was du willst ?
grüsse robert
In[233]:=
y = a1 + a2*Sin[b + x] + a3*Sin[c - x] +
a4*Cos[d + x] + a5*Cos[e - x] + a6*Sin[f + 2*x] +
a7*Sin[g - 2*x] + a8*Cos[h + 2*x] +
a9*Cos[i - 2*x];
In[234]:=
rs = Last[Simplify[PowerExpand[Simplify[
Solve[{a*Sin[n*x + b] == si*Sin[n*x] +
co*Cos[n*x], si^2 + co^2 == a^2},
{si, co}]]]]]
Out[234]=
{si -> a*Cos[b], co -> a*Sin[b]}
In[235]:=
rc = First[Simplify[PowerExpand[
Simplify[Solve[{a*Cos[n*x + b] == si*Sin[n*x] +
co*Cos[n*x], si^2 + co^2 == a^2},
{si, co}]]]]]
Out[235]=
{si -> (-a)*Sin[b], co -> a*Cos[b]}
In[236]:=
yf = y /. {a_*Sin[b_ + (n_.)*x_] -> si*Sin[n*x] +
co*Cos[n*x] /. rs, a_*Cos[b_ + (n_.)*x_] ->
si*Sin[n*x] + co*Cos[n*x] /. rc}
Out[236]=
a1 + a4*Cos[d]*Cos[x] + a5*Cos[e]*Cos[x] +
a8*Cos[h]*Cos[2*x] + a9*Cos[i]*Cos[2*x] +
a2*Cos[x]*Sin[b] + a3*Cos[x]*Sin[c] +
a6*Cos[2*x]*Sin[f] + a7*Cos[2*x]*Sin[g] +
a2*Cos[b]*Sin[x] - a3*Cos[c]*Sin[x] -
a4*Sin[d]*Sin[x] + a5*Sin[e]*Sin[x] +
a6*Cos[f]*Sin[2*x] - a7*Cos[g]*Sin[2*x] -
a8*Sin[h]*Sin[2*x] + a9*Sin[i]*Sin[2*x]
In[237]:=
s1 = (Plus @@ #1 & )[Cases[yf, (a_.)*Sin[x] -> a]]
s2 = (Plus @@ #1 & )[Cases[yf, (a_.)*Sin[2*x] -> a]]
c1 = (Plus @@ #1 & )[Cases[yf, (a_.)*Cos[x] -> a]]
c2 = (Plus @@ #1 & )[Cases[yf, (a_.)*Cos[2*x] -> a]]
Out[237]=
a2*Cos[b] - a3*Cos[c] - a4*Sin[d] + a5*Sin[e]
Out[238]=
a6*Cos[f] - a7*Cos[g] - a8*Sin[h] + a9*Sin[i]
Out[239]=
a4*Cos[d] + a5*Cos[e] + a2*Sin[b] + a3*Sin[c]
Out[240]=
a8*Cos[h] + a9*Cos[i] + a6*Sin[f] + a7*Sin[g]
In[241]:=
const = Simplify[y - (s1*Sin[x] + s2*Sin[2*x] +
c1*Cos[x] + c2*Cos[2*x])]
Out[241]=
a1
In[242]:=
r = const + s1*Sin[x] + c1*Cos[x] + c2*Cos[2*x] +
s2*Sin[2*x]
Out[242]=
a1 + Cos[x]*(a4*Cos[d] + a5*Cos[e] + a2*Sin[b] +
a3*Sin[c]) + Cos[2*x]*(a8*Cos[h] + a9*Cos[i] +
a6*Sin[f] + a7*Sin[g]) +
(a2*Cos[b] - a3*Cos[c] - a4*Sin[d] + a5*Sin[e])*
Sin[x] + (a6*Cos[f] - a7*Cos[g] - a8*Sin[h] +
a9*Sin[i])*Sin[2*x]
(* kontrolle ist gut *)
In[243]:=
Simplify[r - y]
Out[243]=
0
In[244]:=
res = r /. (si1_.)*Sin[x] + (co1_.)*Cos[x] ->
Sqrt[si1^2 + co1^2]*Sin[x + ArcTan[si1, co1]] /.
(si2_.)*Sin[2*x] + (co2_.)*Cos[2*x] ->
Sqrt[si2^2 + co2^2]*Sin[2*x + ArcTan[si2, co2]]
Out[244]=
a1 + Sqrt[(a4*Cos[d] + a5*Cos[e] + a2*Sin[b] +
a3*Sin[c])^2 + (a2*Cos[b] - a3*Cos[c] -
a4*Sin[d] + a5*Sin[e])^2]*
Sin[x + ArcTan[a2*Cos[b] - a3*Cos[c] - a4*Sin[d] +
a5*Sin[e], a4*Cos[d] + a5*Cos[e] + a2*Sin[b] +
a3*Sin[c]]] +
Sqrt[(a8*Cos[h] + a9*Cos[i] + a6*Sin[f] + a7*Sin[g])^
2 + (a6*Cos[f] - a7*Cos[g] - a8*Sin[h] +
a9*Sin[i])^2]*
Sin[2*x + ArcTan[a6*Cos[f] - a7*Cos[g] -
a8*Sin[h] + a9*Sin[i], a8*Cos[h] + a9*Cos[i] +
a6*Sin[f] + a7*Sin[g]]]
(* kontrolle ist gut *)
In[245]:=
FullSimplify[res - y]
Out[245]=
0
-----Original Message-----
From: dieter.palme@XXXXXXX.com [mailto:dieter.palme@XXXXXXX.com]
Sent: Friday, May 23, 2003 1:31 PM
To: dmug@XXXXXXX.ch
Subject: Hilfe bei unhandlichem Ausdruck gesucht
Freudliche Grüße an die Gruppe und eine Frage, die meiner Ungeduld, das ganze Handbuch zu durchsuchen, entspringt.
Als Ergebniss einer Rechnung erhalte ich einen Ausdruck in der Art:
y = a1 + a2 Sin[b + x] + a3 Sin[c - x] + a4 Cos[d + x] + a5 Cos[e - x] + a6 Sin[f + 2 x] + a7 Sin[g - 2 x] + a8 Cos[h +
2 x] + a9 Cos[i - 2 x]
Ich möchte aber in eine Form kommen, die vielleicht so aussieht:
y = a1 + Sin[x - k] + Sin[2 x - l]
Ich habe zwar schon den Befehl "Position[Ausdr, Variabl]" gefunden, damit könnte man die Stellen finden, in denen x
bzw. 2 x vorkommt und dann die Phase k bzw. l ausrechnen. Der Befehl unterscheidet aber zwischen +x und -x. Da fällt
mir dann nur noch eine Schleife ein, die über die Länge des Ergebnisses von Position[] zählt, dann nach Sin und Cos
unterscheidet und dann die richtigen Quotienten ausrechnet und ich habe aber bei Jens Kuska gelernt, daß Schleifen
"igittigit" sind. Also sollte es eine elegantere Lösung geben. Erschwerend kommt hinzu, daß alles aus x auch Null sein
kann. Sonst wäre es ja zu einfach, es stände ja alles immer an seiner vorbestimmten Stelle.
MfG
Dipl. Phys. Dieter Palme
Fiberoptic
Tektronix Munich GmbH
Gauss Strasse 11
D-85757 Karlsfeld
Germany
mailto:dieter.palme@XXXXXXX.com
Off: +49 (0)8131 5956-0
Tel: +49 (0)8131 595635
Fax: +49 (0)8131 595699
Mob: +49 (0)177 8066318
http://www.tektronix.com
Tektronix
Enabling Innovation