解解一阶微分方程的方法程

文档分类:
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表Matlab解微分方程(ODE+PDE).pdf
文档介绍:
常微分方程:1 ODE解算器简介(ode**)2 微分方程转换3 刚性/非刚性问题(Stiff/Nonstiff)4 隐式微分方程(IDE) 5 微分代数方程(DAE)6 延迟微分方程(DDE)7 边值问题(BVP)偏微分方程(PDEs)Matlab解法偏微分方程:1 一般偏微分方程组(PDEs)的命令行求解2特殊偏微分方程(PDEs)的PDEtool求解3陆君安《偏微分方程的MATLAB解法先来认识下常微分方程(ODE)初值问题解算器(solver)[T,Y,TE,YE,IE] = odesolver(odefun,tspan,y0,options)sxint = deval(sol,xint)Matlab中提供了以下解算器:输入参数:odefun:微分方程的Matlab语言描述函数,必须是函数句柄或者字符串,必须写成Matlab规范格式(也就是一阶显示微分方程组),这个具体在后面讲解tspan=[t0 tf]或者[t0,t1,…tf]:微分变量的范围,两者都是根据t0和tf的值自动选择步长,只是前者返回所有计算点的微分值,而后者只返回指定的点的微分值,一定要注意对于后者tspan必须严格单调,还有就是两者数据存储时使用的内存不同(明显前者多),其它没有任何本质的区别y0=[y(0),y’(0),y’’(0)…]:微分方程初值,依次输入所有状态变量的初值,什么是状态变量在后面有介绍options:微分优化参数,是一个结构体,使用odeset可以设置具体参数,详细内容查看帮助输出参数:T:时间列向量,也就是ode**计算微分方程的值的点Y:二维数组,第i列表示第i个状态变量的值,行数与T一致在求解ODE时,我们还会用到deval()函数,deval的作用就是通过结构体solution计算t对应x值,和polyval之类的很相似!参数格式如下:sol:就是上次调用ode**函数得道的结构体解xint:需要计算的点,可以是标量或者向量,但是必须在tspan范围内该函数的好处就是如果我想知道t=t0时的y值,不需要重新使用ode计算,而直接使用上次计算的得道solution就可以[教程]微分方程转换为一阶显示微分方程组方法好,上面我们把Matlab中的常微分方程(ODE)的解算器讲解的差不多了,下面我们就具体开始介绍如何使用上面的知识吧!现实总是残酷的,要得到就必须先付出,不可能所有的ODE一拿来就可以直接使用,因此,在使用ODE解算器之前,我们需要做的第一步,也是最重要的一步,借助状态变量将微分方程组化成Matlab可接受的标准形式(一阶显示常微分方程)!如果ODEs由一个或多个高阶微分方程给出,则我们应先将其变换成一阶显式常微分方程组!下面我们以两个高阶微分方程构成的ODEs为例介绍如何将之变换成一个一阶显式常微分方程组。step1.将微分方程的最高阶变量移到等式的左边,其他移到右边,并按阶次从低到高排列,假如说两个高阶微分方程最后能够显式的表达成如下所示:我们说过现实总是残酷的,有时方程偏偏是隐式的,没法写成上面的样子,不用担心Matlab早就为我们想到了,这个留在后面的隐式微分方程数值求解中再详细讲解!step2.为每一阶微分式选择状态变量,最高阶除外从上面的变换,我们注意到,ODEs中所有因变量的最高阶次之和就是需要的状态变量的个数,最高阶的微分式(比如上面的x(m)和y(n))不需要给它一个状态变量step3.根据上面选用的状态变量,写出所有状态变量的一阶微分的表达式注意到,最高阶次的微分式的表达式直接就是step1中的微分方程好,到此为止,一阶显式常微分方程组,变化顺利结束,接下来就是Matlab编程了。请记住上面的变化很重要,Matla中所有微分方程的求解都需要上面的变换。下面通过一个实例演示ODEs的转换和求解【解】真是万幸,该ODEs已经帮我们完成了step1,我们只需要完成step2和step3了(1)选择一组状态变量(2)写出所有状态变量的一阶微分表达式(4)有了数学模型描述,则可以立即写出相应的Matlab代码了(这里我们优先选择ode45) 1.x0=[1.2;0;0;-1.];%x0(i)对应与xi的初值2.options=odeset('reltol',1e-8);%该命令的另一种写法是options=options.reltol=1e-8;3.tic4.[t,y]=ode45(@appollo,[0,20],x0,options);%t是时间点,y的第i列对应xi的值,t和y的行数相同5.toc6.plot(y(:,1),y(:,3))%绘制x1和x3,也就是x和y的图形7.title('Appollo卫星运动轨迹')8.xlabel('X')9.ylabel('Y')10.11.function dx=appollo(t,x)12.mu=1/82.45;13.mustar=1-14.r1=sqrt((x(1)+mu)^2+x(3)^2);15.r2=sqrt((x(1)-mustar)^2+x(3)^2);16.dx=[x(2)17.2*x(4)+x(1)-mustar*(x(1)+mu)/r1^3-mu*(x(1)-mustar)/r2^318.x(4)19.-2*x(2)+x(3)-mustar*x(3)/r1^3-mu*x(3)/r2^3];[教程]刚性/非刚性问题(Stiff/Nonstiff)的Matlab解法在工程实践中,我们经常遇到一些ODEs,其中某些解变换缓慢,另一些变化很快,且相差悬殊的微分方程,这就是所谓的刚性问题(Stiff),对于所有解的变化相当我们则称为非刚性问题(Nonstiff)。对于刚性问题一般不适合使用ode45这类函数求解。由于非刚性问题我们使用的多比较多,我们就不多说,下面主要讲解下Stiff看一个例子,考虑下面的微分方程【解】题目中已经帮我们完成了方程组转换,下面我们就直接编程了(1)编写微分方程函数1.odefun=@(t,x)[0.04*(1-x(1))-(1-x(2))*x(1)+0.0001*(1-x(2))^22.-1e4*x(1)+3000*(1-x(2))^2];3.x0=[0 1];4.tspan=[0 100];5.options=odeset('reltol',1e-6,'abstol',1e-8);(2)对于这个刚性问题,我们先使用ode45函数试试(反正我们是没有信心等待它,太慢了) 1.[t,y]=ode45(odefun,tspan,x0,options);toc2.disp(['ode45计算的点数' num2str(length(t))])(3)换用ode15s函数试试看看1.[t2,y2]=ode15s(odefun,tspan,x0,options);toc2.disp(['ode15s计算的点数' num2str(length(t2))])(4)绘图看看结果1.figure('numbertitl1
内容来自淘豆网转载请标明出处.
浏览:56次(1)一阶微分方程的通解里含有一个任意常数,这个“任意常数”是指他的范围在(-∞,+∞)还是指他仅仅表示一部分或某个未确定的数呢?
(2)上一道题是这样的:(题目不写了)他解到了这一步:lny=(+/-)C1x=cx 然后得出了y=e^cx 而没有写成y=cx,c&0 这样是不是表示c的范围在(-∞,+∞),如果加上了c&0的范围就不表示任意常数从而不满足通解的定义了?
(3)图中的题:答案中貌似C&0?是否满足任意常数呢?
(1)微分方程通解中的“任意常数”并不是一定可以取遍实数的,也不要求它一定要取遍实数。例如通解是:y=√(Cx),当x≥0时,C只能取非负实数,当x≤0时,C只能取非正实数,这个C仍然是我们所谓的“任意常数”。需要注意的是,当C取遍它可以取的数,一定是得到了微分方程的全部解,不可以少掉一个或几个解的!
(2)问题你没有描述清楚,我只讲后半段,通解:y=(e^C)x是不可以写成y=Cx(C为任意正数)的,没有这种写法的!你写通解y=Cx,人家当然认为C&0时,y=Cx也是方程的解。
(3)图片中方程的通解10^x+10^(-y)=C是正确的,不必去注明C&0的,因为当C≤0时,方程10^x+10^(-y)=C没有解,不确定任何函数,只要C的取值使10^x+10^(-y)=C确定函数,这个函数一定是原来微分方程的解就可以了。
其他答案(共1个回答)
辅导书上更多);
(3)C的确是正数,如前所述只要任意就行。
常数的微分=0,对dC=C′*dx=0*dx=0
这个题目和根的性质有关,请看附件
A:(x^2)*y`+x*y^2=0 —— 一阶线性非齐次微分方程;
B:y`+(tany)/(x-siny)=0 ==& dx/dy+x*coty=cosy...
解:方程两边同除以X,得到一个齐次方程
y'+y/x=2√y/x
dy/dx=u+xdu/则可以...
解脲支原体是性病,支原体是性病的一种,支原体是最小的能独立生活的原核生物。能引起人类疾病的支原体称为人类支原体。生殖器支原体感染是近年新明确的一种性接触传播...
答: 第一个华罗庚
第二个陈景润
答: 关于应用概率统计在重庆大学继续教育学院脱产本科2006级的期末考试中所涉及的考试内容!
1、参数估计2、假设检验等复习内容
答: 珠海同济数学培训班好还是创思教育的数学班好?
南京MBA培训 衍坤教育数学课是谁教的?教的怎么样呀?本人数学不好,希望找个好点...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
求助这个微分方程怎么解?
A*du/dt = B*du/dx+f(u,t)
没有微分方程的基础,本来想用matlab的pdepe
但是,发现求解有问题,看到help上说pdepe只能解抛物型或者椭圆型的一维偏微分方程
不懂啥叫抛物型或者椭圆型,好像我这个方程不属于。
现在需要求解这个方程,数值解、解析解都可以指点一下怎么做或者用什么软件的什么函数
多谢多谢!
很漂亮的formulation。在这基础上再做数值处理可以很容易形成实用的解决方案。楼主只要给出f(u,t)的具体形式,A和B的数值,x=0 初值等其他条件就可以具体定解了。x=0 的初值条件 可以确定 psi函数。
感谢您这么详细的回答,
f(u,t) = k1*exp(-k2*t)*u
因为没有PDE的基础,还是看不太懂。
这里特征线是什么含义?
c1,c2,psi函数都是什么,要是说起来太复杂,有没有推荐的资料了解一下求解这类偏微分方程的基本思想。
偏微分方程完全没接触过,微分方程包括laplace变换的基础有一点儿
楼主无妨看看下面的PDE的书,它的第二章就提及一阶PDE的求解理论跟过程了。(不过理论性比较强)
看了一下您推荐的书,感觉比较吃力
用mathematica试着解了一下,结果感觉不对。
还想请教一下:
上面说的这个方程
du/dt = -B*du/dx-f(u,t);
f(u,t) = k1*exp(-k2*t)*u;
k1,k2也是常数
初值条件为:u(0,x)=0;
边界条件是这个系统在x=0处的输入,例如设为:u(t,0)=Step(t);
这个方程和条件本身合理么?
解出来的解的大概形式是什么样
我用mathematica解出来的阶跃响应是这个式子:
Exp^(-((Exp^(k2 x) k1)/k2)) UnitStep
感觉不对劲,所以怀疑是不是我微分方程列错了
请问楼主,是询问你开始提到的方程么?
这次楼主看看这个链接:/view/fa0d0c63af1ffc4ffe47ac38.html
我得承认那本书理论性过强,毕竟是数学系学习的偏微分方程用书。
好的,谢谢!
基本概念能理解了,不好意思,再请教一点
du/dt = -B*du/dx-f(u,t);
特征线我用想x(t,C)=Bt+C
代换得到u(t)的方程
方程求得的通解有两个系数,
对应我两个边界条件,
一个是u(0,x)=0
一个是u(t,0)=1(t&0)
这里面u(t,0)=1(t&0)这个边界条件在求解u(t)这个方程的时候应该怎么给呢?
可否把通解写出来看看?
可以的话,楼主无妨把你求得的通解跟定解条件给我看看?
我们在二楼formulation的基础上,进一步给出显示的解析解
对不起,k2应改为k2^(-1)
不好意思,有点儿事儿,一直没上网,感谢您的耐心回复
我用mathematica求解的结果如下:
这个通解看起来非常诡异,
确实有可能我原来的方程有问题
但是用mathematica数值解的结果是下图:
其中,好像用阶跃函数不连续,mathematica出错
所以我用了一个时间常数很小的指数函数g(x)代替
这个波形看起来比较合理,但响应时间也和原来文献中不太一样……
非常感谢您这么详细的回复,
但是我对您的推导有一点疑问
从(520)积分到(521),积分内部的u是t的函数,
为什么可以直接当成常数处理,提到积分号的外面?
的确如楼主所言,这是不能提出来的。在通解表达式中,未知函数出现在积分项里面,是个第二类Fredholm积分方程。一般情形下没法求显式解的。
正如19和20楼所指出,原解有点问题。所以从新做。2楼的特征线还是对的,但第二个首次积分好像有点问题。所幸在4楼给出的f(u,t)可以解析做出。请二位从新审阅
我个人认为第二个首次积分没问题,就是刚好f(u,t)的表达式是G(u)H(t)的形式,所以才能找到显式解,否则只能是一个积分方程了。
非常感谢!
看这个推导太有帮助了
我把结果和之前我用mathmatica数值求解的结果页是完全吻合的。
还行再给看看
还有我不知道怎么给您金币,在回帖里没有找到给金币的选项。
这里少说一句话
就是原始方程是一个二元的,
因为其中u2只有对t的导数,所以我想直接代换,
现在看应该是我代换里有错误
非常抱歉,开始问题描述的有问题
我没意识到!
楼主悬赏的30金币已在5#全部支出,当然就没有给金币的选项了。希望給几楼,给多少;我可以代劳。
显然还没有完全解决,现在问题变了 :)。
给21楼,30金币,谢谢!
抱歉,是我对微分方程理解有问题造成的,但是您给出的求解过程确实对我帮助很大,谢谢!
现在这个方程我解出数值解了
比我搞错那个方程响应要慢大概一倍……
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-
浏览器进程
打开微信扫一扫
随时随地聊科研登录后才能写笔记
登录后才能写评论
登录后才能提问
教学录像主讲人
本节其他资源
本章知识点
本节主讲教师
主办单位:高等教育出版社有限公司&&&&&&&&京ICP备号-2&&&&&&京公网安备-2
中国大学精品开放课程适用于《中华人民共和国著作权法》
高等教育出版社享有中国大学精品开放课程信息网络传播的专有使用权 未经书面允许,请勿转播播放列表加载中...
正在载入...
分享视频:
嵌入代码:
拍下二维码,随时随地看视频
微分方程求通解
上 传 者:
内容介绍:
微分方程求通解
我来说点啥
版权所有 CopyRight
| 京网文[0号 |
| 京公网安备:
互联网药品信息服务资格证:(京)-非经营性- | 广播电视节目制作经营许可证:(京)字第403号
<img src="" width="34" height="34"/>
<img src=""/>
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img width="132" height="99" src=""/>
在线人数:
<li data-vid="">
<img src=""/><i data-vid="" class="ckl_plays">
<img src="///img/blank.png" data-src=""/>
<img src="///img/blank.png" data-src="http://"/>
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/>
<i data-vid="" class="ckl_plays">
<li data-vid="" class="cfix">
src="///img/blank.png" data-src=""/><i data-vid="" class="ckl_plays">
没有数据!
{upload_level_name}
粉丝 {fans_count}
{video_count}
{description}

我要回帖

更多关于 求微分方程的通解步骤 的文章

 

随机推荐