数值计算实验报告2

时间:2024.4.2

贵州师范大学数学与计算机科学学院学生实验报告

课程名称:数值分析    班级:           实验日期:2013927

学    号:              姓名:       指导教师:     

                                             实验成绩:              

       

一、实验名称

  实验二: Lagrange插值与曲线拟合的最小二乘法

二、实验目的及要求

1.让学生掌握Lagrange插值与曲线拟合的最小二乘法

   2.让学生能够用这些方法解决一些实际问题

三、实验环境

每人一台计算机,要求安装Windows XP操作系统,Microsoft office20##、MATLAB6.5(或7.0).

四、实验内容

题1: 对函数 ,取n+1个等距分布的插值节点,取不同的n ,作n次Lagrange插值,把和插值多项式的图象绘制在同一张图上进行比较.

题2:  给定数据点

分别用一次,二次,和三次多项式曲线,以及最小二乘法拟合这些数据点,哪一种曲线拟合较好?为什么?你能找出更好的拟合曲线吗?

    提示:用残差平方的大小来判断拟合的优劣,越小越好.

五、算法描述及实验步骤

 针对实验1:

(1)运用Matlab创建M文件

(2)在命令窗口调用文件

 针对实验2:

(1)运用Matlab作出上面表中的数据的散点图

(2)分别作出一次二次三次多项式拟合曲线

(3)比较三种曲线拟合的精度即比较残差平方的大小

六、调试过程及实验结果

1. Lagrange插值:

(1)命令窗口输入:

>> f=shuru(-5,5,10) (回车)

 f =

  Columns 1 through 6

    0.0385    0.0588    0.1000    0.2000    0.5000    1.0000

  Columns 7 through 11

    0.5000    0.2000    0.1000    0.0588    0.0385

(2)所得结果为图形所示:

 

2. 曲线拟合的最小二乘法

(1)先作出该散点图的一次拟合曲线(程序如下):

>> x=[-3,-1,0,1,3,5];

>> t=-4:0.01:6;

>> y=[-6,-3,-1,0,1,3];

>> subplot(1,3,1)

>> scatter(x,y,'filled','r');

>> hold on

>> p1=polyfit(x,y,1)

p1 =

    1.0776   -1.8980

>> y1=polyval(p1,x);

>> y1t=polyval(p1,t);

>> plot(t,y1t,'k')

>> e1=norm(y1-y)

e1 =

    1.6087

>>  title('一次多项式曲线拟合','fontsize',12,'fontweight','bold','fontangle','italic')

(2)然后作出其二次拟合曲线:

>> subplot(1,3,2)

>> scatter(x,y,'filled','y');

>>  hold on

>> p1=polyfit(x,y,2)

p1 =

   -0.0844    1.2584   -1.4156

>> y1=polyval(p1,x);

>> y1t=polyval(p1,t);

>> plot(t,y1t,'r')

>> e1=norm(y1-y)

e1 =

    0.8405

>> title('二次多项式曲线拟合','fontsize',12,'fontweight','bold','fontangle','italic')

(3)最后做出其三次拟合曲线:

>> subplot(1,3,3)

>> scatter(x,y,'filled','m');

>>  hold on

>> p1=polyfit(x,y,2)

p1 =

   -0.0844    1.2584   -1.4156

>> y1=polyval(p1,x);

>> y1t=polyval(p1,t);

>> plot(t,y1t,'r')

>> e1=norm(y1-y)

e1 =

    0.8405

>>  title('三次多项式曲线拟合','fontsize',12,'fontweight','bold','fontangle','italic')

最后的图像为:

(4)比较精确度:

 因为  e1 =1.6087 <   e2=0.8405   <   e3 = 0.8405

 所以显然三次多项式拟合曲线的精度更高

七、总结

     

                              

八、附录

Lagrange.m 文件:

function f=shuru(a,b,n)

h=(b-a)/n;

x=a:h:b;

f=1./(1+x.^2);

cx=a:0.01:b;

y0=1./(1+cx.^2);

plot(cx,y0,'b--')

hold on

