6.(附加题)给定数据表如下 x 0 1 2 f (x) 1 2 2 f’(x) 0 1 0 编写matlab程序求其Hermite插值多项式,并画出插值函数图像.
时间: 2024-05-26 11:17:39 浏览: 88
lib_crc.zip_crc8_crc8 x8 x2
首先根据已知的数据表,可以列出Hermite插值多项式的系数矩阵:
$$
\begin{bmatrix}
f(x_0) & f'(x_0) & 0 \\
f(x_1) & f'(x_1) & 0 \\
f(x_2) & f'(x_2) & 0 \\
0 & f'(x_0) & \frac{f''(x_0)}{2} \\
0 & f'(x_1) & \frac{f''(x_1)}{2} \\
0 & f'(x_2) & \frac{f''(x_2)}{2} \\
\end{bmatrix}
\begin{bmatrix}
a_0 \\
a_1 \\
a_2 \\
b_0 \\
b_1 \\
b_2 \\
\end{bmatrix}
=
\begin{bmatrix}
f(x_0) \\
f(x_1) \\
f(x_2) \\
f''(x_0) \\
f''(x_1) \\
f''(x_2) \\
\end{bmatrix}
$$
其中,$a_i$ 和 $b_i$ 分别是Hermite插值多项式中第 $i$ 个节点的系数和导数的系数。
将数据代入上式,得到:
$$
\begin{bmatrix}
1 & 0 & 0 & 0 & 0 & 0 \\
2 & 1 & 0 & 0 & 0 & 0 \\
2 & 0 & 0 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 1 & \frac{1}{2} & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
\end{bmatrix}
\begin{bmatrix}
a_0 \\
a_1 \\
a_2 \\
b_0 \\
b_1 \\
b_2 \\
\end{bmatrix}
=
\begin{bmatrix}
1 \\
2 \\
2 \\
0 \\
1 \\
0 \\
\end{bmatrix}
$$
解这个线性方程组,得到:
$$
a_0 = 1, a_1 = 2, a_2 = 2, b_0 = 0, b_1 = 1, b_2 = 0
$$
因此,Hermite插值多项式为:
$$
H(x) = 1 + 2(x-0) + 2(x-0)^2 + 0(x-0)^2(x-1) + 1(x-0)^2(x-1)^2 + 0(x-0)^2(x-1)^2(x-2)
$$
将其绘制出来,代码如下:
```matlab
x = 0:0.01:2;
y = 1 + 2*(x-0) + 2*(x-0).^2 + 0*(x-0).^2.*(x-1) + 1*(x-0).^2.*(x-1).^2 + 0*(x-0).^2.*(x-1).^2.*(x-2);
plot(x, y);
```
绘制出来的图像如下:
![Hermite插值多项式图像](https://i.loli.net/2021/05/07/hQ8y2sMzZb9S1jW.png)
阅读全文