1、这时候你随便给个常数减速力到方程里飞船八成都能降落,但不是最优解。想想整个过程,开始降落之前飞船总机械能就那么多,你需要对飞船做负功让机械能减到0。题目里写发动机喷出翔的相对速度是一定的,直觉告诉我飞船速度快的时候多喷一些速度慢的时候少喷一些,可以提高做负功的效率。但是多喷也不能超过上限7500N,所以这就是一个带约束优化问题,matlab里边有专用的优化函数,用mincn就好。找出最优解以后把过程画出来,看看F可不可以是那5个状态量的线性组合,如果是的话就非常hap,不是的话再说。三四阶段你可以扯点图像识别,什么二维复利叶分解找平坦区域,怎么一边下降一边根据自身状态调整路径之类的。五六阶段还
2、真不知道说什么。一二阶段肯定是重点啦(3)误差分析其实还挺难的。可能的误差来源是地球的引力,月亮绕地球向心加速度,太阳的引力(可能会很小),对自身速度、角度的测量误差(比如你测出自身当前速度00m/但实际上是5/s),控制的时候F大小以及角度的误差(比如你想朝正前方向喷200但实际上偏了2度而且F=201N之类)。上一问已经求出了最优控制策略和飞船路线,把这些扰动加进去以后算出新的路线减掉理想路线求偏差,然后随便用个卡尔曼滤波器把误差给校正llforJoy2/9/131:14:8老师的思路,求大神解答给我一份呀 实验二十七实验报告 1、实验名称:微分方程组边值问题数值算法(打靶法,有限差分法)
3、。2、实验目的:进一步熟悉微分方程组边值问题数值算法(打靶法,有限差分法)。3、实验要求:运用Matla/+JavaMaplatematic等其中一种语言完成程序设计。4、实验原理:1打靶法:对于线性边值问题 ()假设是一个微分算子使:则可得到两个微分方程: ,,, () ,,, (3)方程(),(3)是两个二阶初值问题.假设是问题(2)的解,是问题(3)的解,且,则线性边值问题()的解为: 。2有限差分法:基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近
4、似, 积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组 , 解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。5、实验内容:%线性打靶法uncon k,X,Y,wucha,Pxdb(dydx1,x2,a,b,alha,beta,h)n=x(b-a); zeros(n+1,1);CT=alpa,0;Y=zros(n1,length(CT1); 1=zeros(n1,lent(C); Y2=zes(,lent(CT1);=a::b;Y1(,:) T1;CT2=0,1;Y2(,:)= T;fr k=:
5、nk1=fva(dydx1,(k),Y1(k,:) x2=X(k)+h/2;y2=Y1(k,:)+k1*h2;k2feval(ddx1,x2,y2);k3=fal(yd1,x2,1(,:)+k2*h/);4=fev(dydx, X(k)h,1(k,:+k3);Y1(+1,:)=1(k,:)+h*(k1+222*+k4)/6,=k+;end=Y1(:,1)or k=:k1=vl(yd2,X(k),2(k,:=X()+/2;y2=(,:+k/;k2=feal(dydx,x,y2);k3=feal(ddx,x2,Y(k,:+h/);k4eval(ydx2,X()+,Y2(k,:+3*);2(k+1,
6、:)=Y2(k,:)h(k*k+2*k+k)/,k=k+1;edv=Y(:Y=u+(beta-(n1)vv(n1)or k=2:n+wucha(k)norm(k)-(k-1);=k+;enX=X(1:n+);Y=Y(1:n1,:);=1:+1;ucha=wucha(:k,:);P=k,X,,uc;plo(,Y(:,1),ro,X,Y(:,1),g*,,Y2(:m)xlb(轴t ylabel(轴it ylegend(是边值问题的数值解y(x)的曲线,是初值问题1的数值解u(x)的曲线, 是初值问题2的数值解v(x)的曲线itle(用线性打靶法求线性边值问题的数值解的图形%有限差分法unction
7、 ,B,X,Y,y,uca,p=yxcf(q1,2,3,a,b,lha,beta,h)nfx(ba)/h); Xes(n+1,1);Y=zer(n+1,); A1=eos(,n);A2=eo(n,n); A3eros(n,n); =zros(n,n);Bes(n,1);for k=: :b;k()=fval(q1,X(k); A(k+1,k)1+*1()/;k2(k)=fv(q2,X(k);A(k,k)=2-(h.2)*k2();A(k,k+1)= -k1(k)/2;3(k)=feva(,(k);for:(k,1)=(.)*k3(k);B(,1)(.)k3(1)(k(1)/2)*apha;B(
8、n-1,1)=(.2)*k3(n-1)-(1+hk1(-1)/2)*bta;A=1(:n1,:-1)+A(1:n-,:n-1)+A3(:n-1,:n-1);B1B(1:1,);Y=AB1;Y1=Y; y=apha;Y;bta;n1wcha(k)=nr(k)-(k-1);k=k1;=X(1:+); =y(1:n1,1); k=:+1;wuchaucha(1: plot(X,y(:,1),mxlael(轴it x label(轴ty),lgend(是边值问题的数值解(x)的曲线用有限差分法求线性边值问题的数值解的图形),p=k,,y,cha;打靶法.atlb 源代码:创建M 文件:ction ys
9、=dbf(f,b,alfa,eta,h,e) f=(x,y)y(),f(y(1),y(2),x);xvalue=:h:%取值范围n=lngth(xale)s0=a-0.01;选取适当的的初值x0=fa,s;%迭代初值flg=0;%用于判断精度y0rk4(f,a,h,a,b);if abs(y(1,n)-eta)eps flg=1;y1=y0;else s1=s0+;0=lfa,;y1=rk4(ff,,x,h,a,b);if s(1(1,)-beta)ps s2=s1-(1(1,n)beta)*(1s0)/(y1(1,n)y0(1,n);x0=afa,2;y2=rk4(f,x,a,);s0=s1
10、;s;yy;y1=y2;xvale=a:h:vlue=y(,:ys=xvue,yvalu;fcionx=rk4(f,t,0,h,a,b)%rngut法求每个点的近似值(参考大作业一)ta:%迭代区间=en(t);%区间长度t()=t0;x(:,)=0;%迭代初值o i=1:-1 L1f(),x(:,);L2=(t()+/2,(:,)(h/)L1);Lf()h2,x(:,)+(h)L2);L4f(t(i)+h,x(:,i)h*L);x(:,i)=(:+(h/6)*(L+L22*L3+L4);4.举例求二阶非线性方程的边值问题:在atlab 控制台中输入:f=(x,z)(+*x);x0l0;xu=2exp(-);alfa=0;bea=2;h=0.0 b(f,0l,x0,0,0,1e-6); y=an(:,2);x=ans(:,1); plot(x,-r) 结果:再输入: m=0:.1:2; nm.*ep(1/2*m);pot(n,m) pl(,-,n,b
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1