最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

数值分析matlab实验报告

来源:动视网 责编:小OO 时间:2025-09-24 13:13:26
文档

数值分析matlab实验报告

实验2.1多项式差值的振荡现象一、实验内容设区间[-1,1]上函数,考虑区间[-1,1]的一个等距划分,分点为,i=0,1,2,...,n,则拉格朗日插值多项式为.其中,li(x),i=0,1,2,...,n是Lagrange插值基函数.1)选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像,比较并分析实验结果.2)选择其他的函数,例如定义在区间[-5,5]上的函数,,重复上述的实验看其结果如何.二、实验程序1.主程序functionc
推荐度:
导读实验2.1多项式差值的振荡现象一、实验内容设区间[-1,1]上函数,考虑区间[-1,1]的一个等距划分,分点为,i=0,1,2,...,n,则拉格朗日插值多项式为.其中,li(x),i=0,1,2,...,n是Lagrange插值基函数.1)选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像,比较并分析实验结果.2)选择其他的函数,例如定义在区间[-5,5]上的函数,,重复上述的实验看其结果如何.二、实验程序1.主程序functionc
实验2.1 多项式差值的振荡现象

一、实验内容

设区间[-1,1]上函数,考虑区间[-1,1]的一个等距划分,分点为,i=0,1,2,...,n,则拉格朗日插值多项式为.其中,li(x),i=0,1,2,...,n是Lagrange插值基函数.

1)选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像,比较并分析实验结果.

2)选择其他的函数,例如定义在区间[-5,5]上的函数,,重复上述的实验看其结果如何.

二、实验程序

1.主程序

function chapter2

promps={'请选择试验函数,若选f(x),请输入f,若选好h(x),请输入h,若选g(x),请输入g:'};

 result=inputdlg(promps,'charpt 2',1,{'f'});

 Nb_f=char(result);

 if(Nb_f~='f'&&Nb_f~='h'&&Nb_f~='g')

     errordlg('试验函数选择错误!');

     return;

 end

 result=inputdlg({'请输入插值多项式的次数N:'},'charpt_2',1,{'10'});

 Nd=str2num(char(result));

if(Nd<1)

     errordlg('插值多项式的次数输入错误!');

     return;

 end

 switch Nb_f

     case'f'

         f=inline('1./(1+25*x.^2)');a=-1;b=1;

     case'h'

         f=inline('x./(1+x.^4)');a=-5;b=5;

     case'g'

         f=inline('atan(x)');a=-5;b=5;

 end

x0=linspace(a,b,Nd+1);y0=feval(f,x0);

x=a:0.1:b;y=Lagrange(x0,y0,x);

clf;

fplot(f,[a b],'rx');

hold on;

plot(x,y,'b--');

xlabel('x');ylabel('y=f(x) x and y=Ln(x) --');

2.Lagrange函数

function y=Lagrange(x0,y0,x)

n=length(x0);

m=length(x);

for i=1:m

    z=x(i);

    s=0;

    for k=1:n

        p=1.0;

        for j=1:n

            if (j~=k)

                p=p.*(z-x0(j))/(x0(k)-x0(j));

            end

        end

        s=s+p*y0(k);

    end

    y(i)=s;

end

三、实验结果及分析

1) 选择不断增大的分点数目n,原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像。

随着提高插值多项式次数,可以提高逼近的精度,但是次数的增加,在区间两端点附近与原函数偏离很远,即出现了Runge现象。

2) 选择不断增大的分点数目n,原函数h(x)及插值多项式函数Ln(x)在[-1,1]上的图像。

 

选择不断增大的分点数目n,原函数g(x)及插值多项式函数Ln(x)在[-1,1]上的图像。

 

 

 

同样,随着提高插值多项式次数,可以提高逼近的精度,但是次数的增加,在区间两端点附近与原函数偏离很远,即出现了Runge现象。

实验3.1最小二乘拟合

一、实验内容

编制以函数为基的多项式最小二乘拟合程序,并用于对下表中数据作3次多项式最小二乘拟合.

xi

-1.0-0.50.00.51.01.52.0
yi

