资源描述:
《打靶法(含matlab程序)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西京学数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题微分方程组边值问题数值算法(打靶法,有限差分法)实验目的熟悉微分方程组边值问题数值算法(打靶法,有限差分法)实验要求运用Mat1ab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容微分方程组边值问题数值算法(打靶法,有限差分法)成绩教师动方向控制减速的推力,主要的控制量只有一个减速推力,减速还会消耗燃料让登月器的质量减小。所以在极坐标下系统的状态就是X‘=[质量m,角度theta,高度n角速度omega,径速
2、度v]这五个量,输入就是减速力F。先列微分方程,dx/dt=f(x)+B*F,其中x是5*1的列向量,质量dm/dt=-F/2940,剩下几个翻下极坐标的手册。把这个动力学模型放到matlab里就能求解了,微分方程数值解用ode45。第一问F=0,让你求椭圆轨道非常容易。注意附件1里说15公里的吋候速度是1.7km/so算完以后验证一下对不对,对的话就是他了,不对的话说明这个椭岡轨道宥进动,到时再说。(2)算出轨道就能计算减速力了。这时候你随便给个常数减速力到方程里飞船八成都能降落,但不是最优解。想想整个过程,开始降落之前飞船总机械能就那么多
3、,你需要对飞船做负功让机械能减到0。题目里写发动机喷出翔的相对速度是一定的,直觉告诉我飞船速度快的时候多喷一些速度慢的时候少喷一些,可以提高做负功的效率。但是多喷也不能超过上限7500N,所以这就是一个带约朿优化问题,matlab里边有专用的优化函数,用fmincon就好。找出最优解以后把过程画出來,看看F可不可以是那5个状态量的线性组合,如果是的话就非常happy,不是的话再说。三四阶段你可以扯点阁像识别,什么二维复利叶分解找f•坦区域,怎么一边下降一边根据自身状态调整路径之类的。五六阶段还真不知道说什么。一二阶段肯定是重点啦(3)误差分析
4、其实还挺难的。可能的误差來源是地球的引力,只亮绕地球向心加速度,太阳的引力(可能会很小),对G身速度、角度的测量误差(比如你测出自身当前速度100m/s但实际上是105m/s),控制的时候F大小以及角度的误差(比如你想朝正前方向喷2000N但实际上偏了2度而且F=2010N之类)。上一问已经求出了最优控制策略和飞船路线,把这些扰动加进去以后算出新的路线减掉理想路线求偏差,然G随便用个卡尔曼滤波器把误差给校正AllforJoy2014/9/1311:14:38老师的思路,求大神解答给我一份呀实验二十七实验报告一、实验名称:微分方程组边值问题数值
5、算法(打靶法,有限差分法)。二、实验目的:进一步熟悉微分方程组边值问题数值算法(打靶法,有限差分法)6三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成程序设计。四、实验原理:1.打靶法:对于线性边值问题xea,b(1)/+p(x)y+q(x)y=,(x)y(a)=a,y(b)=(5假设Z,是一个微分算子使:Ly=y/r+p{x)y+q{x)y则可得到两个微分方程:AVi=/U),y,(a)=a,y[(a)=0«yf+p(x)y[+q(x)yx=f(x),yY(a)=a,⑻=0(2)
6、^2=0,y2(6z)—0,y2(^)='<=><+p(x)/2+g(x)y2=0,y2(a)=0,y2(a)=l方程(2),(3)是两个二阶初值问题.假设.V
7、是问题(2)的解,y2是问题(3)的解,且y20)*O,则线性边值问题(1)的解为:y(x)=y,(%)+冷-y'⑼)’2⑹1.有限差分法:基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代
8、之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。五、实验内容:%线性打靶法function[k,X,Y,wucha,P]=xxdb(dydxl,dydx2,a,b,alpha,beta,h)n=fix((b-a)/h);X=zeros(n+1,1);CT1=[alpha,0];Y=zeros(n+1,length(CT1));Yl=zeros(n+1,length(CT1));Y2=zeros(n+1,length(CT1));X=a:h:b;Y
9、l(l,:)=CT1;CT2=[0,1];Y2(1,:)=CT2;fork=l:nkl=feval(dydxl,X(k),Y1(k,:))x2=X(k)+h/2;y