实验2 方程模型及其求解算法
一、实验目的及意义
[1] 复习求解方程及方程组的基本原理和方法;
[2] 掌握迭代算法;
[3] 熟悉MATLAB软件编程环境;掌握MATLAB编程语句(特别是循环、条件、控制等语句);
[4] 通过范例展现求解实际问题的初步建模过程;
通过该实验的学习,复习和归纳方程求解或方程组求解的各种数值解法(简单迭代法、二分法、牛顿法、割线法等),初步了解数学建模过程。这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。
二、实验内容
1.方程求解和方程组的各种数值解法练习
2.直接使用MATLAB命令对方程和方程组进行求解练习
3.针对实际问题,试建立数学模型,并求解。
三、实验步骤
1.开启软件平台——MATLAB,开启MATLAB编辑窗口;
2.根据各种数值解法步骤编写M文件
3.保存文件并运行;
4.观察运行结果(数值或图形);
5.根据观察到的结果写出实验报告,并浅谈学习心得体会。
四、实验要求与任务
基础实验
1.用图形放大法求解方程 x sin(x) = 1. 并观察该方程有多少个根。
画出图形程序:
x=-10:0.01:10;
y=x.*sin(x)-1;
y1=zeros(size(x));
plot(x,y,x,y1)
MATLAB运行结果:
扩大区间画图程序:
x=-50:0.01:50;
y=x.*sin(x)-1;
y1=zeros(size(x));
plot(x,y,x,y1)
MATLAB运行结果:
由上图可知,该方程有偶数个无数的根。
2.将方程x5 +5x3- 2x + 1 = 0 改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。
(1) 画图:
x1=-6:0.01:6;
x2=-3:0.01:3;
x3=-1:0.01:1;
x4=-0.8:0.01:-0.75;
y1=x1.^5 +5*x1.^3-2*x1+1;
y2=x2.^5 +5*x2.^3-2*x2+1;
y3=x3.^5 +5*x3.^3-2*x3+1;
y4=x4.^5 +5*x4.^3-2*x4+1;
subplot(2,2,1),plot(x1,y1)
,title('子图 (1)') ,grid on,
subplot(2,2,2),plot(x2,y2)
,title('子图 (2)'),grid on,
subplot(2,2,3),plot(x3,y3)
,title('子图 (3)'),grid on,
subplot(2,2,4),plot(x4,y4)
,title('子图 (4)') ,grid on,
由图可知 x 的初值应在(-0.78,0.76)之间。
(2)解:第一步 构造迭代函数
第二步
利用加速迭代收敛法变形后:
第三步
迭代
设定初值
n=0,1,2,3………
用 MATLAB 编程
x=-077;y=-0.77;z=-0.77;
for k=1:30
x=(-4*x^5-10*x^3+1)/(2-5*x^4-15*x^2);
y=(2*y^6+4*y^2-3*y)/(5*y^3+3*y^5+2*y-2);
z=(8*z^2-2*z)/(z^5+5*z^3+6*z-1);
x,y,z;
end
迭代结果为:
x =
-61.5948
y =
-0.7685
z =
-0.7687
x =
-49.2694
y =
-0.7685
z =
-0.7685
x =
-39.4074
y =
-0.7685
z =
-0.7685
x =
-31.5158
y =
-0.7685
z =
-0.7685
x =
-25.2000
y =
-0.7685
z =
-0.7685
x =
-20.1442
y =
-0.7685
z =
-0.7685
x =
-16.0957
y =
-0.7685
z =
-0.7685
x =
-12.8521
y =
-0.7685
z =
-0.7685
x =
-10.2512
y =
-0.7685
z =
-0.7685
x =
-8.1634
y =
-0.7685
z =
-0.7685
x =
-6.4844
y =
-0.7685
z =
-0.7685
x =
-5.1311
y =
-0.7685
z =
-0.7685
x =
-4.0373
y =
-0.7685
z =
-0.7685
x =
-3.1508
y =
-0.7685
z =
-0.7685
x =
-2.4323
y =
-0.7685
z =
-0.7685
x =
-1.8546
y =
-0.7685
z =
-0.7685
x =
-1.4028
y =
-0.7685
z =
-0.7685
x =
-1.0737
y =
-0.7685
z =
-0.7685
x =
-0.8700
y =
-0.7685
z =
-0.7685
x =
-0.7840
y =
-0.7685
z =
-0.7685
x =
-0.7689
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685
x =
-0.7685
y =
-0.7685
z =
-0.7685因此方程的解为 -0.7685.
3.求解下列方程组
(1) 程序:
[x1,x2]=solve('2.*x1-x2=exp(-x1),-x1+2.*x2=exp(-x2)')
MATLAB运行结果:
x1 =
.56714329040978387299996866221036
x2 =
.56714329040978387299996866221036
(2)程序
[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')
MATLAB运行结果:
x1 =
0.
0.
0.
0.
1.
-387.00943364216191174841684720677+32.703483593366328482166316712807*i
-387.00943364216191174841684720677-32.703483593366328482166316712807*i
-.31446604900950983649963891979635
x2 =
-1.5491933384829667540717061599130
1.5491933384829667540717061599130
0.
0.
5.
-.31228791210131965952830872704551-50.806549482970160848437610559089*i
-.31228791210131965952830872704551+50.806549482970160848437610559089*i
2.9579091575359726523899507874243
x3 =
0.
0.
1.3093073414159542875965849124937*i
-1.3093073414159542875965849124937*i
-4.
11.936863736303958978584926181137+152.41964844891048254531283167727*i
11.936863736303958978584926181137-152.41964844891048254531283167727*i
2.1262725273920820428301476377270
直接使用MATLAB命令:solve()和fsolve()对方程组求解。
4.迭代以下函数,分析其收敛性。任选一个完成。
使用线性连接图、蛛网图或分枝与混沌图对参数a 进行讨论与观察,会得到什么结论?
选择2)
线性连接图:
源代码:
>> a=0.5;x=[];
x(1)=0.5;
for i=2:20
x(i)=a*sin(x(i-1));
end
n=1:20;
subplot(2,2,1),plot(n,x),title('a=0.5,x0=0.5')
图:
应用实验(以下四个问题,至少完成一个)
1.油价与船速的优化问题
油价的上涨,将影响大型海船确定合理的航行速度,以优化航行收入。直观地,油耗的多少直接影响船速的快慢,因而直接影响航行时间的长短,进而影响支付船员人工费用数量。过去有一些经验表明:(1) 油耗正比于船速的立方;(2) 最省油航速的基础上改变20%的速度;则引起50%的油耗的变化。作为一个例子:某中型海船,每天油耗40吨,减少20%的航速,省油50%、即20吨。每吨油价250美元,由此每天减少耗油费用5000美元,而航行时间的增加将增加对船员支付的费用的增加,如何最优化?
算例:航程L=1536海里,标准最省油航速20节,油耗每天50吨,航行时间8天。最低航速10节,本次航行总收入为84600美元。油价250美元/吨,日固定开支1000美元。试确定最佳航速。
2. 炮弹发射角的问题
炮弹发射视为斜抛运动,已知初始速度为200 m/s,问要击中水平距离360m、垂直距离160m 的目标,当忽略空气阻力时,发射角应多大?此时炮弹的运行轨迹如何?试进行动态模拟。
进一步思考:如果要考虑水平方向的阻力,且设阻力与(水平方向)速度成正比,系数为 0.1(1/s),结果又如何?此时炮弹的运行轨迹如何?试进行动态模拟。
3. 小行星的运动轨道问题
一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,其单位为天文测量单位。在5个不同的时间对小行星作了5次观察,测得轨道上5个点的坐标数据如下表:
请确定该小行星绕太阳运行的轨道,并且画出小行星的运动轨迹。
4.GPS全球定位系统是一个基于卫星的导航系统。其原理如下:有30个卫星绕地球运行。任何时刻他们都知道自己的准确位置,每隔几秒种,所有卫星都同步地发出表明自己准确位置的信号
第二篇:重庆大学数学实验实验六
重庆大学
学生实验报告
实验课程名称 数学实验
开课实验室 DS1421
数理学院制
开课学院、实验室: 实验时间: 年 月 日