用Mathematica变换方程

时间:2015-08-22 14:27:17

标签: wolfram-mathematica

我尝试使用Mathematica转换几个komplex方程,但我没有得到正确的语法。

Solve[{EI*w[x] == Piecewise[{{(x - a)^3, x >= a}, {0, x < a}}]*F*(1/6) + 
ca*(x³)*(1/6) + cb*(x^2)*0.5 + cc*x + cd,
EI*w'[x] == Piecewise[{{(x - a)², x >= a}, {0, x < a}}]*F*0.5 + ca*(x^2)*0.5 + cb*x + cc, 
EI*w''[x] == Piecewise[{{(x - a)^1, x >= a}, {0, x < a}}]*F + ca*x*0.5 + cb, 
EI*w'''[x] == Piecewise[{{(x - a)^0, x >= a}, {0, x < a}}]*F + ca, 
w[0] == -EIw'''[0]/ka, w[l] == EIw'''[0]/kb, w'[0] == 0, w'[l] == 0},
{ca, cb, cc, cd}]

有人能给我一个提示如何用Mathematica解决这些方程式。

1 个答案:

答案 0 :(得分:1)

首先清理一些排版问题。

我们通过仅查看域x&gt; = a

来简化此操作
Solve[{EI*w[x] == (x-a)^3*F*(1/6)+ca*(x^3)*(1/6)+cb*(x^2)*(1/2)+cc*x+cd,
   EI*w'[x] == (x-a)^2*F*(1/2)+ca*(x^2)*(1/2)+cb*x+cc, 
   EI*w''[x] == (x-a)^1*F+ca*x*(1/2)+cb,
   EI*w'''[x] == (x-a)^0*F+ca, 
   w[0] == -EI*w'''[0]/ka, w[1] == EI*w'''[0]/kb, w'[0] == 0, w'[1] == 0}, 
   w[x], x]

你的第二个等式只是第一个等式的导数而没有提供额外的信息

In[1]:= D[(x-a)^3*F*(1/6)+ca*(x^3)*(1/6)+cb*(x^2)*(1/2)+cc*x+cd, x] ==
   (x-a)^2*F*(1/2)+ca*(x^2)*(1/2)+cb*x+cc

Out[1]= True

您的第三和第四个等式提供了有关ca

的信息
In[2]:= Simplify[D[(x-a)^1*F+ca*x*(1/2)+cb, x] == (x-a)^0*F+ca]

Out[2]= ca == 0

或者似乎越来越可能这是原始海报中方程式中的拼写错误的结果。如果没有原始海报的更多信息,则无法确定这是否正确。但是这个人应该能够查看所使用的方法并获得所需的解决方案。

因此

w[x] == ((x-a)^3*F*(1/6)+cb*(x^2)*(1/2)+cc*x+cd)/EI

In[3]:= w'[x] == D[((x-a)^3*F*(1/6)+cb*(x^2)*(1/2)+cc*x+cd)/EI, x]

Out[3]= w'[x] == (cc+cb x+1/2 F (-a+x)^2)/EI

In[4]:= w'''[x] == D[((x-a)^3*F*(1/6)+cb*(x^2)*(1/2)+cc*x+cd)/EI, {x, 3}]

Out[4]= w'''[x] == F/EI

我们已经知道ca,使用前三个边界条件求解剩余的三个变量

In[5]:= Simplify[Solve[{((0-a)^3*F*(1/6)+cb*(0^2)*(1/2)+cc*0+cd)/EI == -EI*(F/EI)/ka,
   ((l-a)^3*F*(1/6)+cb*(l^2)*(1/2)+cc*l+cd)/EI == EI*(F/EI)/kb,
   (cc+cb x+1/2 F (-a+0)^2)/EI == 0}, {cb, cc, cd}]]

Out[5]= {{cb -> (F (6 EI (ka+kb)+ka kb (3 a-l) l^2))/(3 ka kb l (l-2 x)), 
   cc -> -((F (3 a^2 ka kb l (l-2 x)+6 a ka kb l^2 x+ 
      2 (6 EI (ka+kb)-ka kb l^3) x))/(6 ka kb l (l-2 x))),
   cd -> 1/6 F (a^3-(6 EI)/ka)}}

查看最终边界条件

In[7]:= Simplify[(cc+cb x+1/2 F (-a+l)^2)/EI == 0 /. Out[5]]

Out[7]= {(F l (-2 a+l))/EI == 0}

仔细检查每一步,确认没有错误。

然后返回查看是否可以对域x&lt;一个