سئوالات و مشکلات در متلب (MATLAB)

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلاااام-مرسیییییییییی خانومم-حالا خودمم امتحان میکنم. حقا که مدیرین!!
خانومم یه چیزی نمی دونم چرا اینجا فارسی و انگلیسی ننمیشه با هم نوشت!
اما تو تالار ما(عمران) مشکلی نیست من که تعجب کردم !! گفتم که بگم!! مرسییی

عزیز تست کن و اگه مشکلی داشتی بگو. تا خونم میتونم واست تستش کنم. در مورد فارسی انگلیسی هم مشکلی نداره گلم. ادیتور کل سایت یکسانه :gol:
 

behnam5670

عضو جدید
کاربر ممتاز
من کد شما رو به صورت زیر تغییر دادم:​
حلقه رو عمدا از 1 تا 3 گرفتم که متوجه بشین اون 3 در (k=zeros(4,4,3 برای چی هست (البته چون به توابع شما دسترسی نداشتم از x و y های دلخواه استفاده کردم)
خوندن سه ماتریس ایجاد شده: (کافی هست بنویسیم k) !

همه ی ماتریس ها:


یکی از سه ماتریس، مثلا دومی:

-------------------------------------------
ضمنا نمی‌دونم مشکل کار من کجا بوده..!​

 

..:: civil ::..

عضو جدید
سلام

ببخشید حالا من می خوام این ماتریس رو ایجاد کنم
[1,2
3,4
5,6
..]
من اینطوری نوشتم اما غلطه البته ان مدل نوشتم هی خطا میده

connect=zeros(nnode,2,nnode);
con=zeros(1,2,nnode)

for x=1:nnode
con=[2*x-1,2*x]
connect(x,2)=con(1,2)+connect(x,2)
end

میشه راهنمایی کنید؟
 

..:: civil ::..

عضو جدید
سلام

ببخشید حالا من می خوام این ماتریس رو ایجاد کنم
[1,2
3,4
5,6
..]
من اینطوری نوشتم اما غلطه البته ان مدل نوشتم هی خطا میده

connect=zeros(nnode,2,nnode);
con=zeros(1,2,nnode)

for x=1:nnode
con=[2*x-1,2*x]
connect(x,2)=con(1,2)+connect(x,2)
end

میشه راهنمایی کنید؟

لطفا بگید چه طوری ماتریسی بذارم نه درایه درایه!
 

..:: civil ::..

عضو جدید
یعنی کل ماتریس رو یکباره مقدار بدی به جا آدرس دهی سطر و ستون؟ منظورت همینه؟

سلام خانومم
منظورم اینه اون ماتریس con رو تو ماتریسconnect جا بدم که ماتریس con میشه یه سطر از ماتریس connect!
می دونم قرار نیست هر کاری رو انجام می خوایم بدیم بشه! حرفای من مثل این می مونه یکی بگه چه جوری وسط برنامه متلب آبشار روشن کنم !!!!:D

راستی یه سوال دیگه اینکه چه طوری می تونیم ماتریس هایی که تو حلقه for ایجاد میشن بگیم فقط آخریشو نشون بده نه همه ماتریس هایی که تو هر دور ایجاد میشه؟؟ یعنی وقتی حلقه تا آخرین شمارنده رفت همون آخری رو نشون بده!!!؟؟

ممنونم
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام خانومم
منظورم اینه اون ماتریس con رو تو ماتریسconnect جا بدم که ماتریس con میشه یه سطر از ماتریس connect!
می دونم قرار نیست هر کاری رو انجام می خوایم بدیم بشه! حرفای من مثل این می مونه یکی بگه چه جوری وسط برنامه متلب آبشار روشن کنم !!!!:D

راستی یه سوال دیگه اینکه چه طوری می تونیم ماتریس هایی که تو حلقه for ایجاد میشن بگیم فقط آخریشو نشون بده نه همه ماتریس هایی که تو هر دور ایجاد میشه؟؟ یعنی وقتی حلقه تا آخرین شمارنده رفت همون آخری رو نشون بده!!!؟؟

ممنونم

سلام
در مورد سئوال اولت، اگر بخوای اون سطر ماتریس Con را مثلاً به آخر ماتریس Connect اضافه کنی که خب حد آرایه را داری، فقط کافیه بنویسی :
کد:
connect(rowNo,:,number)=con;
number شماره بعدته چون ماتریست چند بعدیه باید بدونی تو کدوم عمقی. rowNo هم که معلومه. حتی اگه بخوای وسط ماتریس بذاریش همون ایندکس مورد نظر را به شماره سطرت میدی :gol:

سئوال دومت هم ساده است. تو حلقه for یه if بنویس که اگر شمارنده مثلاً i شما برابر با ماکزیممی که باید بشه هست توش ماتریس را چاپ کنه. برای چاپش هم که مطمئناً میدونی باید اسمش رو بنویسی اما جلوش سمی کالون نذاری :gol:

امیدوارم مشکلت حل شده باشه. اگر هم درست متوجه نشدم ببخشید :)
 

prince.

عضو جدید
سلام
در رسم نمودار در متلب سوالی پیش امده که ممنون میشم راهنمایی کنید
دوتا نمودار خطی با شیب متفاوت دارم می خواستم این دو نمودار در نقاطی در محور عمودی که مشترک هستند شیب آنها جمع شود و ترکیب این دو را نشان دهد مشابه شکلی که گذاشتم:
چه دستوری برای این کار باید نوشت؟
ممنون میشم راهنمایی کنید

untitled.JPG
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
در رسم نمودار در متلب سوالی پیش امده که ممنون میشم راهنمایی کنید
دوتا نمودار خطی با شیب متفاوت دارم می خواستم این دو نمودار در نقاطی در محور عمودی که مشترک هستند شیب آنها جمع شود و ترکیب این دو را نشان دهد مشابه شکلی که گذاشتم:
چه دستوری برای این کار باید نوشت؟
ممنون میشم راهنمایی کنید

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

سلام
راستش اگر دستوری داشته باشه نمیدونم اما به نظرم راهش اینه که در ماتریس هر دو خط بگردید و نقاطی رو که y برابر دارند پیدا کنید. شیب دو نمودار را حساب کنی و جمعش که بدست اومد بین دو نقطه با y های برابر خطی با اون شیب ترسیم کنی.
البته شکل شما جابجایی هم داره. میتونی بعد از پیدا کردن نقاط مشترک، در صورتی که نمودار اول عقب تر هست، شیفتش بدی و بعد خط را رسم کنی :gol:
 

m-tlb

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

من در حال نوشتن یک برنامه ی طولانی در مطلب هستم و نیاز دارم که از دستوری مانند go to یا jump استفاده کنم ، مثلاً می خوام برنامه طوری باشه که از خط 100 به خط 150 بره و از این خط به بعد برنامه رو اجرا کنه.به دلیل طولانی بودن برنامه می خوام از حداقل توابع تو(for,while,...) استفاده کنم ، چطور می تونم در مطلب با توجه به این که دستور goto وجود نداره چنین کاری انجام بدهم( بهینه ترین حالت؟)


با تشکر
 

behnam5670

عضو جدید
کاربر ممتاز
سلام بر همه
من در حال نوشتن یک برنامه ی طولانی در مطلب هستم و نیاز دارم که از دستوری مانند go to یا jump استفاده کنم ، مثلاً می خوام برنامه طوری باشه که از خط 100 به خط 150 بره و از این خط به بعد برنامه رو اجرا کنه.به دلیل طولانی بودن برنامه می خوام از حداقل توابع تو(for,while,...) استفاده کنم ، چطور می تونم در مطلب با توجه به این که دستور goto وجود نداره چنین کاری انجام بدهم( بهینه ترین حالت؟)
با تشکر
سلام
دستور Goto بدترین دستور ممکن برنامه نویسی هست برای همین از زبان های جدید حذف شد
راه های زیادی برای جایگزینی وجود داره که بستگی به کدتون داره
مثلا شما به جای Goto یه شرط بذارین و دستورای خط 100 تا 150 رو داخل یه if قرار بدین که در صورت صادق بودن شرط اونا رو اجرا کنه و در غیر اینصورت بره خط 150
بازم می گم بستگی به برنامتون هم داره که احتمال داره مجبور باشین کدتون رو تغییر بدین؛ مثلا برخی متغیرها رو قبل از خط 100 تعریف و مقداردهی اولیه کنین و ...
 

..:: civil ::..

عضو جدید
سلام
میشه لطف کنید بگید چه طوری میتونم به یه تابع مقدار بدم؟؟
مثلا
p=sin(x
حالا توی یه حلقه for به x مقدار بدم مقادیرو بذارم توی یه ماتریس
یه جا توی help متلب دیدم دستور inline داره اینجوری تابعو تونستم معرفی کنم اما مقدار دهی به تابع رو بلد نیستم

ممنون
 

..:: civil ::..

عضو جدید
سلام
یه سوال دیگه میشه یه منحنی که رسم کردیم بعد بهش بدیم 3d بکشه؟؟؟

ممنون
 

SArA NaZ

عضو جدید
سلام یه سوال در مورد متلب دارم اگه کمک کنید ممنون میشم
اینم سوالشه:


برنامه ای بنویسید که ماتریسی دو ستونی را که مقادیر ستون اول آن نمرات دروس مختلف یک ترم یک دانشجو و مقادیر ستون دوم آن تعداد واحد هر یک ار آن دروس میباشد را از کاربر بگیرد و عملیات زیر را بر روی آن انجام دهد:1-محاسبه ی تعداد واحدها 2-محاسبه ی معدل ترم 3- نمایش نتایج با پیغام مناسب
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام یه سوال در مورد متلب دارم اگه کمک کنید ممنون میشم
اینم سوالشه:


برنامه ای بنویسید که ماتریسی دو ستونی را که مقادیر ستون اول آن نمرات دروس مختلف یک ترم یک دانشجو و مقادیر ستون دوم آن تعداد واحد هر یک ار آن دروس میباشد را از کاربر بگیرد و عملیات زیر را بر روی آن انجام دهد:1-محاسبه ی تعداد واحدها 2-محاسبه ی معدل ترم 3- نمایش نتایج با پیغام مناسب

دوست عزیز مشکل شما کجاست؟
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام
میشه لطف کنید بگید چه طوری میتونم به یه تابع مقدار بدم؟؟
مثلا
p=sin(x
حالا توی یه حلقه for به x مقدار بدم مقادیرو بذارم توی یه ماتریس
یه جا توی help متلب دیدم دستور inline داره اینجوری تابعو تونستم معرفی کنم اما مقدار دهی به تابع رو بلد نیستم

ممنون
بفرما خانوم مهندس
اين يه نمونه مقدار دهي به معادله است.
اين برنامه براي حل معادله نگاشته.خودم نوشتم
اول بايد متغير رو به صورت syms تعريف كني
بعد مثل خط هاي آخر بهش مقدار ميدي.

کد:
clear
clc
syms x
Z=input('mabdae mokhtasat ra vared konid\n');
T=input('noghat ra vared konid\n');
G=input('fasele nohgat ra vared konid=\n');
S=input('moadele neghasht=\n');
t1=(T(:,1)-Z(1));
t2=(T(:,2)-Z(2));
F=[t1 t2];
t=abs(F);
t1=max(max(F));
tul=2*t1;
f=inline(S);
X=(-tul/2):G:(tul/2);
for i=1:length(X)
    a1=complex(X(i),tul/2);
    a2=complex(tul/2,X(i));
    a3=complex(X(i),-tul/2);
    a4=complex(-tul/2,X(i));
    A1=f(a1);
    A2=f(a2);
    A3=f(a3);
    A4=f(a4);
    plot(real(A1),imag(A1),'-ro',real(A2),imag(A2),'--b*',real(A3),imag(A3),'-sk',real(A4),imag(A4),'-->')
    hold on
end
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام...
کسی می دونه چجوری تویه متلب باید هشدا بدم.... یعنی مثلا اگه جایی غلط بودش... مثل برنامه های اجرایی یه پنجره باز بشه و هشدار بده...
ممنون میشم راهنمایی کنید....
با تشکر...
با اين دستور از برنامه خارج ميشين

کد:
errordlg('Please enter correct info.','Error','modal');

با اين دستور فقط پيام مناسب داده ميشه
warning
براي استفاده از اين دستورات بهترين راه اينه كه از راهنماي متلب استفاده كنين
تو پنجره command window اين عبارت رو تايپ كنين راحت به جواب ميرسين
doc error
يا
doc warning
البته اين دستور پنجره help متلب رو باز ميكنه. براي اينكه تو همون پنجره command window جواب بگيرين اين دستور رو بنويسين
help error
يا
help warning
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
می خوام بدونم اون سوالی رو که گفتم چه طوری باید بنویسم.
سلام دوست عزيز
اول از همه بايد ماتريس رو تعريف كنين
('متن براي نمايش')=نام متغير
حالا بايد ستون دوم انتخاب بشه و جمع درايه هاش گرفته بشه (جمع تعداد واحدها)

کد:
[/B]
[B]sum(a(:,2))[/B]
[B]

براي محاسبه معدل هم كه ميدونين بايد نمره در تعداد واحدش ضرب بشه بعد همه اين حاصل ضرب ها با هم جمع بشن و تقسيم بر تعداد بشن
سخت ترين كار اين قسمت ضرب درايه هاست. مثلا اگه ماتريسي كه براي گرفتن نمره ها ازش استفاده كرديم a باشه داريم:
کد:
[/B]
a(:,1)*.a(:,2)
[B]
با اين كار يعني *. كه در اصطلاح ميگن ضرب نقطه اي تك تك درايه ها با درايه نظيرش ضرب ميشه
بقيه كار هم كه فكر نكنم مشكلي داشته باشه
موفق باشين;)

 

SArA NaZ

عضو جدید
سلام دوست عزيز
اول از همه بايد ماتريس رو تعريف كنين
('متن براي نمايش')=نام متغير
حالا بايد ستون دوم انتخاب بشه و جمع درايه هاش گرفته بشه (جمع تعداد واحدها)

کد:
[B]sum(a(:,2))[/B]

براي محاسبه معدل هم كه ميدونين بايد نمره در تعداد واحدش ضرب بشه بعد همه اين حاصل ضرب ها با هم جمع بشن و تقسيم بر تعداد بشن
سخت ترين كار اين قسمت ضرب درايه هاست. مثلا اگه ماتريسي كه براي گرفتن نمره ها ازش استفاده كرديم a باشه داريم:
کد:
a(:,1)*.a(:,2)
با اين كار يعني *. كه در اصطلاح ميگن ضرب نقطه اي تك تك درايه ها با درايه نظيرش ضرب ميشه
بقيه كار هم كه فكر نكنم مشكلي داشته باشه
موفق باشين;)



واقعا ممنون دوست عزیز و کمک بزرگی کردین.

بقیه کار رو هم بلدم مشکلی نیست
بازم ممنون
موفق باشید
 

..:: civil ::..

عضو جدید
سلام
ببخشید 2 بردار دارم که یه بردارم تمام اعدادش real هست
بردار دومم نصف اعداد real و نصف اعداد complex
حالا می خوام این ها رو رسم کنم
یه بردار اعداد محور x و یه بردار اعداد محور y

چیکار کنم چه طوری رسم کنم؟
ممنونم
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام
ببخشید 2 بردار دارم که یه بردارم تمام اعدادش real هست
بردار دومم نصف اعداد real و نصف اعداد complex
حالا می خوام این ها رو رسم کنم
یه بردار اعداد محور x و یه بردار اعداد محور y

چیکار کنم چه طوری رسم کنم؟
ممنونم

تا اونجا كه قد رياضي من ميكشه نميشه اعداد موهومي و حقيقي رو در يك نمودار نشون داد
اعداد موهومي رو روي نمودار RI (حقيقي - موهومي) نشون ميدن(هر عدد يه نقطه در اين نموداره)
براي اينكه بخواين اين ها رو رسم كنين فكر كنم بهتره قسمت حقيقي داده ها رو تشكيل بدين و نمودار XY رو رسم كنين
شرمنده ديگه از اين بيشتر سوادم قد نميده مهندس جان
:redface:
 

..:: civil ::..

عضو جدید
تا اونجا كه قد رياضي من ميكشه نميشه اعداد موهومي و حقيقي رو در يك نمودار نشون داد
اعداد موهومي رو روي نمودار RI (حقيقي - موهومي) نشون ميدن(هر عدد يه نقطه در اين نموداره)
براي اينكه بخواين اين ها رو رسم كنين فكر كنم بهتره قسمت حقيقي داده ها رو تشكيل بدين و نمودار XY رو رسم كنين
شرمنده ديگه از اين بيشتر سوادم قد نميده مهندس جان
:redface:

:(
اما چیکار کنم من!!! استادم گفته میشه برو بکش!
کسی راه حلی به ذهنش نمیاد؟
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
:(
اما چیکار کنم من!!! استادم گفته میشه برو بکش!
کسی راه حلی به ذهنش نمیاد؟

مهندس جان داده هاتو يا برنامتو بذارين ببينيم كسي ميتونه كمك كنه يا نه.
درضمن اگه برنامه رو خواستين قرار بدين داخل تگ كد بذارين كه راحت تر بشه ازش استفاده كرد;)
 

..:: civil ::..

عضو جدید
سلام
کسی مینتونه به من بگه من چه جوری به این کد بگم که اگه تعداد iter ها بیش از 40 شد برگرد اول while و با t=10 وهمون lp که نتونست با کمتر از 40 تا iter ادامه بده حلقه while رو بره؟؟
الان تو کد این پایین من فقط بهش گفتم اگه iter>40 شد اصلا ول کن بیا بیرون!
کد:
clc
clear all

tol = 0.0001;

lw = 1;

L=10;
i=1;

LW=zeros(100,1);
for lp=0:4:100
    lp
   error = 1;
   iter=0;
   t=20;
    while error>tol
        
        iter = iter+1;
        
       syms lw;
       
        beta=(sqrt((lp/2)^2+lw^4)-lp^2/2)^0.5;
        alfa=(sqrt((lp/2)^2+lw^4)+lp^2/2)^0.5;
        
        Flamdaw=(2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L)));
        gx=diff((2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L))),lw);
        
        ff=inline(Flamdaw);
        gg=inline(gx);
        
        h=ff(t);
        p=gg(t);
        
