Kubische Gleichung < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) reagiert/warte auf Reaktion | Datum: | 10:18 Di 19.11.2013 | Autor: | tak |
Aufgabe | Schreibe eine Funktion, die eine kubische Gleichung ax³+bx²+cx+d=0 mit Hilfe der Cardanischen Lösungsformel analytisch löst. |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Kann mir jemand vielleicht helfen, wie man hier vorgeht?
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:25 Di 19.11.2013 | Autor: | Diophant |
Hallo und
> Schreibe eine Funktion, die eine kubische Gleichung
> ax³+bx²+cx+d=0 mit Hilfe der Cardanischen Lösungsformel
> analytisch löst.
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
> Kann mir jemand vielleicht helfen, wie man hier vorgeht?
Das wird so nicht möglich sein. Bitte liefere folgendes nach:
a) die Sprache/die Mathesoftware, in der die Funktion geschrieben werden soll
b) deine eigenen bisherigen Ideen
Wir geben hier keine fertigen Lösungen, sondern erarbeiten dieselben in Zusammenarbeit mit den Fragestellern. Ich schlage vor, du machst dir zunächst die Cardanischen Formeln klar, dann startest du selbst einen Versuch und stellst ih hier vor. Und wie gesagt: wenn es um das Umsetzen in eine Funktion geht, bitte die Programmiersparache angeben!
Gruß, Diophant
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:37 Di 19.11.2013 | Autor: | tak |
Ich arbeite mit matlab und habe folgendes erarbeitet:
function [] = card( a,b,c,d )
% Lösung einer kubischen Gleichung [mm] ax^3+bx^2+cx+d=0 [/mm]
% mit Hilfe der Cardanischen Formel.
% Die Gleichung wird auf die Form [mm] y^3+p*y+q=0 [/mm] gebracht.
% Berechnung p und q.
p = [mm] (3*a*c-b^2)/(9*a^2)
[/mm]
q = [mm] 0.5*((2*b^3)/(27*a^3) [/mm] - [mm] (b*c)/(3*a^2) [/mm] + (d/a))
% Diskriminante
D = [mm] p^3 [/mm] + [mm] q^2
[/mm]
z1 = -q + sqrt(D);
z2 = -q - sqrt(D);
f1 = 0.5*(-1 + i*sqrt(3));
f2 = 0.5*(-1 - i*sqrt(3));
if D > 0
u = nthroot(z1, 3);
v = nthroot(z2, 3);
else
u = z1^(1/3);
v = z2^(1/3);
end
y1 = u+v;
y2 = f1*u + f2*v;
y3 = f2*u + f1*v;
x1 = y1 - b/(3*a)
x2 = y2 - b/(3*a)
x3 = y3 - b/(3*a)
% Probe --> Ich soll meine Lösung für x1,x2 und x3 mit dem Satz von Vieta kontrollieren...Hier habe ich das Problem, dass ich nicht immer auf a,b und c komme...
-(x1+x2+x3)
x1*x2 + x2*x3 + x3*x1
-x1*x2*x3
end
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:49 Mi 20.11.2013 | Autor: | tak |
Hat jemand eine Idee, was hier verbessert werden kann?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:10 Mi 20.11.2013 | Autor: | leduart |
Hallo
Der verwendete Vieta gilt nur, wenn du deine Gl. als erstes durch a dividierst.
also für [mm] x^3+bx^2+cx+d
[/mm]
dann d=x1*x2*x3
c=x1x2+x2x3+x1x3
b=-(x1+x2+x3)
ich würde mein Programm damit anfangen durch a zu dividieren und dann in den Formeln a=1 zu setzen. dann klappt sicher auch Vieta.
Gruss leduart
|
|
|
|