Python中文
首页
教程
问答
标签
搜索
登录
注册
牛顿插值多项式的图必须与原函数和拉格朗日插值多项式在区间上的图完全匹配吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我的家庭作业要求我建立牛顿和拉格朗日插值多项式。我对拉格朗日多项式没有任何问题,但牛顿多项式产生了一个问题:虽然拉格朗日插值多项式和原始函数完全匹配,但牛顿插值并没有做到这一点。 <a href="https://i.stack.imgur.com/2couA.png" rel="nofollow noreferrer">Here is the plot.</a></p> <p>如果我没记错的话,牛顿和拉格朗日多项式插值是表示同一个多项式的不同方法,它们应该在插值间隔处完全匹配原始函数</p> <p>我认为牛顿系数计算错误,所以我找到了另一个除法差分函数。我尝试了函数和<a href="https://i.stack.imgur.com/N3YJ7.png" rel="nofollow noreferrer">they gave me the same results.</a></p> <p>我此刻陷入困境。我仍然认为计算除法差分函数有问题,但我看不出错误</p> <p>有什么建议吗</p> <p>代码如下:</p> <pre><code>import numpy as np from scipy.interpolate import lagrange # func from https://pythonnumericalmethods.berkeley.edu/notebooks/chapter17.05-Newtons-Polynomial-Interpolation.html def divided_diff(x, y): n = len(y) coef = np.zeros([n, n]) coef[:,0] = y for j in range(1,n): for i in range(n-j): coef[i][j] = \ (coef[i+1][j-1] - coef[i][j-1]) / (x[i+j]-x[i]) return coef def coeff(x, y): n = len(x) arr = y.copy() for i in range(1, n): arr[i:n] = (arr[i:n] - arr[i - 1]) / (x[i:n] - x[i - 1]) return arr # 1st range x_values = np.array([0, np.pi/6, np.pi/3, np.pi/2], float) y_values = np.array([1, np.sqrt(3)/2, 1/2, 0], float) print(coeff(x_values, y_values)) print(divided_diff(x_values, y_values)[0,:]) # Show polynomials newton_coefficients = divided_diff(x_values, y_values)[0,:] newton = np.poly1d(newton_coefficients[::-1]) lagrange_poly = lagrange(x_values, y_values) print(f"Here is our Lagrange interpolating polynomial:\n{lagrange_poly}\n") print(f"Here is our Newton interpolating polynomial:\n{newton}\n") </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我从你的图中推断,你只使用了两个插值点(余弦曲线和两个多项式之间的公共点)</p> <p>当次数不超过n-1时,n点插值多项式是唯一的(拉格朗日和牛顿重合)。事实上,您应该使用线性模型</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
5 回答
无法使用Django\u mssql\u后端迁移到外部hos
5 回答
无法使用Django&Python3.4连接到MySql
6 回答
无法使用Django+nginx上载媒体文件
5 回答
无法使用Django1.6导入名称模式
8 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
7 回答
无法使用Djangockedi验证CBV中的字段
4 回答
无法使用Djangocketditor上载图像(错误400)
6 回答
无法使用Djangocron进行函数调用
5 回答
无法使用Djangofiler djang上载文件
2 回答
无法使用Djangokronos
6 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答
无法使用Djangomssq迁移Django数据库
1 回答
无法使用Djangonox创建用户
6 回答
无法使用Djangopyodb从Django查询SQL Server
10 回答
无法使用Djangopython3ldap连接到ldap
10 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
7 回答