重庆大学数学实验实验报告.docx

上传人:b****5 文档编号:2936624 上传时间:2022-11-16 格式:DOCX 页数:13 大小:106.91KB
下载 相关 举报
重庆大学数学实验实验报告.docx_第1页
第1页 / 共13页
重庆大学数学实验实验报告.docx_第2页
第2页 / 共13页
重庆大学数学实验实验报告.docx_第3页
第3页 / 共13页
重庆大学数学实验实验报告.docx_第4页
第4页 / 共13页
重庆大学数学实验实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

重庆大学数学实验实验报告.docx

《重庆大学数学实验实验报告.docx》由会员分享,可在线阅读,更多相关《重庆大学数学实验实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

重庆大学数学实验实验报告.docx

重庆大学数学实验实验报告

重庆大学

学生实验报告

 

实验课程名称数学实验

开课实验室

学院年级专业班

学生姓名学号

开课时间至学年第学期

 

总成绩

教师签名

 

数学与统计学院制

开课学院、实验室:

数学与统计DS1421实验时间:

2010年3月23日

课程

名称

数学实验

实验项目

名称

MATLAB方程求解

实验项目类型

验证

演示

综合

设计

其他

指导

教师

肖剑

成绩

实验目的

[1]复习求解方程及方程组的基本原理和方法;

[2]掌握迭代算法;

[3]熟悉MATLAB软件编程环境;掌握MATLAB编程语句(特别是循环、条件、控制等语句);

[4]通过范例展现求解实际问题的初步建模过程;

通过该实验的学习,复习和归纳方程求解或方程组求解的各种数值解法(简单迭代法、二分法、牛顿法、割线法等),初步了解数学建模过程。

这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。

一、实验内容

1.方程求解和方程组的各种数值解法练习

2.直接使用MATLAB命令对方程和方程组进行求解练习

3.针对实际问题,试建立数学模型,并求解。

二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等,实验结果及分析)

基础实验

1.用图形放大法求解方程xsin(x)=1.并观察该方程有多少个根。

程序:

x=-50:

0.01:

50

y=x.*sin(x)-1

plot(x,y)

line([-50,50],[0,0])

结果:

有无穷个根

图像放大:

x=-8:

0.01:

-6

y=x.*sin(x)-1

plot(x,y)

line([-8,-6],[0,0])

求得一个解为—6.44

分析:

2.将方程x5+5x3-2x+1=0改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。

①迭代函数为

,算法设计为:

x1=0;

x2=(x1^5+5*x1^3+1)/2;

whileabs(x1-x2)>10^(-5)

x1=x2;

x2=(x1^5+5*x1^3+1)/2;

end

x1

输出结果为:

x1=Inf

因此x=(x)迭代不收敛,则不直接使用(x)迭代,用加速迭代函数

算法设计为:

x1=0;

x2=(-4*x1^5-10*x1^3+1)/(-5*x1^4-15*x1^2+2);

whileabs(x1-x2)>10^(-5)

x1=x2;

x2=(-4*x1^5-10*x1^3+1)/(-5*x1^4-15*x1^2+2);

end

x1

输出结果为:

x1=-0.7685

②迭代函数为

,算法设计为:

x1=1;

x2=((2*x1-x1^5-1)/5)^(1/3);

whileabs(x1-x2)>10^(-5)

x1=x2;

x2=((2*x1-x1^5-1)/5)^(1/3);

end

x1

输出结果为:

x1=Inf-Infi

因此x=(x)迭代不收敛,则不直接使用(x)迭代,用加速迭代函数

,算法设计为:

x1=0;

x2=((0.4*x1-0.2*x1^5-0.2)^(1/3)-1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2*x1-5*x1^5))/(1-(1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2-5*x1^4)));

whileabs(x1-x2)>10^(-5)

x1=x2;

x2=((0.4*x1-0.2*x1^5-0.2)^(1/3)-1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2*x1-5*x1^5))/(1-(1/15*(0.4*x1-0.2*x1^5-0.2)^(-2/3)*(2-5*x1^4)));

end

x1

输出结果为:

x1=0.4004+0.2860i

③迭代函数为

,算法设计为:

x1=0;

x2=(2*x1-5*x1^3-1)^(1/5);

fork=1:

100

x1=x2;

x2=(2*x1-5*x1^3-1)^(1/5);

end

x1

输出结果为:

x1=2.0162-0.8223i

若用加速迭代函数

,算法设计为:

x1=0;

x2=((2*x1-5*x1^3-1)^(1/5)-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2*x1-15*x1^3))/(1-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2-15*x1^2));

fork=1:

100

x1=x2;x2=((2*x1-5*x1^3-1)^(1/5)-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2*x1-15*x1^3))/(1-1/5*(2*x1-5*x1^3-1)^(-4/5)*(2-15*x1^2));

end

x1

输出结果为:

x1=-0.1483+0.7585i

④迭代函数为

,算法设计为:

x1=1;

x2=0.2*(2/x1-1/x1^2-x1^3);

