数值计算方法实验jrh.docx

上传人:b****8 文档编号:8993705 上传时间:2023-02-02 格式:DOCX 页数:13 大小:60.84KB
下载 相关 举报
数值计算方法实验jrh.docx_第1页
第1页 / 共13页
数值计算方法实验jrh.docx_第2页
第2页 / 共13页
数值计算方法实验jrh.docx_第3页
第3页 / 共13页
数值计算方法实验jrh.docx_第4页
第4页 / 共13页
数值计算方法实验jrh.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数值计算方法实验jrh.docx

《数值计算方法实验jrh.docx》由会员分享,可在线阅读,更多相关《数值计算方法实验jrh.docx(13页珍藏版)》请在冰豆网上搜索。

数值计算方法实验jrh.docx

数值计算方法实验jrh

 

学院:

自动化学院

班级:

自动化085

姓名:

学号:

2011年3月

一、实验的性质、目的和任务

本实验是与本专业基础课《数值计算方法》相配套的,旨在巩固专业课内容和学生编程的能力。

通过实验加强对数值方法的理解和掌握,编制出适用的程序。

同时,在理论教学的基础上,注意方法处理的技巧及其与计算机的结合,;其次要通过例子,学习使用各种数值方法解决实际计算问题。

要求学生应用高级计算机语言Matlab编程完成实验。

二、实验基本要求

要求熟悉高级计算机语言Matlab,以及相关上机操作说明;上机时要遵守实验室的规章制度,爱护实验设备;记录调试过程及结果。

三、实验原理

应用高级计算机语言实现数值计算方法课程中的各种算法。

四、设备及器材配置

主机:

微机

操作系统:

WINDOWS98以上

软件:

高级计算机语言Matlab

五、考核与报告

每个实验完成后交一份实验报告。

本实验作为平时成绩的一部分占学期期末总成绩的20%。

六、适用对象

自动化专业

七、主要参考书

1.王能超编,《数值分析简明教程》,高等教育出版社,2003年,第2版

2.封建湖编,《数值分析原理》,科学出版社,2001年,第1版

3.冯有前编,《数值分析》,清华大学出版社,2005年,第1版

4.周璐等译,JohnH.Mathews等编,《数值方法(MATLAB版)》,电子工业出版社,2007年,第二版

实验一采用拉格朗日方法计算插值

一、实验目的:

1.掌握多项式插值的概念、存在唯一性;

2.能够熟练地应用拉格朗日方法计算插值,并完成插值程序的设计和调试。

二、实验内容:

构造拉格朗日插值多项式

逼近

,要求:

(1)取节点

求线性插值多项式

(2)取节点

求抛物插值多项式

(3)取节点

求三次插值多项式

(4)分别求

的值,并与精确值相比较。

三、实验程序及结果:

实验程序如下:

Ex1_1.m:

l0=xianxing(1.3,-1,1);

l1=xianxing(1.3,1,-1);

y0=hanshu(-1);

y1=hanshu

(1);

y=l0*y0+l1*y1

det1=abs(y-hanshu(1.3))

Ex1_2.m:

l0=paowu(1.3,-1,0,1);

l1=paowu(1.3,0,-1,1);

l2=paowu(1.3,1,-1,0);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu

(1);

y=l0*y0+l1*y1+l2*y2

det2=abs(y-hanshu(1.3))

Ex1_3.m:

l0=sanci(1.3,-1,0,1,2);

l1=sanci(1.3,0,-1,1,2);

l2=sanci(1.3,1,0,-1,2);

l3=sanci(1.3,2,-1,0,1);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu

(1);

y3=hanshu

(2);

y=l0*y0+l1*y1+l2*y2+l3*y3

det3=abs(y-hanshu(1.3))

xianxing.m:

functionf=xianxing(x,y,z)

f=(x-z)/(y-z);

paowu.m:

functionf=paowu(x,y,z,w)

f=((x-z)*(x-w))/((y-z)*(y-w));

sanci.m:

functionf=sanci(x,y,z,w,s)

f=((x-z)*(x-w)*(x-s))/((y-z)*(y-w)*(y-s));

hanshu.m:

functionf=hanshu(x)

f=x^3;

实验结果分析:

y=1.3000

det1=0.8970

y=1.3000

det2=0.8970

y=2.1970

det3=4.4409e-016

结果说明三次插值方法得到的结果最接近真实值。

 

实验二采用埃特金方法计算插值

一、实验目的:

1.进一步掌握多项式插值的概念;

2.能够熟练地应用埃特金方法计算插值,并完成插值程序的设计和调试。

二、实验内容:

取节点为

,用埃特金方法求

的近似值,并与真实结果相比较。

三、实验程序及结果:

实验程序如下:

Ex2.m:

x=[-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1];

fori=2:

9

forj=i:

9

y(j-1,i-1)=atj(0.793,x(i-1),x(j));

end

end

y(8,8)

det=abs(y(8,8)-hs(0.793))

hs.m:

functionf=hs(x)

f=2+sin(pi*x/6);

atj.m:

functionf=atj(x,y,z)

