数值分析大作业利用MATLAB软件.docx

上传人:b****6 文档编号:14016386 上传时间:2023-06-20 格式:DOCX 页数:14 大小:634.82KB
下载 相关 举报
数值分析大作业利用MATLAB软件.docx_第1页
第1页 / 共14页
数值分析大作业利用MATLAB软件.docx_第2页
第2页 / 共14页
数值分析大作业利用MATLAB软件.docx_第3页
第3页 / 共14页
数值分析大作业利用MATLAB软件.docx_第4页
第4页 / 共14页
数值分析大作业利用MATLAB软件.docx_第5页
第5页 / 共14页
数值分析大作业利用MATLAB软件.docx_第6页
第6页 / 共14页
数值分析大作业利用MATLAB软件.docx_第7页
第7页 / 共14页
数值分析大作业利用MATLAB软件.docx_第8页
第8页 / 共14页
数值分析大作业利用MATLAB软件.docx_第9页
第9页 / 共14页
数值分析大作业利用MATLAB软件.docx_第10页
第10页 / 共14页
数值分析大作业利用MATLAB软件.docx_第11页
第11页 / 共14页
数值分析大作业利用MATLAB软件.docx_第12页
第12页 / 共14页
数值分析大作业利用MATLAB软件.docx_第13页
第13页 / 共14页
数值分析大作业利用MATLAB软件.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数值分析大作业利用MATLAB软件.docx

《数值分析大作业利用MATLAB软件.docx》由会员分享,可在线阅读,更多相关《数值分析大作业利用MATLAB软件.docx(14页珍藏版)》请在冰点文库上搜索。

数值分析大作业利用MATLAB软件.docx

数值分析大作业利用MATLAB软件

 

实验报告

 

课程名称:

数值分析

实验项目:

曲线拟合/数值积分

专业班级:

姓名:

学号:

实验室号:

实验组号:

实验时间:

20.10.24批阅时间:

指导教师:

成绩:

工业大学实验报告

(适用计算机程序设计类)

专业班级:

学号:

姓名:

实验名称:

曲线拟合与函数插值

1.实验目的:

(1)消化吸收课堂上学到的关于迭代法的知识。

(2)熟练掌握MATLAB软件关于对拟合方法的基本操作

(3)会使用MATLAB软件计算各种拟合法。

2.实验内容:

已知某天在各个整点时刻的温度如下表所示,使用最小二乘法,确定这一天的气温变化规律。

分别采用下列函数进行拟合,分析误差,并作图比较效果。

(1)二次多项式;

(2)三次多项式;

(3)四次多项式;

(4)形如

的函数,其中

为待定常数。

3.实验方案(程序设计说明)

(1)确定拟合变量

(2)建立拟合关系式

(3)对拟合过程进行控制

(4)对拟合过程进行修正

4.实验步骤或程序(经调试后正确的源程序)

见附件A

5.程序运行结果

二次多项式拟合结果:

(1)y=7.416+2.594t-0.094t^2

三次多项式拟合结果:

(2)y=12.251-0.102t+0.193t^2-0.008t^3

四次多项式拟合结果:

(3)y=15.604-3.526t+0.866t^2-0.052t^3+0.0009t^4

形如

拟合结果:

(4)Y=-58.6146exp-0.0003(t-3.4660)^2

6.出现的问题及解决方法

在程序设计出现一些语法错误,通过设置断点找到了语法错误,并改正了。

附件A工业大学实验报告

(适用计算机程序设计类)

专业班级:

学号:

姓名:

实验步骤或程序:

附录一:

1.利用二次,三次,四次多项式进行拟合:

1.1MATLAB代码如下:

clear;clc;closeall

t=[0123456789101112131415161718192021222324];

y=[14131313131415171921222427303130282624232119171615];%输入数据

holdon

[p2s2]=polyfit(t,y,2);%对于上面的数据进行2次多项式拟合,其中s2包括R(系数矩阵的QR分解的上三角阵),

%df(自由度),normr(拟合误差平方和的算术平方根)。

y2=polyval(p2,t);%返回多项式拟合曲线在t处的值

[p3s3]=polyfit(t,y,3);

y3=polyval(p3,t);

[p4s4]=polyfit(t,y,4);

y4=polyval(p4,t);

plot(t,y,'ro')%画图

plot(t,y2,'g-')

plot(t,y3,'m^-')

plot(t,y4,'bs-')

xlabel('t')

ylabel('y')

legend('原始数据','2次多项式拟合','3次多项式拟合','4次多项式拟合')

1.2二次,三次,四次多项式拟合的结果分别如下:

(1)总的拟合结果在工作区的显示如下:

(2)其次二次多项式拟合的结果为:

(3)其中三次多项式拟合的结果:

 

(4)其中四次多项式拟合的结果为:

1.3拟合的图像为:

1.4拟合的多项式为:

根据工作区得出的数据列出最后的拟合多项式为:

(1)y=7.416+2.594t-0.094t^2

(2)y=12.251-0.102t+0.193t^2-0.008t^3

