سوالات و مشکلات مدل سازی و کدنویسی در نرم افزار متلب - Matlab - تخصصی مهندسی شیمی

peggijaan

عضو جدید
سلام به همه
می خواستم اگه زحمتی نیست این سوال رو برام گرافش رو رسم کنین
این سوال معادله ی حرارت ریاضی مهندسی که حل شده و حالا گرافش رو میخوایم
ممنون می شم کمک کنین
u(x,t)=[-5sin*k*pi/3*pi*(n^2-pi^2)*sin(1.2*n*t)*sin*n*x
ضميمه هاي كنوني (22.9 كيلو بايت)
http://www.www.www.iran-eng.ir/images/attach/jpg.gif 26022009346.jpg (22.9 كيلو بايت)
تصاوير كوچک فايل ضمیمهhttp://www.www.www.iran-eng.ir/attachment.php?attachmentid=21044&stc=1&thumb=1&d=1273985096

:eek: شبيه همون پست 161 و 163 مي تونيد رسم كنيد. البته شما بايد براي بينهايت هم يه فكري بكنيد. بينهايت جمله رو نمي شه رسم كرد. بايد به جاش عدد بديد. يا اينكه يك تعداد جمله رو حساب كنيد و بعد توي حلقه while با اضافه كردن جملات بعدي مقايسه كنيد ببينيد حاصلش فرق زيادي داره يا نه. اگر مطلوب نظر شما بود حلقه رو قطع كنيد. ضمناً نمودارها رو جورهاي مختلفي مي شه رسم كرد و به سليقه بستگي داره. شما اگر از ديگران بخواهيد كه رسم كنه بهتره كه دقيقاً مشخص كنيد كه چه فرمتي رو لازم داريد.
 

sepantaaa

عضو جدید
کاربر ممتاز
سلام

سلام

:eek: شبيه همون پست 161 و 163 مي تونيد رسم كنيد. البته شما بايد براي بينهايت هم يه فكري بكنيد. بينهايت جمله رو نمي شه رسم كرد. بايد به جاش عدد بديد. يا اينكه يك تعداد جمله رو حساب كنيد و بعد توي حلقه while با اضافه كردن جملات بعدي مقايسه كنيد ببينيد حاصلش فرق زيادي داره يا نه. اگر مطلوب نظر شما بود حلقه رو قطع كنيد. ضمناً نمودارها رو جورهاي مختلفي مي شه رسم كرد و به سليقه بستگي داره. شما اگر از ديگران بخواهيد كه رسم كنه بهتره كه دقيقاً مشخص كنيد كه چه فرمتي رو لازم داريد.
سلام ممنونم دوست من
منظورم بینهایت نیست
منظورم اینه که همون اعداد جدول بالایی هست
بینهایت نداره
 

ahmad61

عضو جدید
[FONT=&quot]سلام مجدد[/FONT][FONT=&quot]
[/FONT][FONT=&quot]من اشتباه كردم مساله هنوز لاينحل است[/FONT][FONT=&quot]:cry:
[/FONT][FONT=&quot]بزارين يه جور ديگه توضيح بدهم[/FONT][FONT=&quot]
[/FONT][FONT=&quot]فرض كنيد داده هاي مساله دو ماتريس مثلا ماتريس[/FONT][FONT=&quot] F , V [/FONT][FONT=&quot]كه داريم[/FONT][FONT=&quot][/FONT]
[FONT=&quot]F: =[f1 f2 f3 f4 f5 f6][/FONT]​
[FONT=&quot]V: =[v1 v2 v3 v4 v5 v6 ][/FONT]​
[FONT=&quot]f1=k11*v1+k12*v2+k13*v3+k14*v4+k15*v5+k16*v6[/FONT]​
[FONT=&quot]حالا 100 [/FONT][FONT=&quot], [/FONT][FONT=&quot] [/FONT][FONT=&quot]f1[/FONT][FONT=&quot] [/FONT][FONT=&quot]داريم كه بوسيله ضرايب [/FONT][FONT=&quot]k11 [/FONT][FONT=&quot] [/FONT][FONT=&quot]تا [/FONT][FONT=&quot]k16[/FONT][FONT=&quot] [/FONT][FONT=&quot] به 100تا [/FONT][FONT=&quot]v1 [/FONT][FONT=&quot]تا [/FONT][FONT=&quot]v6[/FONT][FONT=&quot] [/FONT][FONT=&quot] ارتباط پيدا ميكند[/FONT]

[FONT=&quot][/FONT]
[FONT=&quot]سوال من اين است چطور در مطلب بوسيله روش حداقل مربعات غير خطي [/FONT][FONT=&quot] [/FONT][FONT=&quot](nonlinear least square)[/FONT][FONT=&quot]
[/FONT]
[FONT=&quot]ضرايب K [/FONT][FONT=&quot] را پيدا كنم ؟:eek:[/FONT]
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام به همه
می خواستم اگه زحمتی نیست این سوال رو برام گرافش رو رسم کنین
این سوال معادله ی حرارت ریاضی مهندسی که حل شده و حالا گرافش رو میخوایم
ممنون می شم کمک کنین
u(x,t)=[-5sin*k*pi/3*pi*(n^2-pi^2)*sin(1.2*n*t)*sin*n*x
ضميمه هاي كنوني (22.9 كيلو بايت)
http://www.www.www.iran-eng.ir/images/attach/jpg.gif 26022009346.jpg (22.9 كيلو بايت)
تصاوير كوچک فايل ضمیمهhttp://www.www.www.iran-eng.ir/attachment.php?attachmentid=21044&stc=1&thumb=1&d=1273985096


:eek: شبيه همون پست 161 و 163 مي تونيد رسم كنيد. البته شما بايد براي بينهايت هم يه فكري بكنيد. بينهايت جمله رو نمي شه رسم كرد. بايد به جاش عدد بديد. يا اينكه يك تعداد جمله رو حساب كنيد و بعد توي حلقه while با اضافه كردن جملات بعدي مقايسه كنيد ببينيد حاصلش فرق زيادي داره يا نه. اگر مطلوب نظر شما بود حلقه رو قطع كنيد. ضمناً نمودارها رو جورهاي مختلفي مي شه رسم كرد و به سليقه بستگي داره. شما اگر از ديگران بخواهيد كه رسم كنه بهتره كه دقيقاً مشخص كنيد كه چه فرمتي رو لازم داريد.

سلام ممنونم دوست من
منظورم بینهایت نیست
منظورم اینه که همون اعداد جدول بالایی هست
بینهایت نداره

ـ حرفهاي peggijaan كاملاً درسته.
ـ در برنامه‏اي كه اينجا مي‏ذارم، من به جاي بينهايت جمله از 50 تا جمله استفاده مي‏كنم.
ـ براي x هم بايد يك بازه مي‏داديد؛ من بين 0 و [FONT=&quot]2л
در نظر گرفتمش.
کد:
clear,clc,close all
x=linspace(0,2*pi,100);
pk=polyfit([0.5,1.1,2.8],1:3,2);
pf=polyfit([0.7,0.9,1.5,4.7,9.3],1:5,4);
lcf=['-b ';':g ';'--r';'-.m';'.c '];
for t=[0.5,1.1,2.8]
    for k=[0.7,0.9,1.5,4.7,9.3]
        u=0;
        for n=1:50
            u=u-5*sin(k*pi)/(3*pi*(n^2-pi^2))*sin(1.2*n*t)*sin(n*x);
        end
        subplot(3,1,round(polyval(pk,t)))
        plot(x,u,lcf(round(polyval(pf,k)),:))
        hold on
    end
end

subplot(3,1,1),axis('tight'),title('t = 0.5')
subplot(3,1,2),axis('tight'),title('t = 1.1'),ylabel('u(x,t)')
legend('k = 0.7','k = 0.9','k = 1.5','k = 4.7','k = 9.3',1)
subplot(3,1,3),axis('tight'),title('t = 2.8'),xlabel('x')

ـ اين تنها براي قسمت اول مسأله هست. قسمت دوم هم شبيه همينه؛ فقط جاي t و k عوض شده.
ـ اين بهترين روش نيست، نمودارها هم همونطور كه peggijaan هم گفته بود سليقه‏ايه؛ اين يكي از سليقه‏هاست.
[/FONT]
 
آخرین ویرایش:

sepantaaa

عضو جدید
کاربر ممتاز
سلام

سلام

ـ حرفهاي peggijaan كاملاً درسته.
ـ در برنامه‏اي كه اينجا مي‏ذارم، من به جاي بينهايت جمله از 50 تا جمله استفاده مي‏كنم.
ـ براي x هم بايد يك بازه مي‏داديد؛ من بين 0 و [FONT=&quot]2л در نظر گرفتمش.
کد:
[LEFT]clear,clc,close all
x=linspace(0,2*pi,100);
pk=polyfit([0.5,1.1,2.8],1:3,2);
pf=polyfit([0.7,0.9,1.5,4.7,9.3],1:5,4);
lcf=['-b ';':g ';'--r';'-.m';'.c '];
for t=[0.5,1.1,2.8]
   for k=[0.7,0.9,1.5,4.7,9.3]
       u=0;
       for n=1:50
           u=u-5*sin(k*pi)/(3*pi*(n^2-pi^2))*sin(1.2*n*t)*sin(n*x);
       end
       subplot(3,1,round(polyval(pk,t)))
       plot(x,u,lcf(round(polyval(pf,k)),:))
       hold on
   end
end[/LEFT]
 
[LEFT]subplot(3,1,1),axis('tight'),title('t = 0.5')
subplot(3,1,2),axis('tight'),title('t = 1.1'),ylabel('u(x,t)')
legend('k = 0.7','k = 0.9','k = 1.5','k = 4.7','k = 9.3',1)
subplot(3,1,3),axis('tight'),title('t = 2.8'),xlabel('x')[/LEFT]


ـ اين تنها براي قسمت اول مسأله هست. قسمت دوم هم شبيه همينه؛ فقط جاي t و k عوض شده.
ـ اين بهترين روش نيست، نمودارها هم همونطور كه peggijaan هم گفته بود سليقه‏ايه؛ اين يكي از سليقه‏هاست.

پ.ن.: اگه اين جوابي كه اينجا نوشتيد، در حل يك مسأله دوبعدي به دست اومده، به احتمال بسيار زياد غلطه؛ من در نوشتن برنامه فرض كردم كه جوابي كه اينجا نوشتيد درسته.

[/SIZE][/FONT]
سلام مهندس جان ممنونم ازتون
راستش این سوال رو یکی از بچه ها که این ترم ریاضی داره خودش حل کرده و فکر می کنم شما درست حدس زدین و اشتباه حل شده
راجع به بینهایت هم من نپرسیدم که چند جمله می تونه بگیره
البته درستش رو از استادشون می پرسم
به هر حال ممنونم که کمک کردین
به امید دیدار
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
[FONT=&quot]سلام مجدد[/FONT][FONT=&quot]
[/FONT][FONT=&quot]من اشتباه كردم مساله هنوز لاينحل است[/FONT][FONT=&quot]:cry:
[/FONT][FONT=&quot]بزارين يه جور ديگه توضيح بدهم[/FONT][FONT=&quot]
[/FONT][FONT=&quot]فرض كنيد داده هاي مساله دو ماتريس مثلا ماتريس[/FONT][FONT=&quot] F , V [/FONT][FONT=&quot]كه داريم[/FONT]
[FONT=&quot]F: =[f1 f2 f3 f4 f5 f6][/FONT]​
[FONT=&quot]V: =[v1 v2 v3 v4 v5 v6 ][/FONT]​
[FONT=&quot]f1=k11*v1+k12*v2+k13*v3+k14*v4+k15*v5+k16*v6[/FONT]​
[FONT=&quot]حالا 100 [/FONT][FONT=&quot], [/FONT][FONT=&quot]f1[/FONT][FONT=&quot]داريم كه بوسيله ضرايب [/FONT][FONT=&quot]k11 [/FONT][FONT=&quot]تا [/FONT][FONT=&quot]k16[/FONT][FONT=&quot] به 100تا [/FONT][FONT=&quot]v1 [/FONT][FONT=&quot]تا [/FONT][FONT=&quot]v6[/FONT][FONT=&quot] ارتباط پيدا ميكند[/FONT]


[FONT=&quot]سوال من اين است چطور در مطلب بوسيله روش حداقل مربعات غير خطي [/FONT][FONT=&quot](nonlinear least square)[/FONT][FONT=&quot]
[/FONT]
[FONT=&quot]ضرايب K [/FONT][FONT=&quot] را پيدا كنم ؟:eek:[/FONT]


با توجه به اينكه ناشناخته‌هاي مسأله شما توي ماتريس ضرايب ظاهري مسأله هستند، در آغاز معادلات رو بايد به فرمت استاندارد دستگاه معادلات خطي در بياريد:




آخرين معادله، يك دستگاه معادلات خطي بيش‌شناخته هست.​
كمي محاسبات نمادين موضوع رو بيشتر روشن مي‏كنه:​
کد:
  [COLOR=black][FONT=&quot]syms [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]f1[/FONT][/COLOR][COLOR=#a020f0][FONT=&quot] f2 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]f3 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]f4 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]f5 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]f6 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v1 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v2 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v3 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v4 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v5 [/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]v6[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]for[/FONT][/COLOR][COLOR=black][FONT=&quot] i=1:6[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]for[/FONT][/COLOR][COLOR=black][FONT=&quot] j=1:6[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]        eval([[/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]'syms k'[/FONT][/COLOR][COLOR=black][FONT=&quot],num2str(i),num2str(j)]);[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]        K(i,j)=eval([[/FONT][/COLOR][COLOR=#a020f0][FONT=&quot]'k'[/FONT][/COLOR][COLOR=black][FONT=&quot],num2str(i),num2str(j)]);[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]end[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]end[/FONT][/COLOR]
  
  [COLOR=black][FONT=&quot]f=[f1 f2 f3 f4 f5 f6].'[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]v=[v1 v2 v3 v4 v5 v6].'[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]K[/FONT][/COLOR]
اين هم خروجي اجراش:​
کد:
  [FONT=&quot]f =[/FONT]
  
  [FONT=&quot] f1[/FONT]
  [FONT=&quot] f2[/FONT]
  [FONT=&quot] f3[/FONT]
  [FONT=&quot] f4[/FONT]
  [FONT=&quot] f5[/FONT]
  [FONT=&quot] f6[/FONT]
  
  
  
  [FONT=&quot]v =[/FONT]
  
  [FONT=&quot] v1[/FONT]
  [FONT=&quot] v2[/FONT]
  [FONT=&quot]v3[/FONT]
  [FONT=&quot] v4[/FONT]
  [FONT=&quot] v5[/FONT]
  [FONT=&quot] v6[/FONT]
  
  
  
  [FONT=&quot]K =[/FONT]
  
  [FONT=&quot][ k11, k12, k13, k14, k15, k16][/FONT]
  [FONT=&quot][ k21, k22, k23, k24, k25, k26][/FONT]
  [FONT=&quot][ k31, k32, k33, k34, k35, k36][/FONT]
  [FONT=&quot][ k41, k42, k43, k44, k45, k46][/FONT]
  [FONT=&quot][ k51, k52, k53, k54, k55, k56][/FONT]
  [FONT=&quot][ k61, k62, k63, k64, k65, k66][/FONT]
براي پيدا كردن يه الگوريتم براي فرمت جديد هم يك سري محاسبات نمادين انجام مي‏ديم:​
کد:
  [FONT=&quot]x=K(:)[/FONT]
  [FONT=&quot]e=K*v-f[/FONT]
اين هم خروجيش:​
کد:
  [FONT=&quot]x =[/FONT]
  
  [FONT=&quot] k11[/FONT]
  [FONT=&quot] k21[/FONT]
  [FONT=&quot] k31[/FONT]
  [FONT=&quot] k41[/FONT]
  [FONT=&quot] k51[/FONT]
  [FONT=&quot] k61[/FONT]
  [FONT=&quot] k12[/FONT]
  [FONT=&quot] k22[/FONT]
  [FONT=&quot] k32[/FONT]
  [FONT=&quot] k42[/FONT]
  [FONT=&quot] k52[/FONT]
  [FONT=&quot] k62[/FONT]
  [FONT=&quot] k13[/FONT]
  [FONT=&quot] k23[/FONT]
  [FONT=&quot] k33[/FONT]
  [FONT=&quot] k43[/FONT]
  [FONT=&quot] k53[/FONT]
  [FONT=&quot] k63[/FONT]
  [FONT=&quot] k14[/FONT]
  [FONT=&quot] k24[/FONT]
  [FONT=&quot] k34[/FONT]
  [FONT=&quot] k44[/FONT]
  [FONT=&quot] k54[/FONT]
  [FONT=&quot] k64[/FONT]
  [FONT=&quot] k15[/FONT]
  [FONT=&quot] k25[/FONT]
  [FONT=&quot] k35[/FONT]
  [FONT=&quot] k45[/FONT]
  [FONT=&quot] k55[/FONT]
  [FONT=&quot] k65[/FONT]
  [FONT=&quot] k16[/FONT]
  [FONT=&quot] k26[/FONT]
  [FONT=&quot] k36[/FONT]
  [FONT=&quot] k46[/FONT]
  [FONT=&quot] k56[/FONT]
  [FONT=&quot] k66[/FONT]
  
  
  
  [FONT=&quot]e =[/FONT]
  
  [FONT=&quot] k11*v1+k12*v2+k13*v3+k14*v4+k15*v5+k16*v6-f1[/FONT]
  [FONT=&quot] k21*v1+k22*v2+k23*v3+k24*v4+k25*v5+k26*v6-f2[/FONT]
  [FONT=&quot] k31*v1+k32*v2+k33*v3+k34*v4+k35*v5+k36*v6-f3[/FONT]
  [FONT=&quot] k41*v1+k42*v2+k43*v3+k44*v4+k45*v5+k46*v6-f4[/FONT]
  [FONT=&quot] k51*v1+k52*v2+k53*v3+k54*v4+k55*v5+k56*v6-f5[/FONT]
  [FONT=&quot] k61*v1+k62*v2+k63*v3+k64*v4+k65*v5+k66*v6-f6[/FONT]
حالا ديگه مي‏دونيم كه بايد چيكار كنيم:​
کد:
  [FONT=&quot]s=[v,zeros(6,5)].'[/FONT]
  [FONT=&quot]a1=s(:).'[/FONT]
  [FONT=&quot]a=[a1[/FONT]
  [FONT=&quot]   0,a1(1:end-1)[/FONT]
  [FONT=&quot]   0,0,a1(1:end-2)[/FONT]
  [FONT=&quot]   0,0,0,a1(1:end-3)[/FONT]
  [FONT=&quot]   0,0,0,0,a1(1:end-4)[/FONT]
  [FONT=&quot]   0,0,0,0,0,a1(1:end-5)][/FONT]
اين هم خروجي اين قسمت:​
کد:
  [FONT=&quot]s =[/FONT]
  
  [FONT=&quot][ v1, v2, v3, v4, v5, v6][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0,  0][/FONT]
  
  
  
  [FONT=&quot]a1 =[/FONT]
  
  [FONT=&quot][ v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0,  0,  0,  0,  0][/FONT]
  
  
  
  [FONT=&quot]a =[/FONT]
  
  [FONT=&quot][ v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0, v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0, v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0, v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0, v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6,  0][/FONT]
  [FONT=&quot][  0,  0,  0,  0,  0, v1,  0,  0,  0,  0,  0, v2,  0,  0,  0,  0,  0, v3,  0,  0,  0,  0,  0, v4,  0,  0,  0,  0,  0, v5,  0,  0,  0,  0,  0, v6][/FONT]
حالا براي حل مسأله آماده‌ايم. كافيه كه همه داده‌ها رو بريزيم توي دو تا ماتريس و با استفاده از روش كمينه نماي دوم خطا بهترين جواب رو پيدا كنيم. در زير يك نمونه انجام شده.​
کد:
  [COLOR=black][FONT=&quot]clear,clc[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]Kd=pascal(6,0);[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]A=[];b=[];[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]for[/FONT][/COLOR][COLOR=black][FONT=&quot] v=5*rand(6,100)-3[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    f=Kd*v;[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    vn=v+0.01*randn(6,1);fn=f+0.01*randn(6,1);[/FONT][/COLOR][COLOR=forestgreen][FONT=&quot]% noise added[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    s=[vn,zeros(6,5)].';a1=s(:).';[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    a=[a1[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]       0,a1(1:end-1)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]       0,0,a1(1:end-2)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]       0,0,0,a1(1:end-3)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]       0,0,0,0,a1(1:end-4)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]       0,0,0,0,0,a1(1:end-5)];[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    A=[A;a];[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]    b=[b;fn];[/FONT][/COLOR]
  [COLOR=blue][FONT=&quot]end[/FONT][/COLOR]
  
  [COLOR=black][FONT=&quot]xLLS=(A.'*A)\(A.'*b);KLLS=reshape(xLLS,6,6)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]xSVD=pinv(A)*b;KSVD=reshape(xSVD,6,6)[/FONT][/COLOR]
  
  [COLOR=black][FONT=&quot]KSVD,KLLS,Kd[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]eLLS=norm(Kd-KLLS)[/FONT][/COLOR]
  [COLOR=black][FONT=&quot]eSVD=norm(Kd-KSVD)[/FONT][/COLOR]
اين برنامه رو اجرا كنيد و خروجي رو ببينيد. خيلي وقت ندارم كه همه جزئيات رو توضيح بدم؛ يه خلاصه‌اي مي‌نويسم:​

  • از دستور pascal براي توليد يك ماتريس نمونه به جاي هموني كه شما مي‏خوايد پيدا كنيد استفاده شده. بعداً فرض مي‏كنيم كه اين جواب رو نداريم و پيداش مي‌كنيم.
  • با استفاده از اون ماتريس 100 تا نمونه آزمايشگاهي درست كردم؛ براي اين كار از اضافه كردن اندازه‌هاي بختي با ميانگين صفر و انحراف معيار[FONT=&quot]0.01[/FONT] استفاده كردم.
  • جواب رو به دو روش به دست آوردم و با جواب مطلوب مقايسه كردم؛ يكي روش كمينه نماي دوم خطا و يكي هم با استفاده از وارون ساختگي كه با استفاده از شكستن به اندازه‌هاي تكين،SVD، به دست مياد. جواب اين دو روش از نظر رياضي معادل هم هستند، اما از نظر محاسباتي اختلاف خيلي جزئي دارند.
  • با توجه به اينكه دستگاه معادلات خطي هست، لازم به استفاده ازnonlinear least square نيست؛ از linear least square مسأله قابل حله.
  • با توجه به اينكه خيلي از ضرايب ماتريس ضرايب صفره، استفاده از ماتريسهاي خلوت بهتره. اما از اونها استفاده نشده. در كل، برنامه‌ها به صورت حرفه‌اي نوشته نشده، تا خواننده‌هاي اينجا كه اكثراً تازه‌كار هستن، بهتر متوجه موضوع بشن.

  • براي مطالعه بيشتر در مورد دستگاههاي معادلات بيش‌شناخته، يا overdetermined و وارون ساختگي مي‌تونيد بخش دوم از كتاب "شگردهاي عددي" رو بخونيد.
 
آخرین ویرایش:

jadeye paeezi

کاربر بیش فعال
komaaaaaaaaaaaak

komaaaaaaaaaaaak

salam dustan,kasi etelaati dar morede hale matrix 3 diagonal be raveshe thomas algoritm dare?mamnon misham age file rahnemaee dar in zamine bezarid
 

peggijaan

عضو جدید
salam dustan,kasi etelaati dar morede hale matrix 3 diagonal be raveshe thomas algoritm dare?mamnon misham age file rahnemaee dar in zamine bezarid

فكر كنم matrix 3 diagonal رو بايد بريزي توي چايي و با قاشق هم بزني تا حل بشه. منظورت چيه؟ ماتريس رو مگه مي شه حل كرد؟
 

sasanrst

عضو
سلام.
من دنبالِ يه چيزى ميگردم و اميدوارم كه مشكلم اينجا حال شه.

من دنبال اين ميگردم كه يه ماتریس ۴ در ۴ را به مطلب بدهيم و با روش کرامر،ژاکوبی،روش حذفی گوس پائين مثلثی،روش گوس جردن،گوس سایدل،روش چولسکی،و روش relaxation حل كنيم.البته هر كدام جدا جدا

اميدوارم اينجا يه نفر به من كمك كُنه
 
آخرین ویرایش توسط مدیر:

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
مرسی خیلی عالیه:w27::w27::w27:

حالا تا من اینو بخونم یاد بگیرم میشه اینو فعلا برام حل کنین:lol::redface:



مشاهده پیوست 38729

مشاهده پیوست 38731

:cry:
اولين كاري كه شما بايد انجام بديد اينه كه اون نمودارها رو به صورت مقادير عددي داشته باشيد. براي اين كار كافيه كه اون فايل pdf رو به تصوير تبديل كنيد. بعدش نمودارها رو ازش ببريد و يك فايل جديد درست كنيد يا اينكه قسمتهاي اضافي رو حذف كنيد. حالا اين فايل رو مي‏تونيد با استفاده از دستور imread و image بخونيدش و در پنجره گرافيكي متلب نشون بديد. بعد از اين مرحله با استفاده از دستور ginput و چند بار كليك كردن روي هر كدوم از اون نمودارها مختصات چند تا از اون نقاط رو به دست بياريد. اگه خواستيد دقت نقاطي رو كه برداشت كرديد ببيند، مي‏تونيد با استفاده از دستورهاي hold و plot اون رو روي تصوير اصلي بندازيد. دقت كنيد كه اين نقاط بايد با استفاده از انتقال و مقياس كردن به اعدادي كه روي نمودار در شكل داده شده اصلاح شن. براي اين كار كافيه كه دو تا گوشه معلوم و مقابل هم از نمودار رو هم برداشت كنيد تا ببينيد بايد در چه اعدادي ضرب و به چه اندازه انتقال بديد.
بعد از اينكه اين كار رو انجام داديد، بقيه كار خيلي ساده هست و در نمونه‏اي كه گذاشتيد معلومه كه بايد چيكار كنيد.
 
آخرین ویرایش:

ehsan welder

عضو جدید
کد:
num=1;
den=conv([1 2],[1 3]);
sys=tf(num,den);
sys_c1=feedback(sys,1);
t=0:0.1:200;
u=0.5*t.*t;
[y,t,x]=1sim(sys_c1,u,t);
plot(t,y,'r',t,u,'b')
xlabel('Time(secs)')
ylabel('Amplitude')
title('Input-blue,output-red')

کسی هست بگه مشکل این کجاست؟
 
آخرین ویرایش توسط مدیر:

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
کد:
num=1;
den=conv([1 2],[1 3]);
sys=tf(num,den);
sys_c1=feedback(sys,1);
t=0:0.1:200;
u=0.5*t.*t;
[y,t,x]=[COLOR=red]1[/COLOR]sim(sys_c1,u,t);
plot(t,y,'r',t,u,'b')
xlabel('Time(secs)')
ylabel('Amplitude')
title('Input-blue,output-red')
کسی هست بگه مشکل این کجاست؟

حداقل اشكالش اينه كه به جاي "اِل" تايپ كرديد "يك"؛ هموني كه توي برنامه‏ت قرمزش كردم.
 

aigin

کاربر فعال
با سلام
يك يه برنامه ساده در مورد ريشه هاي معادله درجه دوم نوشتم .براي دوستاني كه بخواهند برنامه نويسي رو با مطلب شروع كنند بد نيست.برنامه رو در ام فايل كپي پيست كنيد سپس ران كنيد.

clc
;a=4
;b=2
;c=1
;d=((b^2)-4*a*c)^1/2
if d>0
x1=(-b+d)/2*a
x2=(-b-d)/2*a
elseif d==0
x1=-b/2*a
else
('disp('Complex numbers
end
 

lvlaspink

عضو جدید
salam bebakhshin halle moadeleie difransiel martabeie 2 ba 2sharte mariz be raveshe rang kotta 4 ro kasi dare
age lotf konin kheili mamonoon misham
fk konam ba 3ta m-file ke 2tash baraie func1 va func2 va yekish baraye rk4 bashe be alaveie 1main file hal bashe
vali balad nistam ina chejori neveshte misheeeeeeeeeeeeeeeeee
 

*Afash*

عضو جدید
کاربر ممتاز
سلام
خوبین؟
کسی در مورد شبیه سازی یه سیستم با simulink نرم افزار matlab اطلاعاتی داره؟
یه سیستم (کمپرسور) رو با سیستم کنترلیش میخوام شبیه سازی کنم تو simulink، کسی اطلاعاتی داره؟ نمودار جعبه ای سیستم رو کشیدم، معادلات لاپلاس کمپرسور رو از کجا بیارم؟!
ممنون
 
سلام بچه ها من باید دوتا سوال واسه درس حرارت با متلب جواب بدم اما اصلان چیزی از دادن داده ها به متلب بلد نیستم دستور ها رو که باید باش سوال حل شه بلدم اما داده دادن رو نه کسی هست کمک کنه؟
 

bestlife

عضو جدید
سلام
کسی می دونه باید چه جوری متلبمونو قوی کنیم؟؟
الان 2سال با متلب کار نکردم میخوام خوب خوب یادش بگیرم، خیلی چیزاش یادم رفته !!!
 

ahmad_3830

عضو جدید
سلام بر تمامی پویندگان راه علم و دانش
دوستان عزیز من یه سوال راجع به حل دستگاه معادلات دیفرانسیل (ODE) تو متلب دارم کسی هست که بتونه کمک کنه
سوالم اینه ممنون میشم اگه تو حلش کمک کنین
-A (d2y(1)/dz2) +B(dy(1)/dz) +C(y(1)-y(2))+D(y(1).4)=0

-E (d2y(2)/dz2) +F(dy(2)/dz) +G(y(1)-y(2))+H(y(2).4)=0

@z=0 B(y(1)(0) - L)=A (dy(1)/dz)
@z=0 F(y(2)(0) - L)=E (dy(2)/dz)

@z=h (dy(1)/dz)=0

@z=h (dy(2)/dz)=0
اینا دو تا معادله دیفرانسیله با شرایط مرزیشون که تو این معادلات A,B,C,D,E,F,G,H,L مشخصه
 

ahmad_3830

عضو جدید
سلام بر تمامی پویندگان راه علم و دانش
دوستان عزیز من یه سوال راجع به حل دستگاه معادلات دیفرانسیل (ODE) تو متلب دارم کسی هست که بتونه کمک کنه
سوالم اینه ممنون میشم اگه تو حلش کمک کنین
-A (d2y(1)/dz2) +B(dy(1)/dz) +C(y(1)-y(2))+D(y(1).4)=0

-E (d2y(2)/dz2) +F(dy(2)/dz) +G(y(1)-y(2))+H(y(2).4)=0

@z=0 B(y(1)(0) - L)=A (dy(1)/dz)
@z=0 F(y(2)(0) - L)=E (dy(2)/dz)

@z=h (dy(1)/dz)=0

@z=h (dy(2)/dz)=0
اینا دو تا معادله دیفرانسیله با شرایط مرزیشون که تو این معادلات A,B,C,D,E,F,G,H,L مشخصه​
 
لطفا کمک

لطفا کمک

سلام مهندسین عزیز لطف میکنین به من کمک کنین
:میخوام یه برنامه بنویسم برای تغیرات سرعت در فیلم ریزان با معادله و شرایط مرزی زیر

Uy əCA ∕ əy=DAB ə²CA∕ əz²

@ Z=0 for all y CA=C interface​
@Z=δ for all y əCA ∕ əz=0​
@y=0 for all z CA=CA0 ۪۪۪۪​
 

dacochir

عضو جدید
کمک کنید خواهش می کنم

کمک کنید خواهش می کنم

سلام به اساتید محترم
من صفرکیلومترم....http://www.www.www.iran-eng.ir/images/smilies/icon_smile.gifhttp://www.www.www.iran-eng.ir/images/smilies/icon_smile.gif
جواب ایم مسئله رو که با متلب هست رو میخوام بهم لطف کنید بگید...

تکلیف 1-1: برنامه‌ای بنویسید که یک عدد را از کاربر بگیرد و آنرا در متغیری به نام x ذخیره کند. با استفاده از آن
، عبارت زیر را محاسبه کند و مقدار y را با پیغام مناسب نمایش دهد.
y=x^3 + 3*x^2 +6*x + 6;
این فایل را با نام p1 ذخیره کنید.
در جلوی اعلان متلب نام آنرا تایپ و اجرا کنید
smfaghih@yahoo.com
خواهش میکنم بهم زود برسونید.نمرم میپره....
ممنونم...

این هم ایمیل من هستش
dacochir@gmail.com
 
آخرین ویرایش:

saturn2200

عضو جدید
سلام ببخشید من یه سوال دارم توی مطلب امشب میخوام حل بشه کسی بلده اینجا.
سوالم پیدا کردن i توی معادله روبرو هستشDSC00023.jpg
 

bidelkoma

عضو جدید
برنامه نویسی متلب

برنامه نویسی متلب

برنامه ای می خواستم که سه عدد را بگیرد و کلیه حالت های ممکن درصد آن را نمایش دهد. مثلاً 1 و 2 و 3
حالت اول ،0 درصد از 1 و 50 درصد از 2 و 50 درصد از 3
حالت دوم، 30 درصد از 1 و 30 درصد از 2 و 40 درصد از 3
....
.
.
.
.
.
.
.
 

#soreNa#

کاربر فعال
سلام روز همگي خوش استادمون واسه امتحان پايان ترم درس كارگاه نرم افزار اين سوالو داده گفته حلشو با متلب برام بنويسيد بياريد شديدا نياز مند كمك دوستانم لطفا تا 29/9 جواب بديد امتحانش فرداش هست


گرماي واكنش احتراق پروپان را در دماي 600درجه سانتي گراد بدست آوريد.


<---------------c3H8 + 5 o2
3co2+4H2O
 
بالا