- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
代数插值实验次样条曲线
实验7 代数插值()’(0)=0.2和S’(3)=-1
实验原理 若已知N+1个点的及其一阶导数的边界条件S’(a)=和S’(b)=,则存在唯一的三次样条曲线。
构造并求解下列线性方程组
构造分段函数S(x):
; ; ;
实验说明
需要建立两个数组X,Y分别存放(,…,,(,…,,建立两个变量dxo、 dxn分别存放左右端点的一阶导数 dxo = S(x0) , dxn = S(xn),上述方程组中;
实验步骤
1 要求上机实验前先编写出程序代码
2 编辑录入程序
3 调试程序并记录调试过程中出现的问题及修改程序的过程
4 经反复调试后,运行程序并验证程序运行是否正确。
5 记录运行时的输入和输出。
实验总结:1、三次样条曲线涉及到的关系式比较多,要清晰的记清s、d、h、u等之间的关系;2、编写程序时一定要注意“0”和“o”是让容易把他们两个搞混检查时也不容易发现。
实验报告: 根据实验情况和结果撰写并递交实验报告。
参考程序(MATLAB程序)
function s=csfit(x,y,dx0,dxn)
n=length(x)-1;
h=diff(x);
d=diff(y)./h;
a=h(2:n-1);
b=2*(h(1:n-1)+h(2:n));
c=h(2:n);
u=6*diff(d);
b(1)=b(1)-h(1)/2;
u(1)=u(1)-3*(d(1)-dx0);
b(n-1)=b(n-1)-h(n)/2;
u(n-1)=u(n-1)-3*(dxn-d(n));
for k=2;n-1
temp=a(k-1)/b(k-1);
b(k)=b(k)-temp*c(k-1);
u(k)=u(k)-temp*u(k-1);
end
m(n)=u(n-1)/b(n-1);
for k=n-2:-1:1
m(k+1)=(u(k)-c(k)*m(k+2))/b(k);
end
m(1)=3*(d(1)-dx0)/h(1)-m(2)/2;
m(n+1)=3*(dxn-d(n))/h(n)-m(n)/2;
for k=0:n-1
s(k+1,1)=(m(k+2)-m(k+1))/(6*h(k+1));
s(k+1,2)=m(k+1)/2;
s(k+1,3)=d(k+1)-h(k+1)*(2*m(k+1)+m(k+2))/6;
s(k+1,4)=y(k+1);
end
输入以下程序:
x=[0 1 2 3];
y=[0 0.5 2.0 1.5];
dx0=0.2;
dxn=-1;
s=csfit(x,y,dx0,dxn)
ans =
2
s =
0.4800 -0.1800 0.2000 0
-1.0400 1.2600 1.2800 0.5000
0.6800 -1.8600 0.6800 2.0000
t1=0:0.01:1;w1=polyval(s(1,:),t1-x(1));
t2=1:0.01:2;w2=polyval(s(2,:),t2-x(2));
t3=2:0.01:3;w3=polyval(s(3,:),t3-x(3));
plot(t1,w1,t2,w2,t3,w3,x,y,.)
文档评论(0)