这个微分方程特解怎么设怎么解出来的呢

扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
已知微分方程的通解怎么求这个微分方程比如1.x^2-xy+y^2=c 2.e^(-ay)=c1x+c2 如果能告诉一般方法就更好了
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
已知微分方程的通解怎么求这个微分方程 答:求导!如:1.x^2-xy+y^2=c等式两边对x求导:2x-y-x(dy/dx)+2y(dy/dx)=0故dy/dx=(2x-y)/(x-2y);或写成 2x-y-(x-2y)y′=0若要求二阶微分方程则需再求导一次:2-y′-(1-2y′)y′+(x-2y)y〃=02.e^(-ay)=c1x+c2 -ay′e^(-ay)=c₁(一阶微分方程)-ay〃e^(-ay)-ay′(-ay′)e^(-ay)=0,即a²(y′)²-ay〃=0(二阶微分方程)
为您推荐:
其他类似问题
扫描下载二维码(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/则可以...
34周后是多久一次孕检?
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区[转载]MATLAB解微分方程
用matlab时间也不短了,可是一直没有接触过微分方程。这次看看书,学习学习,记点儿笔记。
1.可以解析求解的微分方程。
调用格式为:
y=dsolve(f1,f2,...,fmO;
y=dsolve(f1,f2,...,fm,'x');
如下面的例子,求解了微分方程
u=exp(-5*t)*cos(2*t-1)+5;
uu=5*diff(u,t,2)+4*diff(u,t)+2*u;
y=dsolve(['D4y+10*D3y+35*D2y+50*Dy+24*y=87*exp(-5*t)*cos(2*t-1)+92*exp(-5*t)*sin(2*t-1)+10'])
yc=latex(y)
将yc的内容copy到latex中编译,得到结果。
关于Matlab的微分方程,直到今天才更新第2篇,实在是很惭愧的事——因为原因都在于太懒惰,而不是其他的什么。
在上一篇中,我们使用dsolve可以解决一部分能够解析求解的微分方程、微分方程组,但是对于大多数微分方程(组)而言不能得到解析解,这时数值求解也就是没有办法的办法了,好在数值解也有很多的用处。
数值分析方法中讲解了一些Eular法、 Runge-Kutta
法等一些方法,在matlab中内置的ode求解器可以实现不同求解方法的相同格式的调用,而不必太关心matlab究竟是用什么算法完成的。
这一回我们来说明ode45求解器的使用方法。
1.ode45求解的上手例子:
求解方程组
Dx=y+x(1-x^2-y^2);
Dy=-x+y*(1-x^2-y^2)
初值x=0.1;y=0.2;
先说明一下最常用的ode45调用方式,和相应的函数文件定义格式。
[t,x]=ode45(odefun,tspan,x0);
其中,Fun就是导函数,tspan为求解的时间区间(或时间序列,如果采用时间序列,则必须单调),x0为初值。
这时,函数文件可以采用如下方式定义
function dx=odefun(t,x)
对于上面的小例子,可以用如下的程序求解。
function jixianhuan
x0=[0.1;0.2];
[t,x]=ode45(@jxhdot,[0,100],x0);
plot(x(:,1),x(:,2))
function dx=jxhdot(t,x)
x(2)+x(1).*(1-x(1).^2-x(2).^2);
-x(1)+x(2).*(1-x(1).^2-x(2).^2)
&2.终值问题
tspan可以是递增序列,也可以为递减序列,若为递减则可求解终值问题。
[t,x]=ode45(@zhongzhiode,[3,0],[1;0;2]);plot(t,x)
function dx=zhongzhiode(t,x)
dx=[2*x(2)^2-2;
-x(1)+2*x(2)*x(3)-1;
-2*x(2)+2*x(3)^2-4];
options = odeset('name1',value1,'name2',value2,...)
[t,x]=solver(@fun,tspan,x0,options)
通过odeset设置options
第一,通过求解选项的设置可以改善求解精度,使得原本可能不收敛的问题收敛。
options=odeset('RelTol',1e-10);
第二,求解形如M(t,x)x'=f(t,x)的方程。
例如,方程
x'=-0.2x+yz+0.3xy
y'=2xy-5yz-2y^2
可以变形为
0& 0][x'] [-0.2x+yz+0.3xy]
0][y']=[2xy-5yz-2y^2& ]
[x+y+z-2&&&&&&
这样就可以用如下的代码求解该方程
function mydae
M=[1 0 0;0 1 0;0 0 0];
options=odeset('Mass',M);
x0=[1.6,0.3,0.1];
[t,x]=ode15s(@daedot,[0,1.5],x0,options);plot(t,x)
function dx=daedot(t,x)
-0.2*x(1)+x(2)*x(3)+0.3*x(1)*x(2);
2*x(1)*x(2)-5*x(2)*x(3)-2*x(2)*x(2);
x(1)+x(2)+x(3)-2];
4.带附加参数的ode45
有时我们需要研究微分方程组中的参数对于解的影响,这时采用带有参数的ode45求解会使求解、配合循环使用,可以使得求解的过程更加简捷。
使用方法:只需将附加参数放在options的后面就可以传递给odefun了。
看下面的例子。
function Rossler
a=[0.2,0.2];
b=[0.2,0.5];
c=[5.7,10];
x0=[0 0 0];
for jj=1:2
[t,x]=ode45(@myRossler,[0,100],x0,[],a(jj),b(jj),c(jj));
plot3(x(:,1),x(:,2),x(:,3));
function dx=myRossler(t,x,a,b,c)
-x(2)-x(3);
x(1)+a*x(2);
b+(x(1)-c)*x(3)];
5. 刚性方程的求解
刚性方程就是指各个自变量的变化率差异很大,会造成通常的求解方法失效。
这是matlab中自带的一个例子,使用ode15s求解,如果用ode45求解就会出现错误。
function myode15study
[t,Y] = ode15s(@vdp0],[2 0]);
plot(T,Y(:,1),'-o')
plot(Y(:,1),Y(:,2))
function dy = vdp1000(t,y)
zeros(2,1);&&&
dy(1) = y(2);
dy(2) = 1000*(1 - y(1)^2)*y(2) - y(1);
6.高阶微分方程的求解
通常的方法是进行变量替换,将原方程降阶,转换成更多变量的一阶方程组进行求解。
在这个例子里我们求解一个动力学系统里最常见的一个运动方程
,其中f=sin(t)
function myhighoder
x0=zeros(6,1);
[t,x]=ode45(@myhigh,[0,100],x0);
plot(t,x(:,1))
function dx=myhigh(t,x)
f=[sin(t);0;0];;
C=eye(3)*0.1;
K=eye(3)-0.5*diag(ones(2,1),1)-0.5*diag(ones(2,1),-1);
dx=[x(4:6);inv(M)*(f-C*x(4:6)-K*x(1:3))];
7.延迟微分方程
matlab提供了dde23求解非中性微分方程。dde23的调用格式如下:
sol = dde23(ddefun,lags,history,tspan)
lags是延迟量,比如方程中包含y1(t-0.2)和y2(t-0.3)则可以使用lags=[0.2,0.3]。
这里的ddefun必须采用如下的定义方式:
dydt = ddefun(t,y,Z)
其中的Z(:,1)就是y(t-lags(1)),Z(:,2)就是y(t-lags(2))...
下面是个使用dde23求解延迟微分方程的例子。
function mydde23study
The differential equations
y'_1(t) = y_1(t-1)&
y'_2(t) = y_1(t-1)+y_2(t-0.2)
y'_3(t) = y_2(t)
are solved on [0, 5] with history y_1(t) = 1, y_2(t) = 1, y_3(t) =
lags=[1,0.2];
history=[1;1;1];
tspan=[0,5];
sol = dde23(@myddefun,lags,history,tspan)
plot(sol.x,sol.y)
function dy = myddefun(t,y,Z)
Z(1)+Z(2,2);
8.ode15i求解隐式微分方程
[T,Y] = ode15i(odefun,tspan,y0,yp0)
yp0为y'的初值。
odefun的格式如下& dy =
odefun(t,y,yp),yp表示y',而方程中应该使得f(t,y,y')=0
function myodeIMP
The problem is
y(1)' = -0.04*y(1) + 1e4*y(2)*y(3)
y(2)' =& 0.04*y(1) - 1e4*y(2)*y(3) -
3e7*y(2)^2
y(3)' =& 3e7*y(2)^2
It is to be solved with initial conditions y(1) = 1, y(2) = 0, y(3)
to steady state.&
y0=[1;0;0];
fixed_y0=[1;1;1];
yp0=[0 0 0];
fixed_yp0=[];
[y0mod,yp0mod]=decic(@myodefunimp,0,y0,fixed_y0,yp0,fixed_yp0);
tspan=[0, logspace(-6,6)];
[t,y] = ode15i(@myodefunimp,tspan,y0mod,yp0mod);
y(:,2)=1e4*y(:,2);
semilogx(t,y)
function res=myodefunimp(t,y,yp)
-yp(1)-0.04*y(1)+1e4*y(2)*y(3);
-yp(2)+0.04*y(1)-1e4*y(2)*y(3)-3e7*y(2)^2;
-yp(3)+3e7*y(2)^2;
这次要接触一个新的求解ode的方法,就是使用simulink的积分器求解。
1.还是做我们研究过的一个例子(在初识matlab微分方程(2)中采用的)。
Dx=y+x(1-x^2-y^2);
Dy=-x+y*(1-x^2-y^2)
初值x=0.1;y=0.2;
积分器中设置初始条件;f(u)中指定Dx,Dy的计算公式。
运行这个仿真,scope中可以看到两个变量的时程如下:
在WorkSpace里可以得到tout和yout,执行plot(yout(:,1),yout(:,1))得到与ode45求解相似的结果如下
&2.这部分解决一个使用ode求解器dde23没法求解的一类延迟微分方程(中性微分方程)。
形如x'(t)=f(x'(t-t1),x(t),x(t-t2),x(t-t3))这类方程。dde23是无法求解的,但是可以借助simulink仿真求解。
看下面的这个例子。
x'(t)=A1*x(t-t1)+A2*x'(t-t2)+B*u(t)
t1=0.15;t2=0.5
A2=[0.02&&&&0&&&&
62]&&&&&&&&
&&&[207&&-207&
113]&&&&&&&&&[0&&&&&&
0.04]&&&&&&[2]&&&
在continuous里找到transport Delay,就可以实现对于信号的延迟,因此可以建立如下仿真模型
从而在scope中可以得到如下仿真结果
OK~初识微分方程到了这里我想应该可以做个终结,因为我想作为零基础的材料来看,到这里也就可以了。以后还可能再有微分方程的内容,还请感兴趣的朋友多捧场吧。
最后,大力推荐一本书薛定宇老师的《高等应用数学问题的Matlab求解》,确实很经典。学习Matlab的时间也不算短了,可是每次翻看这本书总是能让我有温故而知新的感觉,是我目前见过的最好的Matlab书。强烈推荐!(对于从来没有接触过matlab的人来说或许有点儿难,但是如果你以后要用matlab的话买一本绝对不会后悔的。)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。小木虫 --- 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-您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
数学实验:求微分方程的解.ppt25页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
需要金币:100 &&
你可能关注的文档:
··········
··········
实验四求微分方程的解自牛顿发明微积分以来,微分方程在描述事物运动规律上已发挥了重要的作用。实际应用问题通过数学建模所得到的方程,绝大多数是微分方程。由于实际应用的需要,人们必须求解微分方程。然而能够求得解析解的微分方程十分有限,绝大多数微分方程需要利用数值方法来近似求解。本实验主要研究如何用Matlab来计算微分方程(组)的数值解,并重点介绍一个求解微分方程的基本数值解法--Euler折线法。问题背景和实验目的考虑一维经典初值问题基本思想:用差商代替微商根据Talyor公式,y(x)在点xk处有Euler折线法初值问题的Euler折线法具体步骤:分割求解区间分割求解区间,差商代替微商,解代数方程Euler折线法举例例:用Euler法解初值问题取步长h=(2-0)/n=2/n,得差分方程当h=0.4,即n=5时,Matlab源程序见fuluA.m解:Euler折线法源程序f=inline('y+2*x/y^2','x','y');a=0;b=2;n=5;h=(b-a)/n;x=a:h:b;y(1)=1;fori=1:ny(i+1)=y(i)+h*f(x(i),y(i));endplot(x,y,'rs-');Euler折线法举例(续)解析解:解析解近似解y=1/3*(-18-54*x+45*exp(3*x))^(1/3)Runge-Kutta方法为了减小误差,可采用以下方法:让步长h取得更小一些;改用具有较高精度的数值方法,如:龙格-库塔方法Runge-Kutta(龙格-库塔)方法是一类求解常微分方程的数值方法有多种不同的迭代格式Runge-Kutta方法用得较多的是四阶R-K方法(教材第98页)四阶R-K方法源程序clearf=inline('y+2*x/y^2','x','y');a=0;b=2;n=5;h=(b-a)/n;x=a:h:b;y(1)=1;fori=1:nL1=f(x(i),y(i));L2=f(x(i)+h/2,y(i)+L1*h/2);L3=f(x(i)+h/2,y(i)+L2*h/2);L4=f(x(i)+h,y(i)+L3*h);y(i+1)=y(i)+h*(L1+2*L2+2*L3+L4)/6;endfprintf('y在x=2点的近似值为%f\n',y(n+1));plot(x,y,'rs-');Runge-Kutta方法Euler法与R-K法误差比较Matlab解初值问题函数用Maltab自带函数解初值问题求解析解:dsolve求数值解
正在加载中,请稍后...}

我要回帖

更多关于 微分方程的特解怎么求 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信