Hornerschema programmiert |
24.04.2004, 23:13 | Joda | Auf diesen Beitrag antworten » | ||
Hornerschema programmiert ich will in Matlab Ableitungen und Polynomberechnungen programmieren. Dafür will ich auf Grund des ausgewogenen Additions- und Multiplikationsverhaltens das Horner Schema verwenden. Eigentlich habe ich auch eine sehr konkrete Vorstellung und schon einiges im Netz gefunden. Aber irgendwie läuft das nicht... Als Lösungsweg habe ich noch einen ganz normalen .m-File gewählt. Ist vielleicht eine functions-Lösung mit Paramterübernahme die Lösung? Momentan habe ich nur Müll raus... Hier mal der interessante Teil des Quelltextes: ----------------------------------------------------------ANFANG------------------- g = input('Geben Sie den Grad der Funktion an \n'); for i = g+1:-1:1 % Abfrage der Koeffizienten von x j = i - 1 % Hilfvariable, um x^0 korrekt darstellen zu können k(i) = input('Geben Sie den Koeffizienten für x hoch j ein \n'); % Hier wäre es praktisch in den input-text eine interne Variable (hier: j) %anzeigen lassen zu können end; x = input('Für welchen x-Wert soll das Horner Schema angewendet werden? \n'); for z = 1:1:g+1 L = k(z); L(z) = L / x + k(z); end L ----------------------------ENDE--------------------------------------------------- Was mache ich falsch?? |
||||
24.04.2004, 23:20 | Poff | Auf diesen Beitrag antworten » | ||
RE: Hornerschema programmiert musst du nicht mit 'x' multiplizieren ?? . zudem 'durchau' ich das nicht ganz
und auf L soll wohl die Lösung stehen ??, dann wäre ja der letzte Prozess für L(z) unnötig |
||||
24.04.2004, 23:37 | Poff | Auf diesen Beitrag antworten » | ||
RE: Hornerschema programmiert .. edit funzt nicht, wie wärs etwa damit ?? L(0) = k(0); for z = 1:1:g+1 L(z) = L(z-1) * x +k(z) ; end L(z) . |
||||
25.04.2004, 11:43 | Joda | Auf diesen Beitrag antworten » | ||
Das mit L(0) = k(0) geht nicht, da Matlab nur positive, ganzzahlige () kennt! und die Prozedur für L(z) geht auch nicht! |
||||
25.04.2004, 13:03 | Joda | Auf diesen Beitrag antworten » | ||
Lösung gefunden!! Ich habe nun die richtige Lösung gefunden: % Formel für Horner Schema L(g+1) = k(g+1) * x; % Definition um Startwert zur Rekursion zu geben for z = g:-1:2 L(z) = (L(z+1) + k(z)) *x; end; L(1) = L(2) + k(1); % Addition des letzten Koeffizienten, der für x^0 steht fprintf ('\nDie Lösung nach einmaligem Anwenden lautet:') L(1) % Ausgabe des Ergebnisses |
||||
25.04.2004, 14:59 | Poff | Auf diesen Beitrag antworten » | ||
RE: Hornerschema programmiert Nun, mein Vorschlag war auch nur 'TENDENZIELL' zu verstehen, da diverse Unklarheiten noch für mich bestanden was die Numerierung der Koeff's angeht usw. Auch wenn deine Lösung nun läuft ist sie immer noch unötig komplex. Mal angenommen der höchstwertige Koeff steht auf k(g+1) und der niedrigste auf k(1) und auf 'x' die Stelle, dann lässt sich das doch einfach so machen: L=k(g+1); for z = g+1:-1:2 L=L*x +k(z-1); end; fprintf ('\nDie Lösung nach einmaligem Anwenden lautet:') L % Ausgabe des Ergebnisses oder sogar soo wenn die Variablen standartmäßig mit Null vorbelegt sind: ( bzw falls nicht, dann einfach L=0; VOR die Schleife setzen !!) for z = g+2:-1:2 L=L*x +k(z-1); end; fprintf ('\nDie Lösung nach einmaligem Anwenden lautet:') L % Ausgabe des Ergebnisses . |
||||
Anzeige | ||||
|
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|