我有三个符号函数: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并解决微分方程。