%         h=subs(Flamdaw,lw,t);
%         p=subs(gx,lw,t);

        lwnew=t-(h/p);
        
        error=abs(t-lwnew);
        
        t=lwnew;
        if iter> 40
            break
        end
    end
    iter
    LW(i,:)=t;
     i=i+1;
end
LW
lمرسی
 
آخرین ویرایش:

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام
کسی مینتونه به من بگه من چه جوری به این کد بگم که اگه تعداد iter ها بیش از 40 شد برگرد اول while و با t=10 وهمون lp که نتونست با کمتر از 40 تا iter ادامه بده حلقه while رو بره؟؟
الان تو کد این پایین من فقط بهش گفتم اگه iter>40 شد اصلا ول کن بیا بیرون!
کد:
clc
clear all

tol = 0.0001;

lw = 1;

L=10;
i=1;

LW=zeros(100,1);
for lp=0:4:100
    lp
   error = 1;
   iter=0;
   t=20;
    while error>tol
        
        iter = iter+1;
        
       syms lw;
       
        beta=(sqrt((lp/2)^2+lw^4)-lp^2/2)^0.5;
        alfa=(sqrt((lp/2)^2+lw^4)+lp^2/2)^0.5;
        
        Flamdaw=(2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L)));
        gx=diff((2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L))),lw);
        
        ff=inline(Flamdaw);
        gg=inline(gx);
        
        h=ff(t);
        p=gg(t);
        
