方程模型及其求解算法 实验报告

  • 格式:doc
  • 大小:143.50 KB
  • 文档页数:8
>> double x1,double x2,double x3
ans =
120 49
ans =
120 50
ans =
分法求方程根的函数M文件。
求解方程
functionf=ex4_fun(x)
f=x-x^2+10;
M文件:
x1=0;x2=100;
fori=1:100
开课学院、实验室:数统学院实验时间:2011年04月07日
课程
名称
数学实验
实验项目
名称
实验项目类型
验证
演示
综合
设计
其他
指导
教师
李东
成绩
一、实验目的及意义
[1]复习求解方程及方程组的基本原理和方法;
[2]掌握迭代算法;
[3]熟悉MATLAB软件编程环境;掌握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');
x=(x1+x2)/2;
if(ex4_fun(x)==0)
break
elseif(ex4_fun(x1)*ex4_fun(x1)<0)
x1=x;
else
x2=x;
end
end
s=(x1+x2)/2
输出结果
s =
3.9443e-029
应用实验
2.炮弹发射角的问题
炮弹发射视为斜抛运动,已知初始速度为200 m/s,问要击中水平距离360m、垂直距离160m的目标,当忽略空气阻力时,发射角应多大?此时炮弹的运行轨迹如何?试进行动态模拟。
Columns 11 through 20
0.3959 + 0.2809i 0.3967 + 0.2879i 0.4010 + 0.2885i 0.4020 + 0.2861i 0.4007 + 0.2851i 0.3999 + 0.2857i 0.4002 + 0.2863i 0.4005 + 0.2862i 0.4005 + 0.2860i 0.4004 + 0.2859i
[4]通过范例展现求解实际问题的初步建模过程;
通过该实验的学习,复习和归纳方程求解或方程组求解的各种数值解法(简单迭代法、二分法、牛顿法、割线法等),初步了解数学建模过程。这对于学生深入理解数学概念,掌握数学的思维方法,熟悉处理大量的工程计算问题的方法具有十分重要的意义。
二、实验内容
1.方程求解和方程组的各种数值解法练习
Columns 21 through 22
2.0160 + 0.8224i 2.0162 - 0.8222i
迭代不收敛
3.求解下列方程组
直接使用MATLAB命令:solve()和fsolve()对方程组求解。
(1)
[x1,x2]=solve('2*x1-x2-exp(-x1)','2*x2-x1-exp(-x2)')
Columns 19 through 22
Inf Inf Inf Inf
迭代不收敛
M文件二:
x=-1;
fork=1:20
x=(1/5*(2*x-x^5-1))^(1/3);
end
X =
Columns 1 through 10
-1.0000 -1.0000 0.3684 + 0.6381i 0.5514 + 0.3825i 0.4927 + 0.2208i 0.3754 + 0.2131i 0.3517 + 0.2934i 0.3983 + 0.3152i 0.4170 + 0.2919i 0.4066 + 0.2770i
t=linspace(0,10,100);
x=200*cos(0.4642 ).*t;
y=200*sin(0.4642).*t-1/2*10.*t.^2;
plot(x,y,'b');
进一步思考:如果要考虑水平方向的阻力,且设阻力与(水平方向)速度成正比,系数为0.1(1/s),结果又如何?此时炮弹的运行轨迹如何?试进行动态模拟。
>> double(A.a)
ans =
-219.4807
>> double(A.t)
ans =
2.2077
(a =0.4218)
t=linspace(0,10,100);
x=-2000*cos(0.4218)*exp(-0.1.*t)+2000*cos(0.4218);
y=200*sin(0.4218).*t-1/2*10.*t.^2;
1.202
1.823
2.526
3.360
请确定该小行星绕太阳运行的轨道,并且画出小行星的运动轨迹。
椭圆曲线方程:
a1*x^2+2*a2*x*y+a3*y^2+2*a4*x+2*a5*y+1=0
M文件:
X=[5.764; 6.286; 6.759; 7.168; 7.408];
Y=[0.648; 1.202; 1.823; 2.526; 3.360];
ezplot('0.0508*x^2+2*(-0.0351)*x*y+0.0381*y^2+2*(-0.2265)*x+2*0.1321*y+1=0',[3,8,-2,4]),grid
画出图像:
如果x的取值在-∞到+∞之间时,有无穷个根
2.将方程x5+5x3- 2x+ 1 = 0改写成各种等价的形式进行迭代,观察迭代是否收敛,并给出解释。
M文件一:
x=1;
fork=1:20
x=1/2*(x^5+5*x^3+1)
end
X =
1.0e+062 *
Columns 1 through 18
0.0000 0.0000 0.0000 0.0000 0.0000 2.5565 Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf
Columns 11 through 20
1.9889 + 0.8249i 2.0055 - 0.8091i 2.0057 + 0.8233i 2.0121 - 0.8172i 2.0122 + 0.8227i 2.0147 - 0.8204i 2.0147 + 0.8225i 2.0156 - 0.8216i 2.0156 + 0.8224i 2.0160 - 0.8221i
2.直接使用MATLAB命令对方程和方程组进行求解练习
3.针对实际问题,试建立数学模型,并求解。
三、实验步骤
1.开启软件平台——MATLAB,开启MATLAB编辑窗口;
2.根据各种数值解法步骤编写M文件
3.保存文件并运行;
4.观察运行结果(数值或图形);
5.根据观察到的结果写出实验报告,并浅谈学习心得体会。
B=[-1; -1 ;-1 ;-1 ;-1];
A=[X.*X 2*X.*Y Y.*Y 2.*X 2.*Y ]
a=A\B
运行结果
a =
0.0508
-0.0351
0.0381
-0.2265
0.1321
求得轨道方程为:
0.0508*x^2+2*(-0.0351)*x*y+ 0.0381*y^2+2*( -0.2265)*x+2*0.1321*y+1=0
Columns 21 through 22
0.4004 + 0.2860i 0.4004 + 0.2860i
迭代收敛
M文件三:
x=-1;
fork=1:20
x=(2*x-5*x^3-1)^(1/5);
end
X =
Columns 1 through 10
1.0000 1.0000 1.0675 + 0.7756i 1.5607 - 0.3514i 1.5818 + 0.8381i 1.8323 - 0.6099i 1.8377 + 0.8353i 1.9443 - 0.7354i 1.9458 + 0.8285i 1.9884 - 0.7881i
四、实验要求与任务
基础实验
1.用图形放大法求解方程xsin(x) = 1.并观察该方程有多少个根。
从图中可以看出,在区间[-20,20]内曲线f(x)=xsin(x)-1和X轴有14个交点,即方程有14个根
M文件:
x=-20:0.1:20;
y=x.*sin(x)-1;
plot(x,y,'r','linewidth',2),grid;
x=200*cos(x)*t=360
y=200*sin(x)*t-1/2*10*t^2=160
A=solve('t*200*cos(x)=360','200*sin(x)*t-1/2*10*t^2=160');
double(A.x)ans = 1.5248 -1.6168 0.4642 -2.6774