Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Polynominterpolation mit Lagrange-Polynomen
Autor
Universität/Hochschule J Polynominterpolation mit Lagrange-Polynomen
s-amalgh
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 16.12.2020
Mitteilungen: 374
  Themenstart: 2021-05-30

Hallo zusammen, ich habe diese Aufgabe https://www.matheplanet.com/matheplanet/nuke/html/uploads/b/54010_Unbej_knjkinhlkinnannt.PNG Ich weiß es nicht wie ich die Auswertungen p(t_i) bestimme. Das ist mein Code \sourceon matlab function Alghabra07 function Lagrange(k) n = length(x) -1; xp = k; smx = 0; for i = 1:n+1 Lx = 1; for j = 1:n+1 if j~=i Lx = Lx * (xp -x(j)) / (x(i) - x(j)); end end smx = smx + y(i) * Lx; end py = smx end x = [-4 -2 0 1 2 3 4 5] y = [3 -1 -4 -2 -1 1 2 2] for i = 1:901 t(i) = (-4) + (i/100) -0.01 ; end Lagrange(3) end \sourceoff Könnte mir jemand bitte dabei helfen? Danke im Voraus! :)


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 810
  Beitrag No.1, eingetragen 2021-06-01

Hallo Warum sollte \sourceon Matlab xp = k; \sourceoff sein? \sourceon Matlab function Alghabra07 function Lagrange(t) n = length(x) - 1; xp = t; smx = 0; for i = 1:n+1 Lx = 1; for j = 1:n+1 if j~=i Lx = Lx .* (xp -x(j)) / (x(i) - x(j)); end end smx = smx + y(i) * Lx; end py = smx; figure(1) plot(x, y, '+r', t, py, 'b') end x = [-4 -2 0 1 2 3 4 5]; y = [3 -1 -4 -2 -1 1 2 2]; t = linspace(-4, 5, 901); Lagrange(t) end \sourceoff Ich hätte erwartet, dass die Aufgabenstellung eigentlich folgenden Aufruf der Funktion erwartet: \sourceon Matlab p = Lagrange(x, y, t); \sourceoff


   Profil
s-amalgh
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 16.12.2020
Mitteilungen: 374
  Beitrag No.2, vom Themenstarter, eingetragen 2021-06-01

Danke erstmal für deine Antwort! Hast du so erwartet ? \sourceon matlab function Alghabra07 function p = Lagrange(x, y, t) n = length(x) - 1; xp = t; sm = 0; for i = 1:n+1 L = 1; for j = 1:n+1 if j~=i L = L .* (xp -x(j)) / (x(i) - x(j)); end end sm = sm + y(i) * L; end p = sm; figure(1) plot(x, y, '+r', t, p, 'b') end x = [-4 -2 0 1 2 3 4 5]; y = [3 -1 -4 -2 -1 1 2 2]; t = linspace(-4, 5, 901); p = Lagrange(x,y,t) end \sourceoff Danke im Voraus für die Antwort! :)


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 810
  Beitrag No.3, eingetragen 2021-06-01

Ja, aber den Aufruf der Plot-Funktion würde ich auch noch rausziehen. \sourceon Matlab function Alghabra07 function p = Lagrange(x, y, t) n = length(x) - 1; xp = t; sm = 0; for i = 1:n+1 L = 1; for j = 1:n+1 if j~=i L = L .* (xp -x(j)) / (x(i) - x(j)); end end sm = sm + y(i) * L; end p = sm; end x = [-4 -2 0 1 2 3 4 5]; y = [3 -1 -4 -2 -1 1 2 2]; t = linspace(-4, 5, 901); p = Lagrange(x,y,t) figure(1) plot(x, y, '+r', t, p, 'b') end \sourceoff


   Profil
s-amalgh
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 16.12.2020
Mitteilungen: 374
  Beitrag No.4, vom Themenstarter, eingetragen 2021-06-01

Ich habe eine Frage Wieso hast du . Vor * geschrieben? Also L = L .* ….. und wenn ich . lösche , funktioniert das Programm nicht mehr?


   Profil
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 810
  Beitrag No.5, eingetragen 2021-06-02

$L$ ist ein Vektor. In $(xp -x(j)) / (x(i) - x(j))$ ist $xp$ ein Vektor und daher der gesamte Term ebenfalls. Mit $.*$ werden die jeweiligen Einträge der beiden Vektoren multipliziert. Ohne den Punkt versucht Matlab das Skalarprodukt der beiden Ausdrücke zu berechnen. \sourceon Matlab a = [1 2 3 4]; >> a.*a ans = 1 4 9 16 \sourceoff Beachte auch \sourceon Matlab % Vektor - Skalar ergibt Vektor a-1 ans = 0 1 2 3 \sourceoff


   Profil
s-amalgh
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 16.12.2020
Mitteilungen: 374
  Beitrag No.6, vom Themenstarter, eingetragen 2021-06-06

Hallo Majoka, Könntest du mir bitte dabei helfen ? https://www.matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=254310&start=0&lps=1847907#v1847907 Danke im Voraus! :)


   Profil
s-amalgh hat die Antworten auf ihre/seine Frage gesehen.
s-amalgh hat selbst das Ok-Häkchen gesetzt.
s-amalgh wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]