cy=Lagrange(x,f,n,cx');

plot(cx,cy,'g--')

legend('f(x)','Pn(x)',2)

function cy=Lagrange(x,y,n,cx)

m=length(cx);cy=zeros(m,1);

for k=1:n+1

    t=ones(m,1);

    for j=1:n+1

        if j~=k

            t=t.*(cx-x(j))./(x(k)-x(j));

        end

    end

    cy=cy+y(k).*t;

end


第二篇:实验报告五 --MATLAB的微积分数值计算(二) 121025


     基于MATLAB的微积分数值计算(二)

 姓名  马梁   学号    902904149   班级_09计算科学                                 

说明:

(1)要求在Notebook环境下完成;

(2)完成后请以姓名(班级学号)实验报告名称命名并存盘;

(3)在下一次上课之前由学习委员收齐打包以附件形式后发到 lvximing@vip.163.com

(5)请自行保存备份,以备后用。

一.请编程计算以下不定积分

1、

【程序代码】

syms x C;

 y=cos(2*x)/(sin(x)+cos(x));

 yj=int(y,x)+C 

yj =

C + cos(x) + sin(x)  

2、

【程序代码】

syms x C;

 y=1/((asin(x))^2*sqrt(1-x^2));

 yj=int(y,x)+C 

yj =

C - 1/asin(x)  

3、

【程序代码】

syms x C;

 y=exp(x)*cos(x);

 yj=int(y,x)+C 

yj =

C + (exp(x)*(cos(x) + sin(x)))/2  

二.计算下列定积分

1、

【程序代码】

syms x;

 y=sin(x)/(1+cos(x)^2);

 I=int(y,x,0,x) 

I =

pi/4 - atan(cos(x))  

2、

【程序代码】

syms x;

 y=x*atan(x);

 I=int(y,x,0,1) 

I =

pi/4 - 1/2  

3、

【程序代码】

syms x;

 y=x^3*exp(-x);

 I=int(y,x,0,inf)    

I =

6  

4、

【程序代码】

syms x;

 y=x/sqrt(x-1);

 I=int(y,x,1,2)    

I =

8/3  

5. 将函数sinx在展成的9次幂级数

syms x a;

y=sin(x)

m6=taylor(y,x,10,a)  

y =

sin(x)

Warning: The syntax of TAYLOR has changed. The old syntax is partially supported in this release, but will be removed in a future release. Use name-value pair arguments to specify order and expansion point. See doc taylor for details.

{> In sym.taylor at 99}

m6 =

sin(a) + (cos(a)*(a - x)^3)/6 - (cos(a)*(a - x)^5)/120 + (cos(a)*(a - x)^7)/5040 - (cos(a)*(a - x)^9)/362880 - (sin(a)*(a - x)^2)/2 + (sin(a)*(a - x)^4)/24 - (sin(a)*(a - x)^6)/720 + (sin(a)*(a - x)^8)/40320 - cos(a)*(a - x)  

三.

【程序代码】

四.从网络或参考资料上收集并整理1~2个与所学知识相关的MATLAB程序并运行其结果(添加必要的注释)

更多相关推荐:
数值计算方法上机实验报告

数值计算方法上机实验报告数值计算方法上机实验报告实验目的复习和巩固数值计算方法的基本数学模型全面掌握运用计算机进行数值计算的具体过程及相关问题利用计算机语言独立编写调试数值计算方法程序培养学生利用计算机和所学理...

数值计算实验报告

线性方程的数值解法一课题名称二分法求解非线性方程二引言目的求方程fx0的根二分法所使用的方法主要是介值定理它的基本思想是逐步缩小根存在的区间搜索根所在的位置许多实际算法表现为某种无穷递推过程的阶段实现这类算法不...

数值计算方法实验报告

目录实验一误差定积分1实验二非线性方程求根4一二实验三实验四实验五牛顿迭代法4牛顿下山法5解线性代数方程组列主元消元法7解线性代数方程组追赶法9插值与拟合三次样条差值1112345678910111213141...

数值计算方法实验报告

数值计算方法实验报告实验题目二分法求非线性方程的根专业班级11级数学师范二班姓名学号20xx020xx056指导老师李梦联系电话188xxxxxxxx一实验目的熟悉二分法求方程近似根的数值方法与用计算器解出的值...

数值计算实验报告

重庆大学学生实验报告实验课程名称数值计算开课实验室学院xxxx学院年级专业班学生姓名xxx学号xxxxxxx开课时间xxxx至xxxx学年第x学期数值计算实验报告xxxxxxxxxx实验一2数值计算实验报告xx...

数值计算实验报告

20##级6班###(学号)计算机数值方法实验报告成绩册姓名:学号:成绩:数值计算方法与算法实验报告学期:20##至___20##第1学期20##年10月26日课程名称:__数值计算方法与算法__专业:信息与计…

数值计算实验报告

数值计算实验报告

数值计算实验报告1

数值计算基础实验报告专业班级学号姓名指导老师实验目的熟悉线性代数方程组高斯消去法高斯列主元消去法高斯全主元消去实验内容一一问题x1x24x41xxx3x21234用Gauss消去法求解方程组x3x5x4x423...

数值计算基础实验指导书孙谦

123456数值计算基础实验指导书20xx年目录实验一直接法解线性方程组的1实验二插值方法10实验三数值积分4实验四常微分方程的数值解6实验五迭代法解线性方程组与非线性方程8实验一直接法解线性方程组一实验目的掌...

《MATLAB及应用》实验报告1 MATLAB数值计算

电气工程学院实验报告实验项目名称MATLAB数值计算所属课程名称实验类型上机实验实验日期20xx035指导教师XXXXXX班级学号姓名XXXXXXXX成绩一实验名称MATLAB数值计算二实验目的1掌握MATLA...

数值计算实验报告简要

数学与计算科学学院实验报告实验项目名称方程求根所属课程名称数值方法B实验类型验证实验日期20xx124班级学号20xx64100207姓名吕立婷成绩1234567

云计算实验报告

实验一CloudSim优缺点1优点能够提供虚拟化服务其它的优点没感觉到2缺点版本不兼容问题严重不支持新的模拟实体的创建实验环境搭建1下载cloudsim30和jdk17配置环境变量pathCcloudsim30...

数值计算实验报告(29篇)