matlab曲线拟合的源程序,数值分析函数拟合MATLAB代码.doc

数值分析函数拟合MATLAB代码

第一题

MATLAB代码:

%用spline作图

xi=[0.2 0.4 0.6 0.8 1.0];

yi=[0.98 0.92 0.81 0.64 0.38];

x=-1:0.01:2;

y1=Newton3(xi,yi,x); %源代码见m文件

y2=spline(xi,yi,x);

plot(xi,yi,'o',x,y1,'r-',x,y2,'k')

%用csape作图

xi=[0.2 0.4 0.6 0.8 1.0];

yi=[0.98 0.92 0.81 0.64 0.38];

x=-1:0.01:2;

y1=Newton3(xi,yi,x); %源代码见m文件

pp=csape(xi,yi, 'variational');

y2=ppval(pp,x);

plot(xi,yi,'o',x,y1,'r-',x,y2,'k')

第二题

MATLAB代码:

y1=zeros(1,11);

x1=-1:0.2:1;

for i=1:11,

p=1./(1+25.*x1(i).^2);

y1(i)=p;

end

x=-1:0.01:1;

ym=language(x1,y1,x);

yn=spline(x1,y1,x);

y2=zeros(1,21);

x2=-1:0.1:1;

for i=1:21,

p=1./(1+25.*x2(i).^2);

y2(i)=p;

end

x=-1:0.01:1;

yi=language(x2,y2,x);

yj=spline(x2,y2,x);

figure(1);

plot(x1,y1,'o',x,ym,'r-',x,yn,'k-');

figure(2);

plot(x2,y2,'o',x,yi,'r-',x,yj,'k-')

第三题

MATLAB代码:

用spline进行插值

x1=[0 1 4 9 16 25 36 49 64 ];

y1=[0 1 2 3 4 5 6 7 8];

x=0:0.1:64;

ym=language(x1,y1,x);

yn=spline(x1,y1,x);

figure(1);

plot(x1,y1,'o',x,ym,'k-',x,yn,'r-');

用scape用第一边界条件进行插值

x1=[0 1 4 9 16 25 36 49 64 ];

y1=[0 1 2 3 4 5 6 7 8];

x=0:0.1:64;

ym=language(x1,y1,x);

pp=csape(x1,y1, 'complete',[0.2,-1]);

yn=ppval(pp,x);

figure(1);

plot(x1,y1,'o',x,ym,'k-',x,yn,'r-');

结论:

[0 64]三次样条插值精确

[0 1]多项式插值精确

第三章

第一题

MATLAB代码:

y=zeros(1,11);

x=-1:0.2:1;

for i=1:11,

p=1./(1+25.*x(i).^2);

y(i)=p;

end

A=polyfit(x,y,3);

y1=poly2str(A,'x');

p1=-1:0.02:1;

u1=polyval(A,p1);

plot(p1,u1,x,y,'o')

y1

y1 =

1.5271 x^3 + 3.8235 x^2 + 3.2599 x + 1.0023

第二题

MATLAB代码:

x=[0.0 0.1 0.2 0.3 0.5 0.8 1.0];

y=[1.0 0.41 0.50 0.61 0.91 2.02 2.46];

A1=polyfit(x,y,3);

A2=polyfit(x,y,4);

%用y=a*exp(b*x)拟合

u=log(y);

A3=polyfit(x,u,1);

m=A3(1);n=A3(2);

a=exp(n);

p1=-0.5:0.01:1.5;

u3=a*exp(m*p1);

u1=polyval(A1,p1);

u2=polyval(A2,p1);

plot(p1,u1,'c-',p1,u2,'r--',p1,u3,'k-.',x,y,'o')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值