Hornerschema programmiert

Neue Frage »

Joda Auf diesen Beitrag antworten »
Hornerschema programmiert
Hallo,

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... unglücklich

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??
Poff Auf diesen Beitrag antworten »
RE: Hornerschema programmiert
musst du nicht mit 'x' multiplizieren ??
.

zudem 'durchau' ich das nicht ganz

Zitat:
L = k(z);
L(z) = L / x + k(z);
end
L

und auf L soll wohl die Lösung stehen ??,
dann wäre ja der letzte Prozess für L(z) unnötig
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)
.
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! unglücklich
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
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 . Augenzwinkern


smile
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »