این طور که معلومه، دستور solve قادر نیست که معادله مورد نظر را حل کند. مثلا در کدهای متلب زیر، بنده معادله را در v تعریف کرده ایم، سپس دستور solve را به کار برده ام تا ببینم آیا می تواند آن را بر حسب M حل کند یا خیر (عبارت v را برابر صفر قرار می دهد و سعی می کند که M را بر حسب سایر متغیرها به دست آورد) :
کد:
clear all
close all
clc
syms gamma M
v = sqrt(gamma+1/gamma-1)*atan(sqrt((gamma-1/gamma+1)*(M^2-1)))-atan(M^2-1)
solve(v,M)
syms H
v_2 = sqrt(H)*atan(sqrt((1/H)*(M^2-1)))-atan(M^2-1)
solve(v_2,M)
حتی یک در حالتی دیگر، یک متغیر جدید هم تعریف کردم تا معادله ساده تر شود، اما تاثیری ندارد و باز هم معادله حل نمی شود.
نتیجه اجرای کد متلب بالا :
کد:
v =
atan(((M^2 - 1)*(gamma - 1/gamma + 1))^(1/2))*(gamma + 1/gamma - 1)^(1/2) - atan(M^2 - 1)
Warning: Explicit solution could not be found.
> In solve at 83
In Untitled at 7
ans =
[ empty sym ]
v_2 =
H^(1/2)*atan(((M^2 - 1)/H)^(1/2)) - atan(M^2 - 1)
Warning: Explicit solution could not be found.
> In solve at 83
In Untitled at 11
ans =
[ empty sym ]