محاسبه ریشه های یک چند جمله ای با دستور roots در متلب
با دستور roots در متلب، می توانیم ریشه های یک چند جمله ای دلخواه را محاسبه کنیم. به مثال زیر توجه کنید :
فرض کنید بخواهیم ریشه های چند جمله ای زیر را محاسبه کنیم : \begin{align} 2s^3-3s^2+4s+1 \end{align}
برای این منظور، ابتدا ضرایب جملات چند جمله ای را در یک بردار تعریف می کنیم و سپس با دستور roots ، ریشه ها را محاسبه می کنیم :
close all
clc
p=[2 -3 4 1];
r=roots(p)
نتیجه :
0.8558 + 1.2767i
0.8558 - 1.2767i
-0.2117
بنابراین سه ریشه چند جمله ای، در خروجی، نمایش داده شده است.
آیا امکان محاسبه ریشه های دقیق هم هست؟ برای نمونه اگر بخواهیم در پاسخ معادله x^2-1=0 مقدار رادیکال 2 را در یافت کنیم و نه 1.41421356237 باید چه دستوری را صادر کنیم؟
با چه دستوری میتونیم فقط عددمثبت رو به عنوان داده انتخاب کنیم
سلام
به وسیله دستور if در متلب (MATLAB)، شرط مثبت بودن عدد را بررسی نمایید ().
به عنوان مثال :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه اجرای کد متلب (MATLAB) بالا :
سلام.
علاوه بر مورد قبل (دستور if) که توضیح داده شد، دستور find نیز برای یافتن مقادیر مثبت موجود در یک ماتریس می تواند به کار رود ().
به عنوان مثال :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
در متغیر element_number ، موقعیت (شماره) مقادیر مثبت در ماتریس، ذخیره می شود و در ماتریس value ، خود مقدار مثبت پیدا شده، ذخیره می گردد.
نتیجه اجرای کد متلب (MATLAB) بالا :
سلام اگه دلتا منفی بشه اون وقت باید چیکار کنیم
سلام
من یه تابع تبدیل دارم که توی متلب ازش لاپلاس معکوس گرفتم، در جوابش یه چیزی نوشته که متوجه نمیشم، یه عبارتی و در ادامه in RootOf یه عبارت دیگه.
میشه راهنمایی کنید که اینو چطوری باید به فرم عادی دربیارم؟
این شکلیه:
h =
1209*symsum(exp(r3*t)/(60000*r3^5 + 135800*r3^4 + 147520*r3^3 + 95250*r3^2 + 36440*r3 + 6631), r3 in RootOf(s3^6 + (679*s3^5)/250 + (461*s3^4)/125 + (127*s3^3)/40 + (911*s3^2)/500 + (6631*s3)/10000 + 603/5000, s3))