0 Daumen
329 Aufrufe

Aufgabe - Interpolat:

Berechnen Sie das interpolierende Spline zu den angegebenen folgenden Werten.

math.PNG

Lösung

\( \left(\begin{array}{lllll|r} 2 & 1 & 0 & 0 & 0 & -96 \\ 0,5 & 2 & 0,5 & 0 & 0 & -72 \\ 0 & 0,5 & 2 & 0,5 & 0 & -36 \\ 0 & 0 & 0,5 & 2 & 0,5 & 0 \\ 0 & 0 & 0 & 1 & 2 & 24 \end{array}\right) \Rightarrow\left\{\begin{array}{l} M_{1}=-36 \\ M_{2}=-24 \\ M_{3}=-12 \\ M_{4}=0 \\ M_{5}=12 \end{array}\right. \)


Problem/Ansatz:

Wie findet man M1... Mn und D0...Dn?

Avatar von

Hallo und Willkommen in der Mathelounge,

der Thomas-Algorithmus könnte Dir weiter helfen. siehe: https://de.wikipedia.org/wiki/Thomas-Algorithmus

Danke für Ihre Antwort. ich verstehe immer nicht.

ich verstehe immer nicht.

Ja ... das schreiben viele! Es wäre so toll und so hilfreich, wenn man lesen könnte WAS GENAU Du nicht verstehst. Ich vermute Du verstehst den 'Thomas-Algorithmus' nicht!

Ist das so?

Dann antworte mit "ich verstehe die Beschreibung des Thomas-Algorithmus in Wikipedia nicht". Dann wäre es natürlich auch hilfreich zu wissen an welcher Stelle des Artikels Du was nicht verstehst.

Ich antworte Dir dann später. im Augenblick habe ich nicht genug Zeit dafür!

"ich verstehe die Beschreibung des Thomas-Algorithmus in Wikipedia nicht".

Ich habe eine Formel .Aber wenn ich diese verwende komme ich nicht zur Lösung

dn= 6/xn-xn-1(y'n - yn-yn-1/xn-xn-1)

2 Antworten

0 Daumen

Das Verfahren sieht ehr nach

https://de.wikipedia.org/wiki/Spline-Interpolation#Konstruktion

aus. Mit Hermite'schen Randbedingungen (auch eingespannter Rand).

ich komme auf

\(\small \left(\begin{array}{rrrrr}\mu_0&\lambda_0&0&0&0\\\frac{h_{0}}{6}&\frac{h_{0} + h_{1}}{3}&\frac{h_{1}}{6}&0&0\\0&\frac{h_{1}}{6}&\frac{h_{1} + h_{2}}{3}&\frac{h_{2}}{6}&0\\0&0&\frac{h_{2}}{6}&\frac{h_{2} + h_{3}}{3}&\frac{h_{3}}{6}\\0&0&0&\lambda_n&\mu_n\\\end{array}\right) \; \left(\begin{array}{r}M_{0}\\M_{1}\\M_{2}\\M_{3}\\M_{4}\\\end{array}\right) = \left(\begin{array}{r}b_0\\\frac{y_{2} - y_{1}}{h_{1}} - \frac{y_{1} - y_{0}}{h_{0}}\\\frac{y_{3} - y_{2}}{h_{2}} - \frac{y_{2} - y_{1}}{h_{1}}\\\frac{y_{4} - y_{3}}{h_{3}} - \frac{y_{3} - y_{2}}{h_{2}}\\b_n\\\end{array}\right)\)

\(\small \left(\begin{array}{rrrrr}\frac{2}{3}&\frac{1}{3}&0&0&0\\\frac{1}{3}&\frac{4}{3}&\frac{1}{3}&0&0\\0&\frac{1}{3}&\frac{4}{3}&\frac{1}{3}&0\\0&0&\frac{1}{3}&\frac{4}{3}&\frac{1}{3}\\0&0&0&\frac{1}{3}&\frac{2}{3}\\\end{array}\right) \cdot \left(\begin{array}{r}M_{0}\\M_{1}\\M_{2}\\M_{3}\\M_{4}\\\end{array}\right) = \left(\begin{array}{r}-32\\-48\\-24\\0\\8\\\end{array}\right)\)

Korrektur:

Ich komme in der letzten Gleichung/Zeile auf -8, was bei Dir 24 heißt. Ich bekomme dann ganz andere Mi , mit denen treffe ich auch die Punkte - Mit deinen Mis erhalte ich 4 mal die gleichen Spline-Polynome?

Ich hab ein (-)Vorzeichen übersehen - komme jetzt auf die gleiche Lösung

4 mal \(f_i(x) \, :=  \, x^{3} - 6 \; x^{2} + 2 \; x + 3,\quad i = 1...4\)

Avatar von 21 k
0 Daumen

Hallo,

Ich habe eine Formel .Aber wenn ich diese verwende komme ich nicht zur Lösung
dn= 6/xn-xn-1(y'n - yn-yn-1/xn-xn-1)

Also diese Formel kann ja nur falsch sein. Die formale Interpretation dieser Formel wäre diese:$$d_n= 6/x_n-x_n-1(y_n' - y_n-y_n-1/x_n-x_n-1) \\ \phantom{d_n}= \frac6{x_n} - x_n - \left(y_n'-2y_n - \frac1{x_n}-x_n-1\right) \\ \phantom{d_n}= \frac7{x_n} - y_n'+2y_n+1$$Wahscheinlich hast Du sie falsch abgeschrieben und dabei ein paar Klammern weg gelassen. Also wenn Du Deine Zahlen in irgendein Tool - egal ob TR oder Tabellenkalkulation oder was anderes - in dieser Form eingegeben hast, kommen sicher keine sinnvollen Ergebnisse heraus.

Der Thomas-Algorithmus löst lineare Gleichungsysteme mit einer tridiagonalen Matrix in dieser Form$$\begin{pmatrix} b_1 & c_1& & & &0\\ a_2& b_2& c_2& & &\\ & a_3& b_3& c_3& \\& & \dots &\dots \\ & & & a_{n-1}& b_{n-1}& c_{n-1}\\ 0& & & & a_n& b_n \end{pmatrix} \begin{pmatrix} M_1\\M_2\\ M_3\\ \vdots\\ M_{n-1}\\ M_n \end{pmatrix}=\begin{pmatrix} d_1\\d_2\\ x_3\\ \vdots\\ d_{n-1}\\ d_n \end{pmatrix}$$Die \(M_i\) sind hier die Unbekannten, die berechnet werden sollen.

Der Algorithmus läuft darauf hinaus zunächst eine Menge von \(c_i'\) und \(d_i'\)-Werten zu berechnen und dann 'rückwärts' die \(M_i\) von \(M_n\) bis \(M_1\). Für die \(c_i'\) und \(d_i'\)-Werte gilt:$$c_i'=\begin{cases}\displaystyle\frac{c_1}{b_1}&;&i=1\\\displaystyle\frac{c_i}{b_i-c_{i-1}'a_i}&;&1\lt i \lt n\end{cases} \\ d_i'=\begin{cases}\displaystyle\frac{d_1}{b_1}&;&i=1\\\displaystyle\frac{d_i-d_{i-1}'a_i}{b_i-c_{i-1}'a_i}&;& 1\lt i\end{cases}$$und für die Unbekannten \(M_i\):$$M_n = d_n' \\ M_i = d_i'- c_i' \cdot M_{i+1}\quad ;\space i\lt n $$Dafür legt man sich am besten eine Tabelle an. (Ein Tabellenkalkulationsprogramm ist da extrem hilfreich)$$\begin{array}{r|rrrr|rrr}i& a& b& c& d& c_i'& d_i'& M_i\\ \hline 1& & 2& 1& -96& 0.5& -48& -36\\ 2& 0.5& 2& 0.5& -72& 0.2857& -27.4286& -24\\ 3& 0.5& 2& 0.5& -36& 0.2692& -12& -12\\ 4& 0.5& 2& 0.5& 0& 0.2680& 3.2165& 0\\ 5& 1& 2& & 24& & 12& 12\end{array}$$Die Zahlen mit Nachkommastellen sind gerundet.

Die erste Spalte gibt den Zeilenindex an. Die nächsten vier Spalten habe ich der gegebenen Matrix in Deiner Frage entnommen und die letzen drei werden so berechnen wie oben beschrieben. Die \(c_i'\) und \(d_i'\) von oben nach unten und die \(M_i\) anschließend von unten nach oben.

Bitte melde Dich, falls noch Fragen offen sind.

Gruß Werner

Avatar von 48 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community