-4.447-0.4520.5510.048-0.4470.5494.552
取权数,求拟合曲线中的参数、平方误差,并作离散数据的拟合函数的图形.

二、实验程序

function chapter3

x0=-1:0.5:2;

y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552];

n=3;

alph=polyfit(x0,y0,n);

y=polyval(alph,x0);

r=(y0-y)*(y0-y)';

x=-1:0.01:2;

y=polyval(alph,x);

plot(x,y,'k--');

xlabel('x');ylabel('y0 * and polyfit. y-.');

hold on;

plot(x0,y0,'*');

title('离散数据的多项式拟合');

grid on;

disp(['平方误差:',sprintf('%g',r)]);

disp(['参数alph:',sprintf('%g\',alph)])

三、实验结果及分析

输出结果:

平方误差:2.17619e-005

参数alph:1.99911    -2.99767    -3.96825e-005    0.549119

离散数据的拟合函数图形为:

实验3.2 正交化多项式最小二乘拟合

一、实验内容

编制正交化多项式最小二乘拟合程序,并用于求解上题中的3次多项式最小二乘拟合问题,作拟合曲线的图形,计算平方误差,并与上题的结果进行比较.

二、实验程序

1.主程序:

function chapter3_2

x0=-1:0.5:2;

y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552];

n=3;

result=inputdlg({'请输入权向量w:'},'charpt_3',1,{'[1 1 1 1 1 1 1]'});

w=str2num(char(result));

[a,b,c,alph,r]=ffun(x0,y0,w,n);

disp(['平方误差:',sprintf('%g',r)]);

disp(['参数alph:',sprintf('%g\',alph)])

2.正交化离散数据最小二乘拟合函数

function [a,b,c,alph,r]=ffun(x,y,w,n)

m=length(x)-1;

s1=0;s2=ones(1,m+1);v2=sum(w);

d(1)=y*w';c(1)=d(1)/v2;

for k=1:n

    xs=x.*s2.^2*w';a(k)=xs/v2;

    if(k==1)

        b(k)=0;

    else

        b(k)=v2/v1;

    end

    s3=(x-a(k)).*s2-b(k)*s1;

    v3=s3.^2*w';

    d(k+1)=y.*s3*w';c(k+1)=d(k+1)/v3;

    s1=s2;s2=s3;v1=v2;v2=v3;

end

r=y.*y*w'-c*d';

alph=zeros(1,n+1);

T=zeros(n+1,n+2);

T(:,2)=ones(n+1,1);T(2,3)=-a(1);

if(n>=2)

    for k=3:n+1

        for i=3:k+1

            T(k,i)=T(k-1,i)-a(k-1)*T(k-1,i-1)-b(k-1)*T(k-2,i-2);

        end

    end

end

for i=1:n+1

    for k=i:n+1

        alph(n+2-i)=alph(n+2-i)+c(k)*T(k,k+2-i);

    end

end

xmin=min(x);xmax=max(x);dx=(xmax-xmin)/(25*m);

t=(xmin-dx):dx:(xmax+dx);

s=alph(1);

for k=2:n+1

    s=s.*t+alph(k);

end

plot(x,y,'*',t,s,'-');

title('离散数据的多项式拟合');

xlabel('x');ylabel('y');

grid on;

三、实验结果及分析

输出结果:

平方误差:2.17619e-005

参数alph:1.99911    -2.99767    -3.96825e-005    0.549119

离散数据的拟合函数图形为:

与实验3.1的结果完全一致。

文档

数值分析matlab实验报告

实验2.1多项式差值的振荡现象一、实验内容设区间[-1,1]上函数,考虑区间[-1,1]的一个等距划分,分点为,i=0,1,2,...,n,则拉格朗日插值多项式为.其中,li(x),i=0,1,2,...,n是Lagrange插值基函数.1)选择不断增大的分点数目n=2,3,...,画出原函数f(x)及插值多项式函数Ln(x)在[-1,1]上的图像,比较并分析实验结果.2)选择其他的函数,例如定义在区间[-5,5]上的函数,,重复上述的实验看其结果如何.二、实验程序1.主程序functionc
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top