f=((x-z)/(y-z))*hs(y)+((x-y)/(z-y))*hs(z);

实验结果分析:

ans=

2.4029

det=

5.2372e-004

实验结果说明利用埃特金算法得到的结果与真实值很接近,而且利用此迭代算法可以避免拉格朗日插值公式中的重新计算。

 

实验三采用复化柯特斯公式计算数值积分

一、实验目的:

1.掌握牛顿-柯特斯公式的基本原理及推导,了解复化求积法的计算步骤;

2.能够熟练地应用复化梯形公式、复化新甫生求积公式和复化柯特斯求积公式计算数值积分,并完成积分程序的设计和调试。

二、实验内容:

取节点为

,分别用复化梯形公式、复化新甫生法和复化柯特斯方法求积分

的近似值。

三、实验程序及结果:

实验程序如下:

Ex3.m:

tnf=tx(0,1,8)

snf=xps(0,1,8)

cnf=kts(0,1,8)

hs3.m:

functionf=hs3(x)

f=2+sin(2*pi*sqrt(x)/8);

tx.m:

functionf=tx(x,y,n)

h=(y-x)/n;

sum=0;

fori=1:

n-1

sum=sum+hs3(x+i*h);

end

f=h/2*(hs3(x)+2*sum+hs3(y));

xps.m:

functionf=xps(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

fori=0:

n-1

sum1=sum1+hs3(x+(i+1/2)*h);

end

forj=1:

n-1

sum2=sum2+hs3(x+j*h);

end

f=h/6*(hs3(x)+4*sum1+2*sum2+hs3(y));

kts.m:

functionf=kts(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

sum3=0;

sum4=0;

fori=0:

n-1

sum1=sum1+hs3(x+(i+1/4)*h);

sum2=sum2+hs3(x+(i+1/2)*h);

sum3=sum3+hs3(x+(i+3/4)*h);

end

forj=1:

n-1

sum4=sum4+hs3(x+i*h);

end

f=h/90*(7*hs3(x)+32*sum1+12*sum2+32*sum3+14*sum4+7*hs3(y));

实验结果分析:

tnf=

2.4852

snf=

2.4910

cnf=

2.5143

 

实验四采用四阶龙格-库塔方法求解常微分方程

一、实验目的:

1.掌握龙格-库塔方法的设计思想;

2.能够熟练地应用龙格-库塔方法求解常微分方程,并完成四阶龙格-库塔方法程序的设计和调试。

二、实验内容:

用四阶龙格-库塔方法计算区间

上初值问题

的解。

其中步长

三、实验程序及结果:

实验程序如下:

Ex4.m:

y0=0;

y

(1)=lg_kt(y0,0.1);

fori=2:

14

y(i)=lg_kt(y(i-1),0.1);

end

y

lg_kt.m:

functionf=lg_kt(y,h)

k1=hs4(y);

k2=hs4(y+h/2*k1);

k3=hs4(y+h/2*k2);

k4=hs4(y+h*k3);

f=y+h/6*(k1+2*k2+2*k3+k4);

hs4.m:

functionf=hs4(x)

f=1+x^2;

 

实验结果分析:

y=

Columns1through9

0.10030.20270.30930.42280.54630.68410.84231.02961.2602

Columns10through14

1.55741.96472.57213.60165.7920

实验五采用迭代法求解非线性方程

四、实验目的:

1.掌握牛顿法、弦截法、快速弦截法的算法思想;

2.能够熟练地应用牛顿法、弦截法、快速弦截法求解非线性方程,并完成程序的设计和调试。

五、实验内容:

分别用牛顿法、弦截法、快速弦截法求方程

的根,要求精度

六、实验程序及结果:

实验程序如下:

Ex5_1:

x

(1)=0;

x

(2)=newton(x

(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=newton(x(i));

i=i+1;

end

x

ex5_2:

x0=0;

x

(1)=1;

x

(2)=xjf(x0,x

(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=xjf(x0,x(i));

i=i+1;

end

x

ex5_3:

x0=0;

x

(1)=1;

x

(2)=k_xjf(x0,x

(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

x(i+1)=k_xjf(x(i-1),x(i));

i=i+1;

end

x

newton.h:

functionf=newton(x)

f=x-(exp(x)-4*cos(x))/(exp(x)+4*sin(x));

xjf.h:

functionf=xjf(x,y)

f=y-(hs5(y)/(hs5(y)-hs5(x)))*(y-x);

k_xjf.h:

functionf=k_xjf(x,y)

f=y-(hs5(y)*(y-x))/(hs5(y)-hs5(x));

hs5.h

functionf=hs5(x)

f=exp(x)-4*cos(x);

实验结果分析:

牛顿迭代法:

x=

Columns1through9

03.00001.83561.11340.92070.90490.90480.90480.9097

Columns10through18

0.90140.90710.90320.90590.90400.90530.90440.90510.9046

Columns19through23

0.90490.90470.90480.90470.9048

 

☆实验总结:

通过本次试验,受益匪浅啊!

使得对数值计算的各种方法产生了更为深刻的认知和了解,同时也巩固了过去所学的matlab知识。

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

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1