Matlab - Programm kubische Interpolation

Neue Frage »

Theend9219 Auf diesen Beitrag antworten »
Matlab - Programm kubische Interpolation
Hallo,
ich soll eine Matlab Funktion schreiben, der den kubischen Spline berechnet zu für und dessen Auswertung an gewissen Stellen ermöglicht.

Leider habe ich wenig Matlab Kenntnisse ich weiß lediglich wie man zu zwei Vektoren eine Interpolation durchführt mit polyfit, xi,yi und dies zu plotten, jedoch nicht wie man ein Programm dazu schreibt ... Im Internet gab es leider auch nicht viel brauchbares .. deswegen hoffe ich ihr könnt mir vielleicht ein wenig helfen ..
Ich bin den Programmiersprachen C++, Java, C, und R vertraut .. da weiß ich wie ich Eingaben z.B mit cin>>a; zu einem int a eingeben kann .. aber leider nicht in Matlab .. Ich hoffe jemand kann mir helfen


LG
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Ich korrigiere wir sollen eine Funktion definieren
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Ist dir denn klar wie der Interpolationsalgorithmus funktioniert? Das solltest du dir zuerst überlegen,bevor du dich mit matkab befasst.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Halloooo,

Naja man nimmt an das in einem Teilintervall Splines mit dem kubischen Polynom übereinstimmen.

Dabei gilt:




die hoch 3 wegen dem Rang also 2 mal diffbar.
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Ja, und weiter? Woher kommen die ?
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Die gehen aus den dividierten Differenzen hervor die man später dann ins Horner Schema überträgt
 
 
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Genau diese beiden Punkte gilt es zu implementieren in matlab.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Ich weiß ja wie ich vorgehen muss. Wenn ich beispielsweise zwei Punkte habe [3,4] und [2,3], wobei

Dann erhalte ich für da mache ich nichts anderes als

Aber ich weiß nicht wie ich das für endliche und y implementiere

lg
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Zitat:
Original von Theend9219
Aber ich weiß nicht wie ich das für endliche und y implementiere
Die frage verstehe ich nicht so ganz.

Du berechnest diese dividierten Differenzen grob gesagt in einer Schleife und speicherst die neuen Werte dann in einem separaten Vektor.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Die Schleifenidee hatte ich auch ... Aber ich weiß nicht wie das abläuft


if

else

end
..
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
if ist keine Schleife. Irgendwie scheint dein Problem nicht diese spezielle Aufgabe, sondern fehlende Grundkenntnisse in MATLAB zu sein. Versuch dich lieber mal an einer etwas weniger anspruchsvollen Aufgabe im Internet, es gibt da zig Tutorials.

Mal so ganz grob und ungetestet:

Die Formel

überträgt sich in MATLAB als
code:
1:
2:
3:
4:
for i = 1:n-1
z(i)=(y(i+1)-y(i))/(x(i+1)-x(i))
end


So generell wirst du da aber um eine gute Einsteigerlektüre nicht herumkommen, ich habe keine Lust, und halte es auch nicht für sinnvoll, die ganze Aufgabe für dich zu programmieren.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Danke ..
er schreibt :
Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Ich hatte einen Tippfehler korrigiert. Generell solltest du aber selbst in der Lage dazu sein, auf eine korrekte Klammersetzung zu achten und das Problem selbstständig zu lösen.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
diese Klammersetzung hatte ich selbst schon so korrigiert..
??? Undefined function or method 'y' for input arguments of type 'double' jettzt kommt die meldung
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Zitat:
Original von Theend9219
diese Klammersetzung hatte ich selbst schon so korrigiert..
??? Undefined function or method 'y' for input arguments of type 'double' jettzt kommt die meldung
Ja, du musst logischerweise die Eingabedaten x und y festlegen und in MATLAB eingeben.

Beispiel mit zufälligen Zahlen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
x = [1 2 3 4 5]
y = [3 5 9 6 4]
n = length(x)


for i = 1:n-1
z(i)=(y(i+1)-y(i))/(x(i+1)-x(i))
end

Steht wie gesagt alles in Standard-Einsteigerwerken zu MATLAB.

Ich hatte oben schon was dazu geschrieben:
So generell wirst du da aber um eine gute Einsteigerlektüre nicht herumkommen, ich habe keine Lust, und halte es auch nicht für sinnvoll, die ganze Aufgabe für dich zu programmieren.

Ich lasse es jetzt.

PS: Du hast den Code nicht richtig kopiert.
Theend9219 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
danke .. noch eine kleine Frage ehe ich 60 seiten skript durcharbeite .

for z = 1:n-1, i=1:n-1
z+z(x-x(i)+z(x-x(i)^{2}+z(x-x(i))^3)

kann ich das denn so machen um das polynom zu bestimmen=?
Math1986 Auf diesen Beitrag antworten »
RE: Matlab - Programm kubische Interpolation
Nein. Probiers aus, da stimmt nichtmal die Klammersetzung.

Bevor du nicht die dividierten Differenzen hast kannst du das Polynom gar nicht berechnen.
Neue Frage »
Antworten »



Verwandte Themen

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