Tylor und Horner
-
Hallo @ all!
Ich sollte das Hornerschema und die Taylorserie anwenden, um sin(x) zu berechnen (nur mit reellen Zahlen, ohne eingebaute sin(x)-Funktion).
Der absolute Fehler sollte dabei kleiner gleich 1/10^6 sein.Ich habe mal folgendes zusammen:
function horner(x) L = 0; while abs(sin(x)-L) > (1/(10).^6) for n=1:1000 L = sum((-1).^n*(x.^(2*n+1))./(fac(2*n+1))); end n = n + 100; end % Auswertung mittels Hornerschema (leider noch nicht korrekt) xs = x; ys = L(n+1); for i = n:-1:1 ys = ys*(xs-x(i))+y(i); end err = abs(sin(x) -ys) end
Bei der Sinus-Berechnung bin ich mir eigentlich relativ sicher - aber wie baue ich das Hornerschema noch korrekt ein?
Hierzu wäre ich für jeden Tipp sehr dankbar.Liebe Grüsse,
Marcel
-
Geht das überhaupt? Ich kenne das Hornerschema nur für Polynome. Und ein kurzer Blick in Wikipedia bestätigt dies.
-
Ich geb mal die Aufgabe wieder:
"Benutze das Horner-Schema und "Taylor series expansion write a Matlab program", in dem man nur Feld-Operationen aus reellen Zahlen (keine eingebauten Funktionen wie sin(x)) benutzen darf, um sin(x) für ein gegebenes x aus [0, 2pi] nit absoluten Fehler weniger gleich 1/10^6 zu berechnen."..also sollte es schon gehen. Eventuell aber nicht so, wie ich das begonnen habe..
-
spricht was dagegen, das Taylorpolynom mit Horner zu berechnen?
z.B. Taylorpolynom von sin vom Grad 5:
x-(1/3!)*x^3+(1/5!)*x^5 = x*(1-1/3!*x^2+1/5!*x^4) = x*(1-x^2*(1/3!-1/5!*x^2))
-
Aber müsste man die Rechenschritte nicht allgemein implementieren? (könnte man das überhaupt?)
Also x soll man sicher angeben können (das könnte man bei dir), und ja..okey. Der Fehler sollte einfach kleiner gleich 1/10^6 sein.
..dein Code käme eigentlich schon fast hin, oder?
Noch eine Abfrage dazu, damit der absolute Fehler auch unter 1/10^6 liegt, et voilà.
-
Kann man das nicht so implementieren, dass das Horner-Schema "automatisch" generiert wird?
Also die allgemeine Implementation der Tylor-Serie für den sin ist klar, aber wie sieht das für das Horner-Schema aus?Hierzu wäre ich für jeden Vorschlag dankbar.
-
steht doch da:
x-(1/3!)*x^3+(1/5!)*x^5 = x*(1-1/3!*x^2+1/5!*x^4) = x*(1-x^2*(1/3!-1/5!*x^2)
die allgemeine Form wird ja wohl nicht schwierig aufzustellen sein,
x*(1-x^2*(1/3!-x^2*(1/5!-x^2*(1/7!-x^2*....1/(2n+1)!-x^2*(...)))))
oder so ähnlich