(3)y=15.604-3.526t+0.866t^2-0.052t^3+0.0009t^4

2.形如

的函数,其中

为待定常数。

2.1MATLAB代码如下

clear;clc;closeall

t=[0123456789101112131415161718192021222324];

y=[14131313131415171921222427303130282624232119171615];

fun=inline('a

(1)*exp(-a

(2)*(t-a(3)).^2)','a','t');%建立内联函数

a=lsqcurvefit(fun,[0,0,0],t,y);%拟合,lsqcurvefit函数用于非线性最小二乘拟合。

t,y为要拟合的数据,fun为函数句柄,

holdon;

plot(t,y,'bo');%画原始数据点

t0=min(t):

max(t);

y0=fun(a,t0);

plot(t0,y0,'r');%画拟和曲线

holdoff;

disp(a)%显示参数的值

2.2拟合结果为

2.3拟合的图像

2.4拟合的多项式为:

3.4660-0.0003-58.6146

Y=-58.6146exp-0.0003(t-3.4660)^2

 

工业大学实验报告

专业班级:

学号:

姓名:

实验名称:

数值积分

1.实验目的:

(1)对MATLAB软件能够更加熟练的掌握。

(2)学会利用MATLAB求数值积分。

(3)观察哪一种方法更适合计算机计算。

2.实验内容:

分别用变步长梯形求积算法和龙贝格算法计算积分

要求误差不超过

,并比较它们的计算量。

3.实验方案(程序设计说明):

(1)先把方程组转化为矩阵输入到MATLAB中;

(2)再按照变步长梯形和龙贝格算法步骤列出表达式。

(3)按照相应的递推公式进行迭代。

并时刻检验精度是否满足要求。

(4)对关系式进行修正,程序进行调试。

4.实验步骤或程序(经调试后正确的源程序)

见附件A

5.程序运行结果:

变步长梯形求积算法:

s_2=-1.4351num_2=185

龙贝格算法:

T=-1.4265n=32

6.出现的问题及解决方法

在程序设计出现一些语法错误,通过设置断点找到了语法错误,并改正了。

附件A工业大学实验报告

(适用计算机程序设计类)

专业班级:

学号:

姓名:

实验步骤或程序:

附录如下:

1.利用变步长梯形求积算法计算

1.1MATLAB代码如下:

function[bianbuchangjifen,num]=kong_tixing(a,b,tol)

%a,b为积分区间,tol为积分精度

if(nargin==3)

eps=1e-4;

end

n=1;

h=(b-a)/2;

int_1=0;

int_2=(kong_t_f(a)+kong_t_f(b))/h;

whileabs(int_2-int_1)>tol

n=n+1;

h=(b-a)/n;

int_1=int_2;

int_2=0;

fori=0:

n-1

x=a+h*i;

x1=x+h;

int_2=int_2+(h/2)*(kong_t_f(x)+kong_t_f(x1));

end

end

bianbuchangjifen=int_2;

num=n;

functionf=kong_t_f(x)

f=(10./x).^2.*sin(10./x);

[s_2,num_2]=kong_tixing(1,3,1e-4)

x=1:

3;

y=(10./x).^2.*sin(10./x);

area(x,y)

1.2命令窗口以及工作区显示的结果如下:

1.3输出图像为:

1.4输出结果为:

s_2=

-1.4351

num_2=

185

表明划分了185次,结果为-1.4351。

收敛速度比较慢。

2.利用龙贝格算法计算结果如下:

2.1MATLAB代码如下:

function[T,n,R]=romb(f,a,b,eps)

%%其中输入项:

%f为被积函数,

%ab为积分区间的端点值,

%ep为积分精度;

%%输出项:

%T是逐次积分表值,

%n是迭代次数,

%R是最后积分值

doubleR;

ifnargin<4,eps=1e-8;

end

h=b-a;R(1,1)=(h/2)*(feval(f,a)+feval(f,b));

n=1;J=0;err=1;

while(err>eps)

J=J+1;h=h/2;S=0;

fori=1:

n

x=a+h*(2*i-1);

S=S+feval(f,x);

end

R(J+1,1)=R(J,1)/2+h*S;

fork=1:

J

R(J+1,k+1)=(4^k*R(J+1,k)-R(J,k))/(4^k-1);

end

err=abs(R(J+1,J+1)-R(J+1,J));

n=2*n;

end

R;

T=R(J+1,J+1)

end

f=inline('(10/x).^2*sin(10/x)','x');

[T,n,R]=romb(f,1,3,1e-4)

2.2命令窗口和工作区的内容为:

4.2.3最后输出结果为:

T=

-1.4265

n=

32

R=

-56.519500000

-52.2329-50.80400000

-23.8564-14.3976-11.9705000

-6.8278-1.1516-0.2685-0.082800

-2.6815-1.2994-1.3093-1.3258-1.33070

-1.7327-1.4164-1.4242-1.4260-1.4264-1.4265

结论是:

很明显的看出达到同样的精度龙贝格算法收敛速度更快。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 外语学习 > 韩语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2