matlab代碼--插值.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlab代碼--插值

插值 1.Atken求已知数据点的艾特肯插值多项式 function f = Atken(x,y,x0) syms t; if(length(x) == length(y)) n = length(x); else disp(x和y的维数不相等!); return; end %检错 y1(1:n) = t; %符号函数数组要赋初值 for(i=1:n-1) for(j=i+1:n) y1(j) = y(j)*(t-x(i))/(x(j)-x(i))+y(i)*(t-x(j))/(x(i)-x(j)); end y = y1; simplify(y1); end if(nargin == 3) f = subs(y1(n),t,x0); %计算插值点的函数值 else simplify(y1(n)); %化简 f = collect(y1(n)); %将插值多项式展开 f = vpa(f,6); %将插值多项式的系数化成6位精度的小数 end BSample求已知数据点的第一类B样条的插值 function f0 = BSample(a,b,n,y,y_1,y_N,x0) f0 = 0.0; h = (b-a)/n; c = zeros(n+3,1); b = zeros(n+1,1); for i=0:n-1 if(a+i*h=x0) (a+i*h+h=x0) index = i; break; end end %找到x0所在区间 A = diag(4*ones(n+1,1)); I = eye(n+1,n+1); AL = [I(2:n+1,:);zeros(1,n+1)]; AU = [zeros(1,n+1);I(1:n,:)]; A = A+AL+AU; %形成系数矩阵 for i=2:n b(i,1) = 6*y(i); end b(1) = 6*y(1)+2*h*y_1; b(n+1) = 6*y(n+1)-2*h*y_N; d = followup(A,b); %用追赶法求出系数 c(2:n+2) = d; c(1) = c(2) - 2*h*y_1; %c(-1) c(n+3) = c(3)+2*h*y_N; %c(n+1) x1 = (a+index*h-h-x0)/h; m1 = c(index+1)*(-((abs(x1))^3)/6+(x1)^2-2*abs(x1)+4/3); x2 = (a+index*h-x0)/h; m2 = c(index+2)*((abs(x2))^3/2-(x2)^2+2/3); x3 = (a+index*h+h-x0)/h; m3 = c(index+3)*((abs(x3))^3/2-(x3)^2+2/3); x4 = (a+index*h+2*h-x0)/h; m4 = c(index+4)*(-((abs(x4))^3)/6+(x4)^2-2*abs(x4)+4/3); f0 = m1+m2+m3+m4; %求出插值 DCS用倒差商算法求已知数据点的有理分式形式的插值分式 function f = DCS(x,y,x0) syms t; if(length(x) == length(y)) n = length(x); c(1:n) = 0.0; else disp(x和y的维数不相等!); return; end c(1) = y(1); for(i=1:n-1) for(j=i+1:n) y1(j) = (x(j)-x(i))/(y(j)-y(i)); end c(i+1) = y1(i+1); y = y1; end f = c(n); for(i=1:n-1) f = c(n-i) + (t-x(n-i))/f; f = vpa(f,6); if(i==n-1) if(nargin == 3) f =

文档评论(0)

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

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档