dsolve解微分方程组问题出在哪里?

liyilee19962022-10-04 11:39:541条回答

dsolve解微分方程组问题出在哪里?
如果写方程如下:[x1,y1]=dsolve('Dx1=0.08*(1-(1+0.15)*x1/800+0.01*y1/900)*x1 ,Dy1=0.07*(1-(1+0.1)*y1/900+0.008*x1/800)*y1','x1(0)=2,y1(0)=10')
则不能得到解;
但是如果方程如下:[x1,y1]=dsolve('Dx1=0.08*(1-(1+0.15)*x1/800+0.01*10/900)*x1','Dy1=0.07*(1-(1+0.1)*y1/900+0.008*2/800)*y1','x1(0)=2,y1(0)=10')便可以得到解.为什么呢?
难道dsolve不能出现“x*y“这样的乘积项?请大侠赐教,

已提交,审核后显示!提交回复

共1条回复
群星陨落 共回答了13个问题 | 采纳率92.3%
后者是两个相互独立的非线性常微分方程,dsolve相当于世界了两个互不相关的常微分方程;前者是一个非线性常微分方程组,dsolve无法直接解.不过我想到一个办法解决这个问题,从第一个方程中可解出y1=45/8*(200000*Dx1-16000*x1+23*x1^2)/x1,把它代到第二个方程里,于是得到一个二阶常微分方程-45/8*(200000*Dx1-16000*x1+23*x1^2)/x1^2*Dx1+45/8*(200000*D2x1-16000*Dx1+46*x1*Dx1)/x1=0.07*(1-(1+0.1)*(45/8*(200000*Dx1-16000*x1+23*x1^2)/x1)/900+0.008*x1/800)*(45/8*(200000*Dx1-16000*x1+23*x1^2)/x1),在相应的把y1(0)=10转化为关于Dx1和x1的边界条件,就可以用dsolve解了
1年前

相关推荐

