Matlab不会通过其表达式替换符号函数

时间:2015-04-26 02:47:00

标签: matlab differential-equations

我有三个符号函数:sigma_r,sigma_theta和sigma_z。我的三个函数表示为另外两个符号函数的函数:epsilon_r,epsilon_theta。例如

sigma_r = 125021*epsilon_r + 132154*epsilon_theta

此外epsilon_r,epsilon_theta是另一个符号函数的函数,即u(r)例如

epsilon_r = diff(u)

我想解决以下微分方程:

diff(sigma_r)+(sigma_r-sigma_theta)/r+rho*w^2*r==0 

实际上,这个微分方程可以表示为u(r)的微分方程。

我要求Matlab在sigma_r(和sigma_theta)的表达式中替换所有变量,以便sigma_r(和sigma_theta)仅表示为u的函数。

Matlab做得很好但是当它解决微分方程时,它并没有将sigma_theta替换为u的表达式。他只替换了sigma_r。

以下是命令:

sigma_r = subs(sigma_r)
sigma_theta = subs(sigma_theta)
u(r) = dsolve(diff(sigma_r)+(sigma_r-sigma_theta)/r+rho*w^2*r==0)

它解决并返回:

u(r) =
(r*sigma_theta - (r^3*rho*w^2)/3)/r + C5/r

你可以看到sigma_theta仍然依赖于你。

请你帮我告诉matlab用你的表达式取代sigma_theta并解决微分方程。

0 个答案:

没有答案