ورود

View Full Version : پیدا کردن جوابهای یک معادله



حسین علوی
دوشنبه 22 تیر 1394, 13:42 عصر
با سلام خدمت دوستان
یک ماتریس داریم مثل A که درایه های ان چندجمله ای هایی بر حسب x میباشد حالا میخام جوابهای معادله زیر رو پیدا کنم لطفا راهنمایی بفرمایید.

det(A)=0

Desaghi
دوشنبه 22 تیر 1394, 16:46 عصر
این جور مسائل به روش عددی حل می شوند.

حسین علوی
دوشنبه 22 تیر 1394, 16:54 عصر
این جور مسائل به روش عددی حل می شوند.
لطفا بیشتر راهنمایی بفرمایید.

Desaghi
دوشنبه 22 تیر 1394, 17:27 عصر
منظورم اینه که با استفاده از حدس و تکرار برای متغیر مجهول و یک الگوریتم مثلا بر مبنای روش نیوتن می توان مساله را حل کرد. باید دید ماتریس A چطور ماتریسی هست.

حسین علوی
دوشنبه 22 تیر 1394, 18:24 عصر
منظورم اینه که با استفاده از حدس و تکرار برای متغیر مجهول و یک الگوریتم مثلا بر مبنای روش نیوتن می توان مساله را حل کرد. باید دید ماتریس A چطور ماتریسی هست.
ولی شاید راه بهتری هم باشه اصلا در حالت کلی ایا در نرم افزار مطلب میتوان دترمینان ماتریسی را بدست اورد که درایه های ان متغییر باشه؟

rahnema1
دوشنبه 22 تیر 1394, 18:29 عصر
سلام
با استفاده از روشهای سمبولیک می شه حل کرد
حالا شما ماتریس را بذرید

حسین علوی
دوشنبه 22 تیر 1394, 18:49 عصر
سلام
با استفاده از روشهای سمبولیک می شه حل کرد
حالا شما ماتریس را بذرید
سلام استاد
بحث من در حالت کلی است ایا راهی وجود داره؟ راستی در رابطه با pseudospectra of matrix اطلاعی دارین چطور رسم میشه؟

rahnema1
دوشنبه 22 تیر 1394, 19:17 عصر
در مورد sigular بودن ماتریس در لینک زیر بحث شده
http://stackoverflow.com/questions/13145948/how-to-find-out-if-a-matrix-is-singular

rahnema1
دوشنبه 22 تیر 1394, 19:17 عصر
برای pseudospectra of matrix هم همون eigtools استفاده کنید

حسین علوی
دوشنبه 22 تیر 1394, 21:51 عصر
برای pseudospectra of matrix هم همون eigtools استفاده کنید
ساختار
eigtools چگونه است وطبق چه الگوریتمی
pseudospectra
را رسم میکنه؟

حسین علوی
سه شنبه 23 تیر 1394, 11:38 صبح
سلام
با استفاده از روشهای سمبولیک می شه حل کرد
حالا شما ماتریس را بذرید
لطفا تصویر ضمیمه را ملاحظه کنید چطور میشه این معادله رو حل کد؟

rahnema1
سه شنبه 23 تیر 1394, 16:19 عصر
من برای مساله های سمبولیک از نرم افزار Maxima استفاده می کنم که رایگان و اپن سورسه
این برنامه را بنویسیم

P:matrix([1, 0 , 0],[0 ,2,0],[0, 0, 5]) * lambda ^ 2 + matrix([0, 0 , 0],[0 ,3, -1],[0, -1, 6]) * lambda + matrix([2, -1 , 0],[-1 ,3,0],[0, 0, 10]);
dt : determinant(P);
to_poly_solve(dt, [lambda]);


جواب زیر را میده:

%union(
[lambda=-1.450234662908858*%i-0.082603284335118],
[lambda=-1.246867078879554*%i-0.51444473208489],
[lambda=-0.85764519740618*%i-0.75295198357999],
[lambda=0.85764519740618*%i-0.75295198357999],
[lambda=1.246867078879554*%i-0.51444473208489],
[lambda=1.450234662908858*%i-0.082603284335118])

حسین علوی
سه شنبه 23 تیر 1394, 18:08 عصر
من برای مساله های سمبولیک از نرم افزار Maxima استفاده می کنم که رایگان و اپن سورسه
این برنامه را بنویسیم

P:matrix([1, 0 , 0],[0 ,2,0],[0, 0, 5]) * lambda ^ 2 + matrix([0, 0 , 0],[0 ,3, -1],[0, -1, 6]) * lambda + matrix([2, -1 , 0],[-1 ,3,0],[0, 0, 10]);
dt : determinant(P);
to_poly_solve(dt, [lambda]);


جواب زیر را میده:

%union(
[lambda=-1.450234662908858*%i-0.082603284335118],
[lambda=-1.246867078879554*%i-0.51444473208489],
[lambda=-0.85764519740618*%i-0.75295198357999],
[lambda=0.85764519740618*%i-0.75295198357999],
[lambda=1.246867078879554*%i-0.51444473208489],
[lambda=1.450234662908858*%i-0.082603284335118])

کد متلب برای این مورد چیه؟

sim-power
سه شنبه 27 مرداد 1394, 23:22 عصر
حل دستگاه چند معادله و چند مجهول در متلب (http://sim-power.ir/%D8%AD%D9%84-%D8%AF%D8%B3%D8%AA%DA%AF%D8%A7%D9%87-%DA%86%D9%86%D8%AF-%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D9%87-%D9%88-%DA%86%D9%86%D8%AF-%D9%85%D8%AC%D9%87%D9%88%D9%84-%D8%AF%D8%B1-%D9%85%D8%AA%D9%84/)محاسبه صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت به صورت جداگانه ، با دستور numden در متلب :با استفاده از دستور numden در متلب، می توانیم صورت کسر (Numerator) و مخرج کسر (denominator) یک عبارت را به صورت جداگانه، محاسبه کنیم و نتیجه هر کدام، یک چندجمله ای با ضرایبی به صورت عدد صحیح می باشد. البته باید دقت شود که دستور numden ، در ورودی خود، عدد نمی پذیرد و باید ورودی آن، به صورت سمبلیک باشد. به مثال زیر توجه کنید :
مثال :
clear all
close all
clc[n,d]=numden(sym(2/3))

ابتدا با دستور sym ، کسر 2/3 را به صورت سمبلیک در آورده ایم (زیرا دستور numden ، عدد نمی پذیرد) و سپس با دستور numden ، صورت و مخرج کسر را محاسبه کرده ایم.
نتیجه :
n =
2
d =
3


متغیر n ، برابر صورت کسر (Numerator) و متغیر d ، برابر مخرج کسر (denominator) می باشد.
مثال :
clear all
close all
clcsyms x y;
[n,d]=numden(x/y+y/x)

ابتدا با دستور syms ، دو متغیر x و y را به صورت سمبلیک تعریف کرده ایم تا در نتیجه آن، عبارت های ساخته شده با این دو متغیر نیز به صورت سمبلیک باشند و سپس با دستور numden ، صورت و مخرج کسر حاصل از عبارت نوشته شده درون پرانتز دستور numden را محاسبه کرده ایم.
[vip-members]نتیجه :
n =
x^2 + y^2
d =
x*y


متغیر n ، برابر صورت کسر (Numerator) و متغیر d ، برابر مخرج کسر (denominator) می باشد.