matlab微分方程soln_1 = dsolve('Dy = 3*x^2','y(2)=0.5')soln_1 =3*
matlab微分方程
soln_1 = dsolve('Dy = 3*x^2','y(2)=0.5')
soln_1 =
3*x^2*t-6*x^2+1/2
soln_3 = dsolve('Dy = 3*y + exp(2*x)',' y(0) = 3')
soln_3 =
-1/3*exp(2*x)+exp(3*t)*(1/3*exp(2*x)+3)
为什么全和答案不一样 那个t是什么东西
660101年前1
13是ou心肝宝贝 共回答了18个问题 | 采纳率100%
它在dsolve中默认的变量为t,所以会出现这样的结果,你需要指定变量为x,或者你把你的x换成t,然后把结果中的t在换成x
matlab求微分方程,常数项比如y=dsolve('Du=((a-u-b)*e-u*d)/(e*d*c)','t'),
matlab求微分方程,常数项
比如
y=dsolve('Du=((a-u-b)*e-u*d)/(e*d*c)','t'),
得到
y =
exp(-(e+d)*t/e/d/c)*C1-(-a+b)*e/(e+d)
如果知道常数项C1的详细构成.
lindseycai1年前1
就是juice 共回答了13个问题 | 采纳率84.6%
参考答案:少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光.——刘向
MATLAB中dsolve函数用法?
淡无名_tt1年前1
hghg145 共回答了22个问题 | 采纳率95.5%
是用来 解微分方程的.
matlab求解常微分y=dsolve('D3y-3*D2y-Dy*y=0','y(0)=1 Dy(0)=-1 D2y(
matlab求解常微分y=dsolve('D3y-3*D2y-Dy*y=0','y(0)=1 Dy(0)=-1 D2y(0)=0','t')
错误如下
? Error using ==> dsolve
at offset 84, `=` unexpected
Error in ==> fun1 at 1
y=dsolve('D3y-3*D2y-Dy*y=0','y(0)=1 Dy(0)=-1 D2y(0)=0','t')
求大神啊
飘忽的心上人1年前1
chdoubleng 共回答了15个问题 | 采纳率93.3%
第一,你有语法错误
y=dsolve('D3y-3*D2y-Dy*y=0','y(0)=1','Dy(0)=-1','D2y(0)=0','t')
第二,没有显式解
只能把初始条件去掉可得隐式解
mathematica解微分方程“y''+4y'+2=0”写成DSolve[y''[x]+4 y'[x]+2 y==0,
mathematica解微分方程“y''+4y'+2=0”写成DSolve[y''[x]+4 y'[x]+2 y==0,y[x],x]为什么有错误说“无变量”?
qp2211年前1
wt-zhaoqian 共回答了18个问题 | 采纳率88.9%
代码中的所有标点应该为英文状态下的半角标点,很显然你的程序中两个逗号都是中文的标点.
另外你的两个写法并不一致,前面的微分方程中并没有 y 的零阶导数,到后面怎么又凭空产生了呢?
DSolve[y''[x] + 4 y'[x] + 2 == 0,y[x],x]
或者
DSolve[y''[x] + 4 y'[x] + 2 y[x] == 0,y[x],x]
求各路大神指导,MATLAB中:利用dsolve求解偏微分方程 的解(用符号计算).
求各路大神指导,MATLAB中:利用dsolve求解偏微分方程 的解(用符号计算).
利用dsolve求解偏微分方程dx/dt=y,dy/dt=-x
的解(用符号计算)
AMMY2_CC1年前1
shuiyingruozi 共回答了18个问题 | 采纳率83.3%
syms x y t
[x,y]=dsolve('Dx=y','Dy=-x',t);
matlab(1-x)*y''=0.2*sqrt(1+y'^2) 输入y=dsolve('(1-x)*D2y-0.2*s
matlab(1-x)*y''=0.2*sqrt(1+y'^2) 输入y=dsolve('(1-x)*D2y-0.2*sqrt(1+(Dy)^2)=0',
河缘1年前1
ghasoijoe 共回答了28个问题 | 采纳率96.4%
dsolve('(1-x)*D2y-0.2*sqrt(1+(Dy)^2)=0')
ans =
C22 + t*i
C22 - t*i
C22 - cosh(C20 - t/(5*(x - 1)))*(5*x - 5)
matlab求解微分方程并画图dsolve('Dv=(190.708-90.64*v^2)/47.27','t') (初
matlab求解微分方程并画图
dsolve('Dv=(190.708-90.64*v^2)/47.27','t') (初始速度v=0 这是一个物体在海水中下沉的位移,速度关于时间的方程,在matlab中求解后系数非常大,不能用,另外是否可以画出v关于t的曲线。
zenki31年前2
豹2008 共回答了22个问题 | 采纳率95.5%
syms t
v=dsolve('Dv=(190.708-90.64*v^2)/47.27','v(0)=0','t');
t=0:0.00001:0.002;
v=eval(v);
plot(t,v)
使用这样的方法求解,但从结果看好像你的方程有问题!
mathematic 求解微分方程DSolve[{x'[t]== r*x[t]+b,x[0] == x0},x[t],t
mathematic 求解微分方程DSolve[{x'[t]== r*x[t]+b,x[0] == x0},x[t],t]
为什么出现错误:DSolve::deqn:Equation or list of equations expected instead of True in the first argument {-b+(x^[Prime])[t]==r x[t],True}.
当我把x换成y时,即DSolve[{y'[t] == r*y[t] + b,y[0] == y0},y[t],t]时却能成功求解,这是为什么?
mathematica求解微分方程中,x只能作自变量,y只能作因变量吗?例如求解x(t),则出现错误。
一片奶酪1年前1
kang1608 共回答了17个问题 | 采纳率94.1%
我把你的代码复制到mathematic里面:
DSolve[{x'[t]== r*x[t]+b,x[0] == x0},x[t],t]
运行报错,但是如果这么写
DSolve[{x'[t] == r*x[t] + b,x[0] == x0},x[t],t]
就能求出解来
看出上面两句有什么不同了吗?
我靠!你的上面那行的加号是中文输入法里的加号,这不管在哪种程序里都是错的啦.
matlab解微分方程组出错?>>[x,y,z,v,w]=dsolve('Dx=-2*(A+A1)*x+u1*(y+z)
matlab解微分方程组出错?
>>[x,y,z,v,w]=dsolve('Dx=-2*(A+A1)*x+u1*(y+z)+u*v','Dy=-2*u1*y+A1*(x+v)','Dz=-2*u1*z+A1*(x+v)','Dw=-2*u*w+A*v','Dx+Dy+Dz+Dv+Dw=0','x(0)=1,y(0)=0,z(0)=0,v(0)=0,w(0)=0')
Error using ==> dsolve
Error,(in combine/radical) integer too large in context
3428970051年前1
Heshijie 共回答了20个问题 | 采纳率95%
怎么说呢...可能是因为所求系数(整型)太大了,也可能是你初始量设置的有问题.
具体这会儿我没参考书,要不然就告诉你怎么改进.
那句"Error,(in combine/radical) integer too large in context"意思是,
“错误,(在化简/开根中)文本里的整数过大”.
matlab求解简谐振动问题x=dsolve('D2x=-k*x')结果为C15*exp((-k)^(1/2)*t) +
matlab求解简谐振动问题
x=dsolve('D2x=-k*x')
结果为C15*exp((-k)^(1/2)*t) + C16/exp((-k)^(1/2)*t)
怎么不是三角函数式呢?
chwxyxk1年前1
gyh506440156 共回答了15个问题 | 采纳率93.3%
x=dsolve('D2x=-k*x')

x =

C1*sin(k^(1/2)*t)+C2*cos(k^(1/2)*t)


我运行出来的结果,你要不再检验下?
用matlab解:y=dsolve('D2y+exp(-t)*Dy-sin(sqrt(t))*y=exp(-t)*sin
用matlab解:y=dsolve('D2y+exp(-t)*Dy-sin(sqrt(t))*y=exp(-t)*sin(sqrt(t))','y(0)=1,Dy(0)=-2','t')
快乐小宝6471年前0
共回答了个问题 | 采纳率
matlab 高手进dsolve('D4y+4*a^4*y=0','x') ans = C2*(1/exp(a*x*(1
matlab 高手进
dsolve('D4y+4*a^4*y=0','x')

ans =

C2*(1/exp(a*x*(1 - i))) + C3*(1/exp(a*x*(i + 1))) + C4*exp(a*x*(i + 1)) + C5*exp(a*x*(1 - i))
这个答案怎么化简成没有复数 而是用正余弦函数来表示的
急用
东城喜酒1年前1
darkboy 共回答了23个问题 | 采纳率87%
那你用欧拉公式啊,你不知道吗?r*e^(ix)=r*(cosx+isinx),换下就行了
mathematica新手求问怎么用Dsolve求dn/dt=r n(1-n/k)
mathematica新手求问怎么用Dsolve求dn/dt=r n(1-n/k)
方程不对 导致out一直和in一样.求告知方程因该怎么写.
aa75721391年前1
duoduo80108 共回答了21个问题 | 采纳率95.2%
DSolve[n'[t] == n[t] (1 - n[t]/k) r, n[t], t]
注意大小写和格式!
MAPLE 看不懂函数名称,> dsolve(diff(y(x),x) = 1/sqrt(1+x^2));y(x) =
MAPLE 看不懂函数名称,
> dsolve(diff(y(x),x) = 1/sqrt(1+x^2));
y(x) = arcsinh(x) + _C1
请问各位大侠 arcsinh是什么意思呢
淘鞋s7v7n1年前2
s_k_911 共回答了15个问题 | 采纳率86.7%
反双曲正弦,即双曲正弦函数的反函数,附 sinh(x)=【exp(x)-exp(-x)】/2