ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:38.30KB ,
资源ID:989877      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/989877.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(打靶法含Matlab程序.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

打靶法含Matlab程序.docx

1、打靶法含Matlab程序西京学数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题微分方程组边值问题数值算法(打靶法,有限差分法)实验目的熟悉微分方程组边值问题数值算法(打靶法,有限差分法)实验要求运用Matlab/C/C+/Java/Maple/Mathematica等其中一种语言完成实验内容微分方程组边值问题数值算法(打靶法,有限差分法)成绩教师动方向控制减速的推力,主要的控制量只有一个减速推力,减速还会消耗燃料让登月器的质量减小。所以在极坐标下系统的状态就就是x=质量m,角度theta,高度r,角速度omega,径速度v这五个量,输入就就是减速力

2、F。先列微分方程,dx/dt=f(x)+B*F,其中x就是5*1的列向量,质量dm/dt=-F/2940,剩下几个翻下极坐标的手册。把这个动力学模型放到matlab里就能求解了,微分方程数值解用ode45。第一问F=0,让您求椭圆轨道非常容易。注意附件1里说15公里的时候速度就是1、7km/s。算完以后验证一下对不对,对的话就就是她了,不对的话说明这个椭圆轨道有进动,到时再说。(2)算出轨道就能计算减速力了。这时候您随便给个常数减速力到方程里飞船八成都能降落,但不就是最优解。想想整个过程,开始降落之前飞船总机械能就那么多,您需要对飞船做负功让机械能减到0。题目里写发动机喷出翔的相对速度就是一定

3、的,直觉告诉我飞船速度快的时候多喷一些速度慢的时候少喷一些,可以提高做负功的效率。但就是多喷也不能超过上限7500N,所以这就就是一个带约束优化问题,matlab里边有专用的优化函数,用fmincon就好。找出最优解以后把过程画出来,瞧瞧F可不可以就是那5个状态量的线性组合,如果就是的话就非常happy,不就是的话再说。三四阶段您可以扯点图像识别,什么二维复利叶分解找平坦区域,怎么一边下降一边根据自身状态调整路径之类的。五六阶段还真不知道说什么。一二阶段肯定就是重点啦(3)误差分析其实还挺难的。可能的误差来源就是地球的引力,月亮绕地球向心加速度,太阳的引力(可能会很小),对自身速度、角度的测量

4、误差(比如您测出自身当前速度100m/s但实际上就是105m/s),控制的时候F大小以及角度的误差(比如您想朝正前方向喷2000N但实际上偏了2度而且F=2010N之类)。上一问已经求出了最优控制策略与飞船路线,把这些扰动加进去以后算出新的路线减掉理想路线求偏差,然后随便用个卡尔曼滤波器把误差给校正AllforJoy2014/9/1311:14:38老师的思路,求大神解答给我一份呀 实验二十七实验报告 1、实验名称:微分方程组边值问题数值算法(打靶法,有限差分法)。2、实验目的:进一步熟悉微分方程组边值问题数值算法(打靶法,有限差分法)。3、实验要求:运用Matlab/C/C+/Java/Ma

5、ple/Mathematica等其中一种语言完成程序设计。4、实验原理:1打靶法:对于线性边值问题 (1)假设就是一个微分算子使:则可得到两个微分方程: , (2) , (3)方程(2),(3)就是两个二阶初值问题、假设就是问题(2)的解,就是问题(3)的解,且,则线性边值问题(1)的解为: 。2有限差分法:基本思想就是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程与定解条件中的微商用差商来近似, 积分用积分与来近似,于就是原微分方程与定解条件就近似地代之以代数方程组,即有限差分方程组 ,

6、解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。5、实验内容:%线性打靶法function k,X,Y,wucha,P=xxdb(dydx1,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); Y1=zeros(n+1,length(CT1); Y2=zeros(n+1,length(CT1); X=a:h:b;Y1(1,:)= CT1; CT2=0,1;Y2(1,:)= CT2;for k=1:nk1

7、=feval(dydx1,X(k),Y1(k,:) x2=X(k)+h/2;y2=Y1(k,:)+k1*h/2;k2=feval(dydx1,x2,y2); k3=feval(dydx1,x2,Y1(k,:)+k2*h/2); k4=feval(dydx1, X(k)+h,Y1(k,:)+k3*h); Y1(k+1,:)=Y1(k,:)+h*(k1+2*k2+2*k3+k4)/6,k=k+1;endu=Y1(:,1)for k=1:nk1=feval(dydx2,X(k),Y2(k,:) x2=X(k)+h/2;y2=Y2(k,:)+k1*h/2;k2=feval(dydx2,x2,y2);

8、k3=feval(dydx2,x2,Y2(k,:)+k2*h/2); k4=feval(dydx2, X(k)+h,Y2(k,:)+k3*h); Y2(k+1,:)=Y2(k,:)+h*(k1+2*k2+2*k3+k4)/6,k=k+1;endv=Y2(:,1)Y=u+(beta-u(n+1)*v/v(n+1)for k=2:n+1wucha(k)=norm(Y(k)-Y(k-1); k=k+1;endX=X(1:n+1);Y=Y(1:n+1,:);k=1:n+1;wucha=wucha(1:k,:);P=k,X,Y,wucha;plot(X,Y(:,1),ro,X,Y1(:,1),g*,X,

9、Y2(:,1),mp)xlabel(轴it x); ylabel(轴it y)legend(就是边值问题的数值解y(x)的曲线,就是初值问题1的数值解u(x)的曲线, 就是初值问题2的数值解v(x)的曲线)title(用线性打靶法求线性边值问题的数值解的图形)%有限差分法function k,A,B1,X,Y,y,wucha,p=yxcf(q1,q2,q3,a,b,alpha,beta,h)n=fix(b-a)/h); X=zeros(n+1,1); Y=zeros(n+1,1); A1=zeros(n,n);A2=zeros(n,n); A3=zeros(n,n); A=zeros(n,n)

10、;B= zeros(n,1);for k=1:n X=a:h:b;k1(k)=feval(q1,X(k); A1(k+1,k)=1+h*k1(k)/2;k2(k)=feval(q2,X(k);A2(k,k)=-2-(h、2)*k2(k); A3(k,k+1)= 1-h*k1(k)/2; k3(k)=feval(q3,X(k);endfor k=2:nB(k,1)=(h、2)*k3(k);endB(1,1)=(h、2)*k3(1)-(1+h*k1(1)/2)*alpha;B(n-1,1)=(h、2)*k3(n-1)-(1+h*k1(n-1)/2)*beta;A=A1(1:n-1,1:n-1)+A

11、2(1:n-1,1:n-1)+A3(1:n-1,1:n-1); B1=B(1:n-1,1);Y=AB1;Y1=Y; y=alpha;Y;beta;for k=2:n+1wucha(k)=norm(y(k)-y(k-1); k=k+1;endX=X(1:n+1); y=y(1:n+1,1); k=1:n+1; wucha=wucha(1:k,:); plot(X,y(:,1),mp)xlabel(轴it x); ylabel(轴it y),legend(就是边值问题的数值解y(x)的曲线)title(用有限差分法求线性边值问题的数值解的图形),p=k,X,y,wucha;打靶法3、Matlab

12、源代码:创建M 文件:function ys=dbf(f,a,b,alfa,beta,h,eps) ff=(x,y)y(2),f(y(1),y(2),x); xvalue=a:h:b;%x取值范围n=length(xvalue) s0=a-0、01;%选取适当的s的初值x0=alfa,s0;%迭代初值flag=0;%用于判断精度y0=rk4(ff,a,x0,h,a,b); if abs(y0(1,n)-beta)=eps flag=1; y1=y0; else s1=s0+1; x0=alfa,s1; y1=rk4(ff,a,x0,h,a,b); if abs(y1(1,n)-beta)eps

13、 s2=s1-(y1(1,n)-beta)*(s1-s0)/(y1(1,n)-y0(1,n); x0=alfa,s2; y2=rk4(ff,a,x0,h,a,b); s0=s1; s1=s2; y0=y1; y1=y2; end end xvalue=a:h:b; yvalue=y1(1,:); ys=xvalue,yvalue; function x=rk4(f,t0,x0,h,a,b)%rung-kuta法求每个点的近似值(参考大作业一)t=a:h:b;%迭代区间m=length(t);%区间长度t(1)=t0; x(:,1)=x0;%迭代初值for i=1:m-1 L1=f(t(i),x

14、(:,i); L2=f(t(i)+h/2,x(:,i)+(h/2)*L1); L3=f(t(i)+h/2,x(:,i)+(h/2)*L2); L4=f(t(i)+h,x(:,i)+h*L3); x(:,i+1)=x(:,i)+(h/6)*(L1+2*L2+2*L3+L4); end 4、举例求二阶非线性方程的边值问题:在matlab 控制台中输入:f=(x,y,z)(x2+z*x2); x0l=0; x0u=2*exp(-1); alfa=0; beta=2; h=0、01 dbf(f,x0l,x0u,y0l,y0u,h,1e-6); y=ans(:,2); x=ans(:,1); plot(x,y,-r) 结果:再输入: m=0:0、01:2; n=m、*exp(-1/2*m); plot(n,m) plot(x,y,-r,n,m,-b)

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

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