%         h=subs(Flamdaw,lw,t);
%         p=subs(gx,lw,t);

        lwnew=t-(h/p);
        
        error=abs(t-lwnew);
        
        t=lwnew;
        if iter> 40
            break
        end
    end
    iter
    LW(i,:)=t;
     i=i+1;
end
LW
lمرسی
متاسفانه الان رو اين سيستم متلب ندارم كه تست كنم ولي با توجه به برنامه و توضيحاتي كه دادين فكر كنم اگه بعد از while يه if تعريف كنين كارتون راه بيفته
يعني اينطوري
while error >tol
if iter>40
t=10;
end

 

..:: civil ::..

عضو جدید
متاسفانه الان رو اين سيستم متلب ندارم كه تست كنم ولي با توجه به برنامه و توضيحاتي كه دادين فكر كنم اگه بعد از while يه if تعريف كنين كارتون راه بيفته
يعني اينطوري
while error >tol
if iter>40
t=10;
end


سلام
نه آخه اون iter بعد از اینکه یه بار با t=20 بره بدست می آد بعد که رفت الان iter من 41 هست فرضا اما! اما الان من داخل for هستم پس وقتی میاد بالا lp ، lp قبلی نیست زیاد تر میشه !
مگر اینکه بگم lp=lp-4!
آره؟
حالا اگه باز بخوام بگم باز این دفعم اگه جواب نداد همین تکرارو با t=25 حل کن!
الان چی؟
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام
نه آخه اون iter بعد از اینکه یه بار با t=20 بره بدست می آد بعد که رفت الان iter من 41 هست فرضا اما! اما الان من داخل for هستم پس وقتی میاد بالا lp ، lp قبلی نیست زیاد تر میشه !
مگر اینکه بگم lp=lp-4!
آره؟
نه با اين كار فقط يك بار با lp دلخواهتون كار ميكنه.وقتي برگرده به for باز lp تغيير ميكنه طوري كه انگار اصلا اين فرمان رو بهش ندادين
مثلا lp بوده 12 وقتي اين فرمان رو ميدين ميشه 8 و حلقه رو طي ميكنه وقتي به for ميرسه بجاي اينكه بشه 12 ميشه 16
بذارين تا فردا فكر كنم اگه به جوابي رسيدم بهتون ميگم
 

