- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析上机实验插值
实 验 报 告
课程名称 数值分析 实验项目名称 插值实验 实验类型 上机 实验学时 2 班级学号 2011113130 姓名 张振 指导教师 沈艳 实验室名称 理学楼407 实验时间 2013.10.11 实验成绩 预习部分 实验过程
表现 实验报告
部分 总成绩 教师签字 日期
哈尔滨工程大学教务处 制
实验一 插值实验
一.插值法的基本思想
1.Lagrange插值多项式的基本思想及公式:
Lagrange插值多项式的基本思想是把多项式的构造问题转化成n+1个基函数l(x)的构造。其公式如下:
L(x) = .
其中 l(x)=,k=0,1,…,n.
2.Newton插值多项式基本思想及公式:
Newton插值多项式是Lagrange插值多项式的改进,是由基函数{1, (x-x),...,(x-x)…(x-x).}逐次地推得到的多项式。其公式如下:
P(x) = a+a(x-x)+ a(x-x)…(x-x).其中 a= f[x,x,…,x],k=0,1,…n.
3.Hermite插值的基本思想及公式:
Hermite插值不仅满足各插值点上函数值相等,而且各节点上导数值也想等,甚至高阶导数值也相等。在这里只给出两种典型的Hermite插值:
① P(x) = f(x)+f[x,x](x-x)+ f[x,x,x](x-x)(x-x)+A(x-x)(x-x)(x-x)
其中系数A=.
余项R(x)=f(ζ) (x-x)(x-x)(x-x).
②
其中
余项
4.三次样条
函数S(x)∈C [a,b] ,且在每个小区间[ x,x]上是三次多项式,其中a =xx... x= b 是给定节点,则称S(x)是节点xx...x上的三次样条函数。若在节点x上给定函数Y= f (X).( j =0, 1,…, n) ,并成立S(x ) =y .( j= 0, 1,…, n) ,则称S(x)为三次样条插值函数。
二.实验题目及实验目的
1.(第2章习题20)给定数据表如下:
x 0.25 0.30 0.39 0.45 0.53 y 0.5000 0.5477 0.6245 0.6708 0.7280 试求三次样条插值S(x),并满足条件:
(1)S(0.25)=1.0000,S(0.53)=0.6868;
(2)S(0.25)=S(0.53)=0.
2.(第2章计算实习题3)下列数据点的插值
x 0 1 4 9 16 25 36 49 64 Y 0 1 2 3 4 5 6 7 8 可以得到平方根函数的近似,在区间[0,64]上作图。
(1)用这9个点作8次多项式插值L(x).
(2)用三次样条(第一边界条件)程序求S(x).
从得到结果看在[0,64]上,哪个插值更精确;在区间[0,1]上,两种插值哪个更精确?
三.实验手段:
指操作环境和平台:win7系统下MATLAB R2009a
程序语言:一种类似C语言的程序语言,但比C语言要宽松得多,非常方便。
四.程序
1. ① 三次样条插值程序:
function y = scyt(x0, y0, x)
n = length(x0); m = length(x);
y = zeros(1, m);
p(n) = 0; q(1) = 1; d(1) = 1.0000; d(n) = 0.6868;
for k = 2:n-1,
h(1) = x0(k) - x0(k-1); h(2) = x0(k+1) - x0(k);
p(k) = h(1) / (h(1) + h(2));
q(k) = h(2) / (h(1) + h(2));
d(k) = 6*((y0(k+1) - y0(k))/h(2) - (y0(k) - y0(k-1)) / h(1)) / (h(1) + h (2));
end
b(1) = q(1) / 2;
for k = 2:n-1,
b(k) = q(k) / (2 - p(k)*b(k-1));
end
temp(1) = d(1) / 2;
for k = 2:n-1,
temp(k) = (d(k) - p(k)*temp(k-1)) / (2 - p(k)*b(k-1));
end
M(1) = 0;
M(n) = 0;
for k = n-1:-1:2,
M(k) = temp(k) - b(k)*M
文档评论(0)