Matlab中的弹性线方程 - 使用Mupadengine / feval时的错误 - dsolve中的错误> mupadDsolve - dsolve中的错误

时间:2018-01-11 14:25:20

标签: matlab symbolic-math differential-equations

我无法理解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)

0 个答案:

没有答案