reynolds_nike

عضو جدید
کاربر ممتاز
با سلام.از دوستان کسی هست که برنامه معادله موج رو داشته باشه؟؟؟
 

amir ghasemiyan

مدیر بازنشسته
کاربر ممتاز
سلام
نه آخه اون iter بعد از اینکه یه بار با t=20 بره بدست می آد بعد که رفت الان iter من 41 هست فرضا اما! اما الان من داخل for هستم پس وقتی میاد بالا lp ، lp قبلی نیست زیاد تر میشه !
مگر اینکه بگم lp=lp-4!
آره؟
حالا اگه باز بخوام بگم باز این دفعم اگه جواب نداد همین تکرارو با t=25 حل کن!
الان چی؟
كل كد رو برات ميذارم
اميدوارم مشكلي پيش نياد
جواب دو تا سوالتون رو با هم دادم.فرض كردم اگه iter بيشتر از 45 كه شد t=25 بشه و حل كنه

کد:
clc
clear all

tol = 0.0001;

lw = 1;

L=10;
i=1;

LW=zeros(100,1);
for lp=0:4:100
    lp
   error = 1;
   iter=0;
   t=20;
    while error>tol
    if iter>40
    t=10;
        end
    if iter > 45
    t=25;
    end
        iter = iter+1;
        
       syms lw;
       
        beta=(sqrt((lp/2)^2+lw^4)-lp^2/2)^0.5;
        alfa=(sqrt((lp/2)^2+lw^4)+lp^2/2)^0.5;
        
        Flamdaw=(2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L)));
        gx=diff((2*lw^4+(2*lw^4+lp^4)*(cos(alfa*L))*(cosh(beta*L)))- (lw^2*lp^2*(sin(alfa*L))*(sinh(beta*L))),lw);
        
        ff=inline(Flamdaw);
        gg=inline(gx);
        
        h=ff(t);
        p=gg(t);
        
%         h=subs(Flamdaw,lw,t);
%         p=subs(gx,lw,t);

        lwnew=t-(h/p);
        
        error=abs(t-lwnew);
        
        t=lwnew;
        
    end
    iter
    LW(i,:)=t;
     i=i+1;
end
LW

 

Similar threads

بالا