版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三次样条插值1. 算法原理由于在许多实际问题中,要求函数的二阶导数连续,人们便提出了三次样条插值函数,三次样条插值函数是由分段三次函数拼接而成的,在连接点处二阶导数连续。设S(x)在节点处的二阶导数,其中为待定参数。由S(x)是分段三次多项式可知,是分段线性函数,在子区间上可以表示为其中,对S(x)两端积分两次得其中和为积分常数。由插值条件得由此解得代入得:求导得:令得在处的左导数 又令得在处右导数 ,从而有,由在节点处一阶导数的连续性知,即两端同乘得,记,则关于的方程组写成。三种边界条件的三弯矩方程:(1)第一种边界条件:已知。取,这时方程组减少了两个未知量,变成只含n-1个未知量的n-1个
2、方程的方程组,用矩阵表示为可用追赶法求解出后,即得三条样条插值函数。(2) 第二种边界条件,已知,记,则有,得,即,其中,得到方程组,用矩阵表示为,该方程组的系数矩阵是严格三对角占优矩阵,可用追赶法求解。(3)第三种边界条件:周期型边界条件。已知是以为周期的周期函数,则由周期性可知,这时将点看成是内节点,则有,也即,其中,方程组第1个方程为:,所以方程组为,用矩阵表示为,显然系数矩阵为严格对角占优矩阵,可用LU分解法求解。2. 程序框图3. 源程序function x=mchase(A,d)%追赶法n=length(d);u=zeros(n,1);u(1)=A(1,1);for k=2:n l
3、(k)=A(k,k-1)/u(k-1); u(k)=A(k,k)-l(k)*A(k-1,k);endy=zeros(n,1);y(1)=d(1);for i=2:n y(i)=d(i)-l(i)*y(i-1);endx=zeros(n,1);x(n)=y(n)/u(n);for i=n-1:-1:1 x(i)=(y(i)-A(i,i+1)*x(i+1)/u(i);endxendfunction T=mspline1(x0,y0,f21,f22,xx)%三次样条插值函数第一种边界条件%x0、y0分别为节点的横坐标和纵坐标;%f21为左端点的二阶导数值,f22为右端点的二阶导数值;xx为由插值点组
4、成的向量n=length(x0)-1;%计算小区间数for i=1:n h(i)=x0(i+1)-x0(i);endfor i=1:n-1 mu(i)=h(i)/(h(i)+h(i+1); lamda(i)=1-mu(i); d(i)=6*(y0(i+2)-y0(i+1)/h(i+1)-(y0(i+1)-y0(i)/h(i)/(h(i)+h(i+1);endA=zeros(n-1);for i=1:n-2 A(i+1,i)=mu(i+1);%次下对角线 A(i,i+1)=lamda(i);%次上对角线 A(i,i)=2;%主对角线endA(n-1,n-1)=2;dd=zeros(n-1,1);
5、%右端列向量for i=2:n-2 dd(i)=d(i);enddd(1)=d(1)-mu(1)*f21;dd(n-1)=d(n-1)-lamda(n-1)*f22;M=mchase(A,dd);%追赶法求解M值hmulamdaAddM=f21,M',f22't=sym('t');a=zeros(n,1);b=zeros(n,1);c=zeros(n,1);e=zeros(n,1);for i=1:n a(i)=M(i)./(6*h(i); b(i)=M(i+1)./(6*h(i); W1(i)=b(i)-a(i); W2(i)=3*(a(i).*x0(i+1)
6、-b(i).*x0(i); c(i)=y0(i)./h(i)-h(i).*M(i)/6; e(i)=y0(i+1)./h(i)-h(i).*M(i+1)/6; W3(i)=3*b(i).*x0(i).2-3*a(i).*x0(i+1).2+e(i)-c(i); W4(i)=a(i).*x0(i+1).3-b(i).*x0(i).3+c(i).*x0(i+1)-e(i).*x0(i); Si(t)=W1(i).*t3+W2(i).*t2+W3(i).*t+W4(i)%每个小区间的三次样条差值函数表达式endm=length(xx);T=zeros(m,1);for k=1:m for j=1:n
7、 if (xx(k)>=x0(j)&(xx(k)<x0(j+1) T(k)=W1(j).*(xx(k).3)+W2(j).*(xx(k).2)+W3(j).*xx(k)+W4(j); end endendTEndfunction T=mspline2(x0,y0,f11,f12,xx)%三次样条插值函数第二种边界条件%x0、y0分别为节点的横坐标和纵坐标;%f11为左端点的二阶导数值,f12为右端点的二阶导数值;xx为由插值点组成的向量n=length(x0)-1;%计算小区间数for i=1:n h(i)=x0(i+1)-x0(i);endfor i=1:n-1 mu(i
8、)=h(i)/(h(i)+h(i+1); lamda(i)=1-mu(i); d(i)=6*(y0(i+2)-y0(i+1)/h(i+1)-(y0(i+1)-y0(i)/h(i)/(h(i)+h(i+1);endA=zeros(n+1);%系数矩阵dd=zeros(n+1,1);%右端列向量for k=2:n A(k,k)=2;%主对角线元素 A(k,k-1)=mu(k-1);%次下对角线元素 A(k,k+1)=lamda(k-1);%次上对角线元素endA(1,1)=2;A(1,2)=1;A(n+1,n+1)=2;A(n+1,n)=1;dd(1)=6*(y0(2)-y0(1)/h(1)-f1
9、1)/h(1);dd(n+1)=6*(f12-(y0(n+1)-y0(n)/h(n)/h(n);for k=2:n dd(k)=d(k-1);endM=mchase(A,dd);%追赶法求解M值hmulamdaAddMt=sym('t');a=zeros(n,1);b=zeros(n,1);c=zeros(n,1);e=zeros(n,1);for i=1:n a(i)=M(i)./(6*h(i); b(i)=M(i+1)./(6*h(i); W1(i)=b(i)-a(i); W2(i)=3*(a(i).*x0(i+1)-b(i).*x0(i); c(i)=y0(i)./h(i
10、)-h(i).*M(i)/6; e(i)=y0(i+1)./h(i)-h(i).*M(i+1)/6; W3(i)=3*b(i).*x0(i).2-3*a(i).*x0(i+1).2+e(i)-c(i); W4(i)=a(i).*x0(i+1).3-b(i).*x0(i).3+c(i).*x0(i+1)-e(i).*x0(i); Si(t)=W1(i).*t3+W2(i).*t2+W3(i).*t+W4(i)%每个小区间的三次样条差值函数表达式endm=length(xx);T=zeros(m,1);for k=1:m for j=1:n if (xx(k)>=x0(j)&(xx(
11、k)<x0(j+1) T(k)=W1(j).*(xx(k).3)+W2(j).*(xx(k).2)+W3(j).*xx(k)+W4(j); end endendTend%计算实习,第一种边界条件clear;x=-1:0.2:1;%输入节点横坐标y=ones(1,11)./(ones(1,11)+25*x.2)%计算节点纵坐标t=sym('t') ;f=1/(1+25*t2);%定义函数f2=diff(f,2)%函数的二阶导数式f21=vpa(subs(f2,'t',-1)%计算左端点的二阶导数值f22=vpa(subs(f2,'t',1)%
12、计算右端点的二阶导数值xx=-1:0.1:1;T=mspline1(x,y,f21,f22,xx); T=T'ezplot(f,-1 1);%画出函数f的曲线hold onplot(x,y,':',xx,T,'-');%根据函数计算和插值计算的结果画出的曲线%计算实习,第二种边界条件clear;x=-1:0.2:1;%输入节点横坐标y=ones(1,11)./(ones(1,11)+25*x.2)%计算节点纵坐标t=sym('t') ;f=1/(1+25*t2);%定义函数f1=diff(f,1)%函数的一阶导数式f11=vpa(subs(f1,'t',-1)%计算左端点的一阶导数值f12=vpa(subs(f1,'t',1)%计算右端点的一阶导数值xx=-1:0.1:1;T=mspline2(x,y,f11,f12,xx); T=T'ezplot(f,-1 1);%画出函数f的曲线hold onplot(x,y,':',xx,T,'-');%根据函数计算和插值计算的结果画出的曲线4. 计算结果第一种边界条件:x-1-0.8-0.6-0.4-0.200.20.40.60.81函数计算值0.03850.05880.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026第三季度广西一键游数智文旅产业集团有限公司社会招聘12人考试模拟试题及答案详解
- 2026年五峰土家族自治县事业单位专项公开招聘工作人员4人考试参考题库及答案详解
- 2026年眉山市彭山区医疗卫生辅助岗第三轮招募1人笔试模拟试题及答案详解
- 2026年8月四川长虹教育科技有限公司招聘商务支持岗位笔试模拟试题及答案详解
- 2026辽宁省妇幼保健院面向社会公开招聘编外合同制工作人员(第二批)34人笔试备考题库及答案详解
- 2026遂宁市人力资源和社会保障局市县增量政策性岗位招募407人考试模拟试题及答案详解
- 2025福建厦门外代国际货运有限公司市场部社会招聘1人笔试历年备考题库附带答案详解
- 2025甘肃定西市岷县中国人民保险外包项目人员招聘4人笔试历年典型考题及考点剖析附带答案详解
- 2025湖南省粮油食品进出口集团有限公司总部招聘3人笔试历年难易错考点试卷带答案解析
- 2025湖南娄底双峰沪农商村镇银行春季招聘笔试历年典型考题及考点剖析附带答案详解
- 2026秋新版小学湘科版科学五年级上册教学设计(附目录)适用于新课标
- 2026年飞控算法工程(无人机控制技术)试题及答案
- 山东省菏泽市2025-2026学年高一下学期期末考试英语试卷
- 2026年兽医实验室安全知识培训考试题库(含答案)
- 2026年金华市公安辅警招聘知识考试题库及答案
- LY/T 3426-2025直接为林业生产经营服务工程设施用地规范
- 混凝土搅拌站设备维护保养计划
- 建设银行贷款审批制度
- DBJ50T-526-2025 住建领域基础库数据标准
- JJF(石化)078-2023激光甲烷遥测仪校准规范
- 2026年浙江中考科学试卷及答案
评论
0/150
提交评论