Bruch in Polynomdarstellung? < Maxima < Mathe-Software < Mathe < Vorhilfe
|
Hallo,
ich habe auf der Suche nach einem Forum für maxima hierher gefunden. Ich hoffe, dass mir hier geholfen werden kann. Ich habe folgendes Problem:
Ich möchte den Audruck:
r1+r2*T/(z-1)+r3/t1*(z-1)/(z-c1)+r4/t2*(z-1)/(z-c2)
[mm] r_1+\bruch{r_2*T}{z-1}+\bruch{r_3}{t_1}*\bruch{z-1}{z-c_1}+\bruch{r_4}{t_2}*\bruch{z-1}{z-c_2}
[/mm]
zu einem Bruch zusammenfassen, und zwar so, dass Zähler und Nenner jeweils in Polynomdarstellung als Potenzen von z angegeben werden. Also so:
[mm] \bruch{b_3*z^3+b_2*z^2+b_1*z+b_0}{a_3*z^3+a_2*z^2+a_1*z+a_0}
[/mm]
Weiß jemand wie das in maxima funktioniert? Als maxima-Anfänger habe ich da nämlich keine Ahnung und bin auch mit der Dokumentation nicht schlauer geworden.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 08:35 Di 20.05.2008 | Autor: | springfish |
Ich habe es jetzt hinbekommen, allerdings etwas umständlich:
Mit ratnumer(expr) und ratdenom(expr) erhalte ich das Zähler und Nennerpolynom, die Koeffizienten von [mm] z^n [/mm] erhalte ich dann über coeff(expr, z, n)
Ich erhalte damit ein brauchbares Ergebnis, falls es noch eleganter geht, bin ich über einen Hinweis aber trotzdem noch sehr erfreut.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:07 Di 20.05.2008 | Autor: | rainerS |
Hallo!
> Ich möchte den Audruck:
> r1+r2*T/(z-1)+r3/t1*(z-1)/(z-c1)+r4/t2*(z-1)/(z-c2)
>
> [mm]r_1+\bruch{r_2*T}{z-1}+\bruch{r_3}{t_1}*\bruch{z-1}{z-c_1}+\bruch{r_4}{t_2}*\bruch{z-1}{z-c_2}[/mm]
>
> zu einem Bruch zusammenfassen, und zwar so, dass Zähler und
> Nenner jeweils in Polynomdarstellung als Potenzen von z
> angegeben werden. Also so:
>
> [mm]\bruch{b_3*z^3+b_2*z^2+b_1*z+b_0}{a_3*z^3+a_2*z^2+a_1*z+a_0}[/mm]
>
> Weiß jemand wie das in maxima funktioniert? Als
> maxima-Anfänger habe ich da nämlich keine Ahnung und bin
> auch mit der Dokumentation nicht schlauer geworden.
Benutze ratsimp:
1: | B:r1+r2*T/(z-1)+r3/t1*(z-1)/(z-c1)+r4/t2*(z-1)/(z-c2),ratsimp$
| 2: | for i:0 thru 3 do print(b[i],"=", coeff(num(B),z,i))$
| 3: | for i:0 thru 3 do print(a[i],"=", coeff(denom(B),z,i))$ |
Viele Grüße
Rainer
|
|
|
|
|
Hallöle,
möglicherweise verstehe ich dich falsch, aber ein einfaches rat(ausdruck,z) scheint die Form zu ergeben, die du möchtest:
1: | (%i1) ausdruck:r1+r2*T/(z-1)+r3/t1*(z-1)/(z-c1)+r4/t2*(z-1)/(z-c2);
| 2: | (%o1) (r2*T)/(z-1)+(r4*(z-1))/(t2*(z-c2))+(r3*(z-1))/(t1*(z-c1))+r1
| 3: | (%i2) rat(ausdruck,z);
| 4: | (%o2) (((r1*t1+r3)*t2+r4*t1)*z^3+(r2*t1*t2*T+((-c2-c1-1)*r1*t1+(-c2-2)*r3)*t2+(-c1-2)*r4*t1)*z^2
| 5: | +((-c2-c1)*r2*t1*t2*T+(((c1+1)*c2+c1)*r1*t1+(2*c2+1)*r3)*t2+(2*c1+1)*r4*t1)*z+c1*c2*r2*t1*t2*T+
| 6: | (-c1*c2*r1*t1-c2*r3)*t2-c1*r4*t1)/(t1*t2*z^3+(-c2-c1-1)*t1*t2*z^2+((c1+1)*c2+c1)*t1*t2*z-c1*c2*
| 7: | t1*t2)
| 8: | (%i3) |
Alles Gute,
Peter
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:00 Mi 21.05.2008 | Autor: | Peter_Pein |
Ich sehe gerade, dass du doch eher an den Koeffizienten des Zählers/Nenners interessiert bist. Mit ratnum/ratden bist du schon auf dem richtigen Weg. Rainers Lösung ist da natürlich völlig korrekt, aber als Einzeiler ginge bleistiftsweise:
map(lambda([r],map(lambda([dn],coeff(r(ausdruck),z,dn)),[0,1,2,3])),[ratnumer,ratdenom]);
Peter
|
|
|
|