数值分析第一次作业.docVIP

  • 15
  • 0
  • 约1.1万字
  • 约 17页
  • 2017-06-11 发布于北京
  • 举报
问题1:20.给定数据如下表: xj 0.25 0.30 0.39 0.45 0.53 yj 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。 分析:本问题是已知五个点,由这五个点求一三次样条插值函数。边界条件有两种,(1)是已知一阶倒数,(2)是已知自然边界条件。 对于第一种边界(已知边界的一阶倒数值),可写出下面的矩阵方程。 其中j=,i=,dj=6f[xj-1,xj,xj+1], n=1,0=1 对于第一种边界条件d0=(f[x0,x1]-f0`),dn=(f`n-f`[xn-1,xn]) 解:由matlab计算得: x y h d 0.25 0.5000 -5.5200 0.30 0.5477 0.0500 0.3571 1 -4.3143 0.39 0.6245 0.0900 0.6000 0.6429 -3.2667 0.45 0.6708 0.0600 0.4286 0.4000 -2.4286 0.53 0.7280 0.0800 1.000 0.5714 -2.1150 由此得矩阵形式的线性方程组为: 解得 M0=-2.0286;M1=-1.4627;M2= -1.0333; M3= -0.8058; M4=-0.6546 S(x)= Matlab程序代码如下: function tgsanci(n,s,t) %n代表元素数,s,t代表端点的一阶导。 x=[0.25 0.30 0.39 0.45 0.53]; y=[0.5 0.5477 0.6245 0.6708 0.7280]; n=5,s=1.0,t=0.6868 for j=1:1:n-1 h(j)=x(j+1)-x(j); end for j=2:1:n-1 r(j)=h(j)/(h(j)+h(j-1)); end for j=1:1:n-1 u(j)=1-r(j); end for j=1:1:n-1 f(j)=(y(j+1)-y(j))/h(j); end for j=2:1:n-1 d(j)=6*(f(j)-f(j-1))/(h(j-1)+h(j)); end d(1)=6*(f(1)-s)/h(1) d(n)=6*(t-f(n-1))/h(n-1) a=zeros(n,n); for j=1:1:n a(j,j)=2; end r(1)=1; u(n)=1; for j=1:1:n-1 a(j+1,j)=u(j+1); a(j,j+1)=r(j); end b=inv(a) m=b*d p=zeros(n-1,4); %p矩阵为S(x)函数的系数矩阵 for j=1:1:n-1 p(j,1)=m(j)/(6*h(j)); p(j,2)=m(j+1)/(6*h(j)); p(j,3)=(y(j)-m(j)*(h(j)^2/6))/h(j); p(j,4)=(y(j+1)-m(j+1)*(h(j)^2/6))/h(j); end 对于第二中边界,已知边界二阶倒数,可写出下面的矩阵: 其中j=,i=,dj=6f[xj-1,xj,xj+1],n=0=0 d0=dn=0 解:由matlab计算得: x y h dn 0.25 0.5000 0 0.30 0.5477 0.05 0.3571 0 -4.3143 0.39 0.6245 0.09 0.6000 0.6429 -3.2667 0.45 0.6708 0.06 0.4286 0.4000 -2.4268 0.53 0.7280 0.08 0 0.5714 0 由此得矩阵形式的线性方程组为: 解得M0=0 ;M1= -1.8795;M2= -0.8636; M3= -1.0292; M4=0 S(x)= matlab程序代码如下: function tgsanci(n,s,t) %n代表元素数, x=[0.25 0.30 0.39 0.45 0.53]; y=[0.5 0.5477 0.6245 0.6708 0.7280]; n=5 for j=1:1:n-1 h(j)=x(j+1)-x(j); end for j=2:1:n-1 r(j)=h(j)/(h(j)+h(j-1)); end for j=1:1:n-1

文档评论(0)

1亿VIP精品文档

相关文档