fork=1:

100

x1=x2;

x2=0.2*(2/x1-1/x1^2-x1^3);

end

x1

输出结果为

x1=NaN

因此x=(x)迭代不收敛,则不直接使用(x)迭代,用加速迭代函数

,算法设计为:

x1=1;

x2=((2/x1-1/x1^2-x1^3)-x*(-2/x1^2+2/x1^3-3*x1^2))/(5-(-2/x1^2+2/x1^3-3*x1^2));

fork=1:

100

x1=x2;

x2=((2/x1-1/x1^2-x1^3)-x*(-2/x1^2+2/x1^3-3*x1^2))/(5-(-2/x1^2+2/x1^3-3*x1^2));

end

x1

输出结果为:

x1=3.4802308631248458912724395623836

⑤迭代函数为

,算法设计为:

x1=1;

x2=2/x1^3-5/x1-1/x1^4;

fork=1:

100

x1=x2;

x2=2/x1^3-5/x1-1/x1^4;

end

x1

输出结果为:

x1=1.8933

若用加速迭代函数

,算法设计为:

x1=1;

x2=((2/x1^3-5/x1-1/x1^4)-x*(-6/x^4+5/x^2+4/x^5))/(1-(-6/x^4+5/x^2+4/x^5));

fork=1:

100

x1=x2;

x2=((2/x1^3-5/x1-1/x1^4)-x*(-6/x^4+5/x^2+4/x^5))/(1-(-6/x^4+5/x^2+4/x^5));

end

x1

输出结果为:

x1=1.7968059417612661783255756706113

3.求解下列方程组

 

(1)①用solve()对方程组求解

程序:

[x,y]=solve('2*x-y-exp(-x)','-x+2*y-exp(-y)')

结果:

x=

.56714329040978387299996866221036

y=

.56714329040978387299996866221036

②用fsolve()对方程组求解:

建立M文件,程序:

functionf=qhs(x)

f

(1)=2*x

(1)-x

(2)-exp(-x

(1));

f

(2)=-x

(1)+2*x

(2)-exp(-x

(2));

输入fsolve('qhs',[1,1])

结果:

ans=

0.56710.5671

(2)

①用solve()对方程组求解

程序:

[x1,x2,x3]=solve('x1^2-5*x2^2+7*x3^2+12','3*x1*x2+x1*x3-11*x1','2*x2*x3+40*x1')

double(x1)

double(x2)

double(x3)

结果:

ans=

1.0e+02*

0.0100

0

0

-0.0031

0

0

-3.8701+0.3270i

-3.8701-0.3270i

 

ans=

5.0000

1.5492

-1.5492

2.9579

0

0

-0.3123-50.8065i

-0.3123+50.8065i

 

ans=

1.0e+02*

-0.0400

0

0

0.0213

0+0.0131i

0-0.0131i

0.1194+1.5242i

0.1194-1.5242i

②用fsolve()对方程组求解:

程序:

functionf=qhst(x)

f

(1)=x

(1)^2-5*x

(2)^2+7*x(3)^2+12;

f

(2)=3*x

(1)*x

(2)+x

(1)*x(3)-11*x

(1);

f(3)=2*x

(2)*x(3)+40*x

(1);

外部调用fsolve('qhst',[1,1])

结果:

Optimizationterminated:

first-orderoptimalityislessthanoptions.TolFun.

y=

0.00001.54920.0000

 

直接使用MATLAB命令:

solve()和fsolve()对方程组求解。

4.编写用二分法求方程根的函数M文件。

以以解方程x2-x-2=0为例

functionf=fc(x)

f=x^2-*x-2;

functionf=qiugen(x)

m=x

(1);n=x

(2);

while(n-m)>10^(-5)

iffc(m)==0

f=m;

break;

elseiffc(n)==0

f=n;

break;

elseiffc((m+n)/2)==0

f=(m+n)/2;

break;

elseiffc(m)*fc((m+n)/2)<0

n=(m+n)/2;

f=(m+n)/2;

else

m=(m+n)/2;

f=(m+n)/2;

end

end

end

end

end

在函数体外部调用函数,输入:

>>x=[0.5,2];root=qiugen(x)

输出结果

root=1.0000

应用实验

一、实验内容

炮弹发射角的问题

炮弹发射视为斜抛运动,已知初始速度为200m/s,问要击中水平距离360m、垂直距离160m的目标,当忽略空气阻力时,发射角应多大?

此时炮弹的运行轨迹如何?

进一步思考:

如果要考虑水平方向的阻力,且设阻力与(水平方向)速度成正比,系数为0.1(1/s),结果又如何?

此时炮弹的运行轨迹如何?

二、问题分析

 

总结与体会

通过该实验的学习,能灵活应用MATLAB软件解决一些简单问题,能借助MATLAB软件的绘图功能,对函数的特性进行探讨,联想,猜想,发现进而证实其中的规律。

教师签名

年月日

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

当前位置:首页 > 表格模板 > 合同协议

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

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