Spline interpolation tridiagonal matrix (momente)

Grundlagen
Matrix Momente Gleichung (Wickipedia)
[math] \left(\begin{array}{cccccc}[br]\mu_{0} & \lambda_{0} & & & & \\[br] \frac{h_{0}}{6} & \frac{h_{0}+h_{1}}{3} & \frac{h_{1}}{6} & & & \\[br] & \ddots & \ddots & \ddots & & \\[br] & & \frac{h_{i-1}}{6} & \frac{h_{i-1}+h_{i}}{3} & \frac{h_{i}}{6} & \\[br] & & & \ddots & \ddots & \ddots \\[br] & & & & \lambda_{n} & \mu_{n}\end{array}\right)[br] \cdot\left(\begin{array}{c}M_{0} \\ M_{1} \\ \vdots \\ M_{i} \\ \vdots \\ M_{n}\end{array}\right)=\left(\begin{array}{c}b_{0} \\ \frac{y_{2}-y_{1}}{h_{1}}-\frac{y_{1}-y_{0}}{h_{0}} \\ \vdots \\ \frac{y_{i+1}-y_{i}}{h_{i}}-\frac{y_{i}-y_{i-1}}{h_{i-1}} \\ \vdots \\ b_{n}\end{array}\right)[/math][br][math]h_i=x_{i+1}-x_i[/math][br][br]- Natürliche Randbedingungen (auch freier Rand)[br]Bedingung: [math]s_{0}^{\prime \prime}\left(x_{0}\right)=0, s_{n-1}^{\prime \prime}\left(x_{n}\right)=0[/math][br]Bedeutung: Das Spline schließt mit Wendepunkten ab.[br]Berechnung: [math] \lambda_{0}=\lambda_{n}=b_{0}=b_{n}=0[/math] und [math] \mu_{0}=\mu_{n}=1[/math][br][br]- Hermite Randbedingungen (auch eingespannter Rand)[br]Bedingung: [math]s_{0}^{\prime}\left(x_{0}\right)=f^{\prime}(a), s_{n-1}^{\prime}\left(x_{n}\right)=f^{\prime}(b)[/math][br]Bedeutung: [math] f^{\prime}(a) [/math] und [math] f^{\prime}(b) [/math] sind vorgegeben, normalerweise entweder durch die Ableitung einer zu interpolierenden Funktion f oder durch eine Approximation derselben. [br]Berechnung:[br][math][br]\begin{array}{ccc}[br]\lambda_{0}=\frac{h_{0}}{6}, & \mu_{0}=\frac{h_{0}}{3}, & b_{0}=\frac{y_{1}-y_{0}}{h_{0}}-f^{\prime}(a) \\[br]\lambda_{n}=\frac{h_{n-1}}{6}, & \mu_{n}=\frac{h_{n-1}}{3}, & b_{n}=-\frac{y_{n}-y_{n-1}}{h_{n-1}}+f^{\prime}(b)[br]\end{array}[br][/math][br](siehe Formeln in Caption von λ, μ, b - in ggb ist der Listenindex 1...n+1 vs Wicki-Artikel 0...n)[br][br]- periodische Randbedingungen[br]Bedingung:[br] Intervall [math] \left[x_{0}, x_{n+1}\right], y_{0}=: y_{n+1}, [br]s_{0}^{\prime}\left(x_{0}\right)=: s_{n}^{\prime}\left(x_{n+1}\right), [br]s_{0}^{\prime \prime}\left(x_{0}\right)=: s_{n}^{\prime [br]\prime}\left(x_{n+1}\right) [/math][br]Bedeutung: Nullte, erste und zweite Ableitung von [math] S [/math] am Anfang und am Ende des Intervalls sind gleich.[br]Berechnung:[br]Es wird eine zusätzliche Stützstelle [math] x_{n+1} [/math] eingeführt, welche [br]das Intervall begrenzt. Die Anzahl der Gleichungen zur Berechnung der Momente und die Größe der Matrix bleibt jedoch gleich, da [math] [br]M_{n+1}:=M_{0} [/math] bereits gegeben ist, damit die zweiten Ableitungen übereinstimmen. Für die erste- und letzte Zeile der Matrix gilt: [br][math][br]\begin{array}{c}[br]\mu_{0}=\frac{h_{n}+h_{0}}{3},[br] \quad \lambda_{0}=\frac{h_{0}}{6}, \quad [br]b_{0}=\frac{y_{1}-y_{0}}{h_{0}}-\frac{y_{0}-y_{n}}{h_{n}} \\[br]\mu_{n}=\frac{h_{n-1}+h_{n}}{3},[br] \quad \lambda_{n}=\frac{h_{n-1}}{6}, \quad [br]b_{n}=\frac{y_{0}-y_{n}}{h_{n}}-\frac{y_{n}-y_{n-1}}{h_{n-1}}[br]\end{array}[br][/math][br][br][br]Außerdem sind die Ecken der Matrix abseits der Hauptdiagonalen hier nicht Null:[br][math][br]m_{0, n}=m_{n, 0}=\frac{h_{n}}{6}[br][/math][br][br]Nach Änderungen am Model sicherheithalber vollständige Berechung anstoßen Strg+R![br]Zeile 8...11: Polynom-Anteile zur Stützstelle x[sub]i[/sub] [br](8) [i]PM:pM(i ,Mom(i),Mom(i+1))[/i][br](9)[math] \frac{1}{6}\left(\frac{\left(x_{i+1}-x\right)^{3}}{h_{i}} \cdot M_{i}+\frac{\left(x-x_{i}\right)^{3}}{h_{i}} \cdot M_{i+1}\right)=[/math][br](10)[math]c_{i} =\frac{y_{i+1}-y_{i}} {h_{i}}-\frac{h_{i}}{6} \cdot\left(M_{i+1}-M_{i}\right) \left(x-x_{i}\right)=[/math][br](11)[math]d_{i} =y_{i}-\frac{h_{i}^{2}}{6} \cdot M_{i}=[/math]

Information: Spline interpolation tridiagonal matrix (momente)