我无法理解Matlab中多个微分方程的解。在这个例子中,我正在尝试使用独立的方程:程序应该单独解决它们(它确实如此,见下文)和它们一起解决(它不会!),不应该吗?
<子> N.B。方程根据Euler Bernoulli描述弹性线。我想使用它们,只为每个问题设置适当的初始条件和已知数据。
这是与两个程序共同的代码部分:
创建符号函数
syms v(z) w(z)
syms B Chiterm p mx by l A Eterm p bz
辨
D1v = diff(v,z);
D2v = diff(v,z,2);
D3v = diff(v,z,3);
D4v = diff(v,z,4);
D1w = diff(w,z);
D2w = diff(w,z,2);
设置已知值(和参数,如p
)
by=-p;
Chiterm=0;
mx=0
bz=0;
Eterm=0
定义微分方程
odetrasv = diff(B*(diff(v,z,2)+Chiterm),z,2)-mx-by == 0;
odelong = diff(A*(diff(w,z)-Eterm),z)+bz == 0;
定义初始条件
cond1 = B*D2v(l) == 0;
cond2 = D1v(0) == 0;
cond3 = v(0) == 0;
cond4 = v(l) == 0;
cond5 = D1w(l) == 0;
cond6 = w(0) == 0;
以下是分别解决方程式的代码部分:
condstrasv = [cond1 cond2 cond3 cond4];
condslong = [cond5 cond6];
vSol(z) = dsolve(odetrasv, condstrasv);
wSol(z) = dsolve(odelong, condslong);
vSol = simplify(vSol)
wSol = simplify(wSol)
这是不起作用的部分。我正试图解决它们问题,因为下一步是解决多个方程组:
odes = [odetrasv; odelong];
conds = [cond1; cond2; cond3; cond4; cond5; cond6];
[vSol(z), wSol(z)] = dsolve(odes,conds)
Matlab回归:
使用Mupadengine / feval时出错 - 初始条件无效
dsolve中的错误&gt; mupadDsolve - T = feval(symengine,'symobj :: dsolve',sys ....
dsolve中的错误 - sol = mupadDsolve(args,options);
为什么第二种情况下初始条件无效?没有它们解决问题:
[vSol(z), wSol(z)] = dsolve(odes)