4.使用 lagrange(x, y) 创建一个拉格朗日插值多项式 poly。这个多项式是基于给定的数据点 x 和 y 计算出来的,它能够逼近这些点构成的曲线。 `- M1 K- Q O' l0 j6 e, N [/ U5.poly(18) 计算了在 x = 18 时的插值结果 res。这是通过将 x = 18 代入到拉格朗日多项式中得到的。4 b0 U d' T0 @
! C& L$ y* ?7 k4 O9 N: t4. 打印多项式和插值结果
print('poly =\n', poly) % S& F7 \2 n+ W' m4 N
$ l' c) ]- v9 {. F7 @9 w# y2 {
print('res =', res)
复制代码
这里打印了插值多项式 poly 和在 x = 18 处的插值结果 res。& r8 T1 M" t6 D0 x, o% T. `
5. 数据可视化
x1 = [i for i in range(-5, 20)] + L* R/ w0 [$ l. ]' {
1 i* X4 U6 g: g
y1 = []* n5 V, X9 _' {) J\" j X) e
. T# L' e5 c7 n2 b. [0 w! e
for each in x1: J6 H4 ~! G/ A/ ]1 \2 T
1 P4 x3 I3 P3 w. x8 n/ Q. J
y1.append(poly(each)) , F. K( D. K9 r, |
2 H! _* s, O+ H# f' [
9 H% O% ?. x7 S! U
3 A( B& P\" ~ _ w\" j* t) }
plt.plot(x1, y1)+ `4 ~/ f( {; F# {. I. ?
, O# i* Y8 _ z2 c/ \
plt.scatter(x, y) O! `/ S3 {; _6 r. p7 G; @/ A+ S
@( M3 R' P8 E/ w& P. u& I
plt.scatter(18, res)
复制代码
6.首先,创建了一个 x 值列表 x1,范围是从 -5 到 19。然后,对于 x1 中的每个 x 值,都计算对应的拉格朗日插值多项式的 y 值,并将这些 y 值存储在列表 y1 中。 6 g [: e3 {8 e6 i% ?& x7.使用 plt.plot(x1, y1) 绘制插值多项式形成的曲线。 / v* q9 g$ s: ?$ |$ ], g' h$ G8.使用 plt.scatter(x, y) 在图上标记原始数据点。 5 K' k) P* [) B. a9.使用 plt.scatter(18, res) 在图上标记 x = 18 处的插值结果点。 : j0 g; p5 J+ b7 [. O# V 7 j/ Z/ Z, A8 Q! b7 w$ k$ S这样,你就得到了一幅图形,显示了原始数据点、插值曲线,以及在 x = 18 处的插值点。这个过程展示了如何使用拉格朗日插值方法根据一组给定的数据点来估计函数在特定点上的值,并将结果可视化。 : }$ s6 B, I& x% E5 h# _, M7 F ! A" K9 `' `$ X( o3 d) _. W5 F6 i7 j# _6 V# O5 Q) j