WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interpolation nach Newton

 

hb92
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 21.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2011, 20:02     Titel: Interpolation nach Newton
  Antworten mit Zitat      
Hallo zusammen,
ich bin neu hier und hoffe gleich mal, dass mir jemand bei meiner Aufgabe helfen kann.

Also die Aufgabe ist folgende:

Schreibe eine funktion interpoly(x,f), welche zu gegebenen Stützstellen das zugehörige Interpolationspolynom berechnet und im Intervall [a,b] plottet.
Das ganze nach dem Newton-Verfahren, also das der dividierten Differenzen und nicht mit dem Befehl polyfit. Das Programm soll dann mit f(x)=cos(x) getestet werden.
Also Hinweis ist gegeben, dass man mit linspace(a,b,n) n äquidistanze Stützstellen im Intervall [a,b] erzeugen kann.

Ich nehme Vorweg, dass ich in Matlab absoluter Anfänger bin.

Ich habe nun zuerst ein Skript mit der Funktioin geschrieben:

Code:
%fun.m

function y=fun(x)
    y=cos(x);


und ein Hauptfile zum Aufrufen der einzelnen Skripts:

Code:
%Script für die einzelnen Aufrufe

%Interpolation
interpoly(x,fun);
%Zeichnen der Funktion:
plot_fun


Wie man sieht wird hier noch ein Skript zum plotten aufgerufen und das entscheidende zur Interpolation.
Das plot-skript mache ich am Ende.

Ich komme jetzt lieber zu meiner eigentlichen Frage:
In interpoly.m habe ich mir erstmal die Funktion deklariert:

Code:
function x_pol=interpoly(x,fun1)
.

Dann wollte ich loslegen, mir mit dem linspace-Befehl die Stützstellen berechnen zu lassen, und zwar zwischen -6 und 6 und mit 6 Schritten:

Code:
.

Jetzt müsste er ja, wenn cih es richtig verstanden habe, in den Vektor x 6 einträge mit den Werten [-6 -4 -2 ... 4 6] geschrieben haben.
Anschließend wollte ich die dazugehörigen Funktionswerte berechnen:

Code:
.

Jetzt habe ich ja 2 Vektoren, x und y, mit je 6 einträgen, oder?

Weiter wollte ich machen, indem ich anfange, das Basispolynom zu berechnen.
Ein Teil davon soll mit der folgenden Formel gemacht werden:

\sum_{k=1}^6 \left(c_k*\phi_k\right)

mit

c_k=\left(\frac{f(x_k)-f(x_{k-1})}{x_k-x_{k-1}}\right)

und

\phi_k=\prod_{i=1}^{k-1}{(x-x_i)}

Jetzt zu meiner Frage:
Wie mache ich das, dass er jeweils für den Index den passenden Wert aus meinem Vektor nimmt? Also dass er z.B. für i=3 den 3. eintrag in x nimmt.
Und zudem wird er ja wahrscheinlich die Variable x in der Formel mit dem vektor verwechseln, hilft da nur eine Umbenennung?
Ich hoffe dass meine Frage einigermaßen verständlich ist. Also ich verstehe nicht wie das mit den ganzen Indizes gemacht wird. Hoffe mir kann jemand helfen!

Vielen Dank im voraus, einen schönen Abend noch.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 21.11.2011, 21:48     Titel: Re: Interpolation nach Newton
  Antworten mit Zitat      
Hallo hb92,

Die "Getting Started"-Kapitel erklären, wie man einen Vektor indiziert. Es ist dringen anzuraten, diese Kapitel zu lesen.
Die Idee eine der Variablen, die "x" heißt umzubenennen, ist sehr gut.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
hb92
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 21.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2011, 21:09     Titel:
  Antworten mit Zitat      
Nabend,
wo finde ich denn diese Kapitel?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.