ساده سازی و ویرایش در متلب
ساده سازی و ویرایش در متلب:
گاهی برخی عبارات symbolic بسیار پیچیده و یا طولانی هستند و شما مایل هستید که آنها را به عبارات ساده تر یا کوتاهتری تبدیل کنید تا بتوانید نتیجه ی بهتری از آن بگیرید . به این منظور چنـد تـابع در MATLAB منظـور شـده است که شما را به ویرایش دلخواهتان از یک عبارت جبری و symbolic رهنمون می گردد . اولین و کاملترین تابع در این رابطه، تـابع simple است که تمامی راههای موجود برای ویرایش یک عبارت به اش کال گوناگون را بررسی و چاپ می کند .
به مثـال زیـر توجـه کنید:
>>syms x y
>> simple(x^3+3*y^2*x^2+4*x*y+sin(x+y));
simplify: x^3+3*y^2*x^2+4*x*y+sin(x+y)
radsimp: x^3+3*y^2*x^2+4*x*y+sin(x+y)
combine(trig): x^3+3*y^2*x^2+4*x*y+sin(x+y)
factor: x^3+3*y^2*x^2+4*x*y+sin(x+y)
expand: x^3+3*y^2*x^2+4*x*y+sin(x)*cos(y)+cos(x)*sin(y)
combine: x^3+3*y^2*x^2+4*x*y+sin(x+y)
convert(exp): x^3+3*y^2*x^2+4*x*y-1/2*i*(exp(i*(x+y))-1/exp(i*(x+y))
convert(sincos): x^3+3*y^2*x^2+4*x*y+sin(x+y)
convert(tan): x^3+3*y^2*x^2+4*x*y+2*tan(1/2*x+1/2*y)/(1+tan(1/2*x+1/2*y)^2)
collect(x): x^3+3*y^2*x^2+4*x*y+sin(x+y)
mwcos2sin: x^3+3*y^2*x^2+4*x*y+sin(x+y)
همانگونه که ملاحظه فرمودید، استفاده از تابع simple به این شکل، تمامی حالات ممکن برای ساده سازی یک عبارت را در مورد عبارت symbolic ورودی خود امتحان نموده و نتایج را چاپ می کند؛ اگرچه ممکن است بسیاری از این حـالات برای این عبارت ناکارآمد باشد و هیچ اثری در ویرایش آن نگذارد . از دستور simple به گونه ای دیگر نیز می توان استفاده نمود . در این حالت دستور مساوی با یـک آرایـه ی سـطری دو متغیره قرار می گیرد . اجرای دستور موجب می شود که عبارت به یکی از روشها که خود نرم افزار مفید تشخیص می هـد بـه کوتاهترین عبارت ممکنه ساده شده و عبارت ساده شده در متغیر اول ماتریس قرار گیرد . متغیر دوم حاوی نام روشی خواهـد بود که مورد استفاده قرار گرفته است . البته در این حالت ممکن است نرم افزار راهی برای کوتاهتر نمودن عبارت پیدا نکنـد و در نتیجه عین عبارت را در متغیر اول و در متغیر دوم مقدار تهی را قرار دهد . چند مثال:
>> syms x y
>> [s,h]=simple(sin(x+y)+cos(x+y))
s= sin(x+y)+cos(x+y)
h= [ ]
>> [s,h]=simple(sin(x+y)*cos(x+y))
s= 1/2*sin(2*x+2*y)
h= combine(trig)
>> [r,how]= simple(x^2+2*x+1)
r= (x+1)^2
how= factor
>> [A,B]= simple(cos(x)+i*sin(x))
A= exp(i*x)
B= convert(exp)
بعضی از حالات پر کاربرد ی که دستور simple چاپ می کند، به عنوان توابعی مستقل در MATLAB شناخته می شوند. این موارد عبارتند از factor ، horner ، collect ، simplify و simplify .expand شکل خاصی از simple اسـت که با استفاده از قوانین ساده سازی ریاضی عبارت موجود را ساده میسازد. به عنوان مثال :