سلام
معادله ای مثل معادله زیر ، باچه دستوری از متلب میشه برحسب متغیر دیگر نوشت؟ { (yوxوb) متغیر هستند }
کد پیاچپی:
y=x+cos(b) ----> x=y-cos(b) or----> b=acos(y-x)
متشکر
سلام.
هدفتان از تعریف معادله چیست ؟
منظورم اینه که مثلا مقادیر x و b معلوم است و y را می خواهید به دست آورید یا اینکه معادله را می خواهید به صورت سمبلیک حل کنید یا موارد دیگر ؟
اگر تنها قصد دارید که معادله را به صورت سمبلیک بنویسید، متغیرهای x و y و b را با دستور syms به صورت سمبلیک تعریف کنید و بعد همان هبارت هایی که خودتان نوشته بودید، کافی است.
برای تعریف سمبلیک معادلات و متغیرها، کلید زیر را بخوانید :
http://www.kelidestan.com/keys/keys.php?key=4
سلام
[
attachment=532]
وقتی این معادله (پیوست) رو توسط دستور solve میخوام به صورت سمبلیک برحسب M بنویسم ، خطای زیر رو به من میده !!!
راه دیگه ای وجود داره که این کار رو انجام بدیم...؟! متشکر
کد پیاچپی:
Warning: Explicit solution could not
be found.
> In solve at 179
ans =
[ empty sym ]
این طور که معلومه، دستور 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 ]