数值分析上机实习题.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 插值法 已知函数在下列各点的值为 0.2 0.4 0.6 0.8 1.0 0.98 0.92 0.81 0.64 0.38 试用四次牛顿插值多项式及三次样条韩式(自然边界条件)对数据进行插值。用图给出,及 Python代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font_set = FontProperties(fname=rc:\windows\fonts\simsun.ttc,size=12) #求牛顿n次均差 def qiujuncha(x,f,n): for i in range(1,n): for j in range(4,i-1,-1): f[j]= (f[j] - f[j-1])/(x[j]-x[j-i]) #根据牛顿多项式求值 def niudun(x,f,x1): sum = f[0]; tmp = 1; for i in range(1,5): tmp *= (x1-x[i-1]) sum = sum + f[i]*tmp return sum #牛顿插值画图 def drawPic(x,f): x1 = np.linspace(0.2, 1, 100) plt.plot(x1, niudun(x,f,x1)) plt.title(u牛顿四次插值,fontproperties=font_set) plt.xlabel(ux轴,fontproperties=font_set) plt.ylabel(uy轴, fontproperties=font_set) plt.show() def qiu_h(x,h): n = len(x) -1 for i in range(n): print(i) h[i] = x[i+1]-x[i] #自然边界条件下的三次样条插值 求M def qiu_m(h,f,o,u,d): n = len(h) o[0] = 0 u[n] = 0 d[n] = d[0] = 0 a = [] for i in range(1,n): u[i] = h[i-1]/(h[i-1]+h[i]) for i in range(1,n): o[i] = h[i]/(h[i-1]+h[i]) for i in range(1,n-1): d[i] = 6*(f[i+1]-f[i])/(h[i-1]+h[i]) t = [0 for i in range(5)] t[0] =2 t[1] = o[0] a.append(t) for i in range(1,n): t = [0 for i in range(5)] t[i - 1] = u [i + 1] t[i] = 2 t[i + 1] = o [i + 1] a.append(t) t = [0 for i in range(5)] t[n - 1] = u[n] t[n] = 2 a.append(t) tmp = np.linalg.solve(np.array(a),np.array(d)) m = [] for i in range(5): m.append(tmp[i]) return m #根据三次条插值函数求值 def yangtiao(x1,m,x,y,h,j): return m[j]*(x[j+1]-x1)**3/(6*h[j])+m[j+1]*(x1-x[j])**3/(6*h[j])+(y[j]-m[j]*h[j]**2/6)*(x[j+1]-x1)/h[j]+(y[j+1]-m[j+1]*h[j]**2/6)*(x1-x[j])/h[j] def main(): x = [0.2, 0.4, 0.6, 0.8, 1.0] y = [0.98, 0.92, 0.81, 0.64, 0.38] f = y[:] f1 = y[:] h = [0.2,0.2,0.2,0.2] u = [0

您可能关注的文档

文档评论(0)

kbook + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档