JU JU 7,193 ارسال شده در 21 فروردین 1389 ْسلام دوستان در این تاپیک قصد دارم، داریم به آموزش مقدماتی این برنامه - matlab - بپردازیم در مرحله اول بصورت مقدماتی این مهم رو انجام میدیم و سپس در آیندهای نزدیک سعی در پیشرفته شدن اون داریم این پست، تنها استارت و شروع این موضوع بود تا بتونیم به کمک هم این مهم رو ادامه بدیم لازم به ذکر هستش که این نرم افزار، از نرم افزارهای مهم هستش و یادگیری اون از نظر من به شدت ضروری هستش با آرزوی موفقیت برای تمام دوستان پ.ن: جا داره که از دوست خوبم تشکر کنم ( مدیریت تالار مهندسی شیمی :wubpink: ) 12 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 22 فروردین 1389 با سلام از امروز سعی میکنم که هر روز یه سر بزنم و گام به گام با هم برای آموزش پیش بریم در مرحله اول از کتاب essential matlab for engineering استفاده میکنم و بعد از تموم شدنش سراغ یه کتاب دیگه میریم همونطور که از اسمش پیداست مطالب مهم رو گفته و برای آموزش متوسطه مفیده از همین الان شروع میکنیم 8 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 22 فروردین 1389 ممنون میشم که این PDF رو دانلود کنید، چندی پیش اون رو در سایت مهندسان قرار دادم و به همین دلیل پس زمینه اون رو داره، پس لطفن اینجانب رو به دلیل این مهم ببخشین محتوای مخفی برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید. ==> در اینجا به طور خیلی خلاصه در مورد این برنامه گفته شده و شما رو با برنامه متلب آشنا کرده و گفته که کاربردش چیه ( به طور مختصر ) به ادامه بحث میپردازیم در آموزش ابتدایی شما رو با این برنامه آشنا میکنیم و دستورات خیلی خیلی سادهای رو وارد میکنیم ( فرض کردیم که در این تاپیک افرادی حضور پیدا میکنن که برای اولین بار برنامه matlab رو اجرا میکنند ) بعد از اجرای برنامه matlab، در قسمت command window، شما قادر به وارد کردن دستورات خود هستید خوب همهی شما تا الان با علم حساب آشنایی پیدا کردین، با ماشین حساب یا روی کاغذ یا در ذهن فرمولهایی رو حل کردین و جوابهایی بدست آوردین، حال این رو در برنامه matlab تجربه میکنیم در command window دستورات خیلی ساده رو وارد کنید مثال: >> 5+3 <Enter>>> 5-3 <Enter>>> 5^3 <Enter>>> 5*3 <Enter>>> 6/3 <Enter>>> 6\3 <Enter> خوب به چه نتایجی رسیدید ؟ جالب بود؟ من در مرحله اول که امتحان کردم برام خیلی جالب بود، یه ماشین حساب آماده! قبلن در c++ یه همچین چیزی طراحی کردم، و الان بدون دردسر جلومه! علامت ^رو که متوجه شدین چیه ؟ wow، دو نتیجه متفاوت، دو مورد آخر رو میگم، تفاوتشون رو حس کردین؟ ( پس برای خودتون این مهم رو به یاد داشته باشین یا یادداشت کنید ) حال >> 5.*3 <Enter>>> 5./3 <Enter>>> 5.^3 <Enter> علامت نقطه قبل از *،/ و ^ قرار میگیرد و در این مثال، در واقع تغییری در نتایج ایجاد نمیکنه، چون یه واحد بیشتر نداریم، ولی در آینده که آرایه داشتیم، متوجه تفاوتها میشین در مثالهای بالا با علامت -- حال به قسمت بعد میریم امتحان کنید ... >> a=7 <Enter>>> b=3<Enter>>> c=a+b <Enter> خوب در اینجا، شما در واقع a رو برابر با 7 قرار دادین و بقیه رو هم همینطور توجه کنید که بعد از هر اجرا، متلب نتایج حاصله رو نمایش میده، اگه دوست دارین در زمانی که دوست داشتین متلب با دستور شما نتایج رو نمایش بده، بعد از پایان هر دستور، از ; استفاده کنید و همینطور میتونید دستورات رو پشت سر هم نیز بنویسین به این صورت >> a=7;b=3; <Enter> >> c=a+b <Enter> اگر دوست داشتید مقدار a رو به نمایش بگذارید، کافیست a رو تایپ کنید و سپس enter بزنید توجه داشته باشید که مقدار a تا زمانی 7 باقی میمونه که شما اون رو تغییر نداده باشید پ.ن: تا آموزش بعدی، لطفن این بخش رو حسابی تمرین کنین، هر چند ساده ولی یادگیریش مهمه :mornincoffee: 8 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 23 فروردین 1389 به ادامه بحث میپردازم -- برنامه matlab دستورات عمومی ریاضی رو داره و شما نیاز به برنامهنویسی برای اونها ندارین مانند log به معنی لگاریتم طبیعی، و sin و cos و غیره که در آینده در مورد آنها بحث میکنیم برای مثال میتونید در command window محاسباتتون رو انجام بدین اگر در command window دستور pi رو وارد کنید، برای شما حاصلی رو نشون میده که بارها و بارها در ریاضیات با اون سر و کار داشته باشید، حاصل عبارت است از 3.14 با نمایشی بیشتر و اگر از دستور sqrt استفاده کنید، برای شما جذر میگیرد ( این دستور رو قبلنا در زبانهای دیگه هم مورد استفاده قرار دادید )، Try that >> sqrt (4) <Enter> پ.ن 1: دوستان به این نکته توجه داشته باشید که هر دستوری تا اینجا گفته میشه فقط جهت آشنایی شما با برنامه مطلب هستش و در فصلهای آینده به طور تخصصیتر دستورات رو بررسی میکنیم، ولی بهتر این هستش که شما در این بخش و بخشهای مشابه، تمامی دستورات رو یاد گرفته و تمرین کافی رو انجام بدین، چون تنها با تمرینه که یه برنامه نویس خوب میشین ( البته الگوریتم یادتون نره ) اگر شما حاصل sin(x) رو در متلب بخواهین، برای شما به صورت رادیان نمایش میده که برای تبدیل اون به درجه، بایستی در pi/180 ضرب کنید، به این صورت sin(x*pi/180) و اما دستور exp(x) که شما به وفور در مباحث درسی باهاش برخورد کردین، خوب امتحان کنین ببینین به چه نتایجی میرسید، میتونید به جای x مقدار بزارید یا اینکه x رو قبلن تعریف کرده باشید خوب متوجه شدید که عبارت "pi" و یا امثالهم که در برنامه matlab از پیش تعریف شدهاند، اگر برای اونها مقادیری تعریف کنیم، مقدار اولیه خود رو از دست میدهند برای مثال میتونیم بنویسیم pi=4 و از این به بعد مقدار pi برابر 4 میشه ولی برای اینکه این عبارت پاک بشه بایستی از عبارت clear استفاده کنید >> clear pi>> clear عبارت اول فقط مقدار pi رو پاک میکنه و مقدار پیشین رو جایگزین میکنه، اما اگر clear رو به تنهایی وارد کنیم، کلیه عباراتی رو که تا کنون وارد کردیم پاک میشه و اما اگر clc رو وارد کنیم، بخش command window پاک شده و شما صفحهی تر و تمیزی خواهید داشت میتونید امتحان کنید، همین الان و حال میرسیم به بخش بردارها فقط تمرین کنید و تفاوت رو احساس x=1:10y=1:0.5:10 ( تا اینجا رو داشته باشید، و سعی کنید به خوبی این بخش رو تمرین کنید، فردا با توضیحات بیشتر میام ):wubpink: 8 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 24 فروردین 1389 >> E=0:10; <Enter> این یک بردار خطی هستش، مابین : نیازی به گذاشتن فاصله نیست، حال با تایپ E در خط بعد، میتونید حاصل رو ببینید و نتیجه رو برای خودتون یادداشت کنید، مقدار افزایش در این صورت یک واحد هستش حال اگر بخواهید مقدار افزایشی یا کاهشی رو تغییر بدین به صورت زیر عمل میکنید >> y=0:-0.5:5; <Enter>>> x=0:0.5:5; <Enter> حال به مثال زیر دقت کنید >> x=0:10; <Enter>>> y=2.*x; <Enter>>> w=y./x; <Enter>>> z=sin(x); <Enter> برای اینکه نتیجه رو مشاهده کنید کافیست و تنها کافیست که هر کدام از دادهها رو وارد کرده و enter بزنید تا نتیجه حاصله رو ببینید y عدد 2 رو در هر یک از اعداد x ضرب کرده، و w هر یک از دادههای y رو روی همان داده ( در سطر و ستون یکسان ) از x، تقسیم کرده ( حال پی به کاربرد مهم " . " بردین؟ اگه نه بعدن متوجه خواهید شد ) z رو هم من باید بگم؟ خوب نتیجه رو یادداشت کنید به مثال زیر دقت کنید >> x=0:0.1:10; <Enter>>> z=sin(x); <Enter>>> plot(x,z),grid <Enter> و حال گراف در پنجرهای جدید به نمایش گذاشته میشه، شما میتونید command window OR figure window رو با کلیک کردن انتخاب کنید. grid همونطور که از معنیش پیداست، برای شطرنجی کردن هستش، شما در مثال بالا میتونید اون رو حذف کنید و نتیجه رو مشاهده کنید و دستور plot(x,y) نیز برای گرافهای دوبعدی به کار میره که روشش رو بالا گفتیم و در بخشهای مربوطه به طور کاملتر توضیح خواهیم داد اما یه سری نمودارها هست که ما با اونها سروکار داریم و اونها رو در ریاضیات به طور گسترده دیدم، مانند sinx یا tanx و غیره اونها در برنامه matlab هم موجوده و ما میتونیم براحتی با دستور ezplot رسمشون کنیم >> ezplot('sin(x)') <Enter>>> ezplot('tan(x)') <Enter>>> ezplot('x') <Enter> استفاده از علامت ' ضروریست و به این نکته هم توجه کنید که دامنه x بینهایت هستش و اون چیزی نیست که شما در گذشته تعریف کردهاید ( برای دستور ezplot ) لطفن از دستور clear استفاده کنید تا تمامی اطلاعاتی رو که ثبت کردهاید پاک شوند ( برای ادامه کارمون ) میخواهیم مقدار x و y رو در عبارات، x+2y=4 و 2x-y=3 محاسبه کنیم، دو جمله دو مجهول خوب براحتی قادر خواهید بود اون رو توی کاغذ حل کنید، ولی در برنامه چی؟ حل میکنیم: >> a=[1 2;2 -1];>> b=[4;3];>> A=a\b result: A= 2 , 1 به این معنی که x=2 & y=1 نکته: حروف بزرگ و کوچک در برنامه با هم متفاوت هستند نکته: بین اعدا ماتریس حتمن فاصله بگذارید، و علامت " ; " بعد از پایان هر سطر بکار میرود و بعد از آن به سطر بعدی خواهیم رفت، بجای این علامت میتوانید از Enter استفاده کنیم روش حل دیگر استفاده از دستور solve هستش که این دستور محدودیتهایی رو نیز به دنبال داره ( این محدودیتها در برنامههای پیچیدهتر به نمایش گذاشته میشه ولی در اینجا برای نمونه اون رو به نمایش میگذاریم ) [x,y]=solve('x+2*y=4','2*x-y=3') آیا نتیجه درست است؟ چک کنید! >> x+2*y % should give ans = 4 <Enter>>> 2*x-y % should give ans = 3 <Enter> علامت % درصد هیچگونه تغییری در دستورات به وجود نمیاورد و تنها برای تعاریف بکار میرود، در برنامه matlab پس از استفاده از این علامت، رنگ نوشتهی شما تغییر خواهد کرد :mornincoffee: 6 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 27 فروردین 1389 شما میخواهید این برنامه رو بخوبی یاد بگیرین؟ خوب باید به صورت روزمره ازش استفاده کنید شما الگوریتمی در درس ترمو میبینید، اون رو در اینجا رواج بدین و سعی کنین با این برنامه حلش کنین >> edit <Enter> این دستور رو تایپ کنید، پنجرهای جدید باز میشه همونطور که باید تا کنون متوجه شده باشید، شما بعد از enter زدن در یک سطر و رفتن به سطر دیگه، قابل به ویرایش اون سطر و دستورات نیستید و اگه اشتباهی رخ داده باشه، مجبورید کار رو از ابتدا پیش ببرید ولی با دستوری که امروز گفتیم و پنجره جدیدی که باز شد، شما میتوانید به راحتی دستورات خود رو وارد کنید، بدون اینکه اونها اجرا بشن، همینطور براحتی قابل ادیت هستند شما میتونید برای امتحان کردن دستورات خود، از گزینههای copY , Cut , & paste استفاده کنید که بارها و در تمامی برنامهها ازش استفاده کردهاید در بخش command window شما میتوانید مانند پنجره edit فعالیت کنید، با این تفاوت که بجای enter از shift + ENter OR CTRL+Enter استفاده کنید،هرچند کماکان قابلیت edit ترجیح داده میشه. فرض کنید شما 1000$ رو در بانکی پسانداز کردین، و سود سالیانه بانک 9 درصد هستش. بعد از یک سال پول شما به چه مقدار خواهد رسید؟ ( این محاسبات رو در برنامه متلب انجام میدیم ) ابتدا با وارد کردن دستور edit در command window وارد پنجره edit شده و محاسبات رو انجام میدیم نکته: برای انجام هر محاسبهای بایستی ابتدا الگوریتم حل رو بنویسیم، و یا اگر پیچیده بود مسایل، اون رو روی کاغذ حل کرده ( همراه با الگوریتم ) و سپس اون رو به صورت جامعتر وارد برنامه matlab میکنیم الگوریتم حل این مثال: 1- ابتدا مقدار پول پساندازی رو وارد میکنیم ( وارد کردن دادهها ) 2- مقدار درصد سالیانه رو محاسبه کنید 3- مجموع پول اضاف شده و پول اولیه رو محاسبه کنید 4- نمایش دادن محاسبات پایانی! وارد کردن مسئله در برنامه balance=100; rate=0.09; interest=rate*balance; belance=balance+interect; disp('new balance: '); disp(balance); اگر این محاسبات رو در command window قرار بدین ( با استفاده از دستور کپی )، نتیجه محاسبات رو خواهید دید! دستور جدیدی مشاهده کردید، disp برای اینکه نحوهی استفاده از این دستور و دستور help رو همزمان یاد بگیرید اینگونه عمل میکنیم >> help disp <Enter> این دستور رو در command window وارد کنید DISP Display array. DISP(X) displays the array, without printing the array name. In all other ways it's the same as leaving the semicolon off an expression except that empty arrays don't display. If X is a string, the text is displayed. نتیجه به صورت بالا نمایش داده میشه و توضیحات اون نیز داده شده، هر چند در خود مثال براحتی پی بردید که دستور disp چگونه کار میکنه حال برای این ساعت تموم میکنیم آموزش رو قصد خروج از برنامه رو داریم قبلن پی بردین که clear و clc چگونه عمل میکنند و این رو نیز بدونید که با وارد کردن دستور quit یا exit برنامه بسته میشه پس وارد میکنیم >>clear <enter>>>clc <enter>>>quit <enter> پ.ن: تا کنون هیچ برنامهای رو save نکردهایم 8 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 27 فروردین 1389 >> متلب بر اساس ماتریس پایه گزاری شده است، پس یادگیری دقیق ماتریسها لزومیست >> برای استفاده از متلب کافیست عبارات و دستورات رو در command window تایپ و سپس بلافاصله اجرا خواهند شد >> quit OR exit باعث بسته شدن نرمافزار میشوند >> با وارد کردن clc بخش command window رو پاک خواهید کرد >> برای استفاده بهتر از دستورات، دستور help به شما کمک شایانی خواهند کرد >> دستور plot یک گراف دو بعدی x و y رو در بخش figure window به نمایش خواهد گذاشت >> با استفاده از دستور grid میتونید صفحه نمایش رو شطرنجی کنید ( در figure window ) ------ در اینجا بخش introduction به پایان رسید، خسته نباشید :wubpink: 6 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 30 فروردین 1389 از اسم MATLAB شروع میکنیم MATLAB ==> MATrix LABoratory بخشهایی که در این دوره گفته میشه - متغیرها - بردارها و ماتریسها - ورودی و خروجیها - حلقهها با استفاده از دستور for - شرط if **** variables - شامل تمامی حروف و اعداد همراه با underscore ( _ ) - حتمن بایستی با یک حرف الفبا شروع شود نکته: بزرگ و کوچک بودن حروف با هم متفاوت هستند پ.ن: توجه داشته باشید که برنامه متلب به طور پیشفرض متغیرهایی رو اختیار کرده، از اون متغیرها استفاده نکنید و اگر استفاده کردید، میتونید با استفاده از دستور clear اونها رو پاک کنید دستور who : این دستور تمامی متغیرهایی رو که تا کنون وارد کردین به نمایش میگذاره Array: vectors and matrices x=[1 3 0 -1 5] شما یک بردار سطری با 5 جز ساختید، اگر در انتهای دستور از علامت ; استفاده کردید، در همان لحظه x به نمایش گذاشته نمیشود و برای به نمایش در امدن آن از دستور زیر استفاده کنید disp(x) به جای استفاده از سspace میتونید از کاما استفاده کنید a=[1,2,3] و هرگز فراموش نکنید استفاده از کاما یا space رو، برای مثال، مثال زیر رو امتحان کنید این دستور بدون استفاده از کاما یا space جاگذاری شده x=[45-12] a=[1 2 3]; b=[4 5]; c=[a -b]; a=[a 0 -1]; نتیجه را ببینید و بررسی کنید * شما قادر به استفاده از یک بردار درون بردار دیگر نیز هستید x=[ ] این یک بردار خالیست، و خالی بودن به معنای صفر بودن نیست * حتمن براکت رو ببندید * اجزا در بردارها بایستی به وسیله کاما یا space از هم جدا شوند عملگر : شما میتوانید به وسیله : یک بردار بسازید x=1:10 x=1:0.5:4 x=10:-1:1 x=0:-2:5 x=1:0 عملگر linspace linspace(0,1,10)linspace(0,3,10)linspace(0,1,5) نتیجه چه شد؟ در مقدار اول را در نظر میگیرد و به مقدار سوم تقسیم میشود. برای مثال اول، مقدار 0 تا 1 را به 10 قسمت مساوی تقسیم میکند و برای دیگر مثالها به همچنین :mornincoffee: پ.ن: همانطور که میبینید به طور خلاصه در گذشته در این موارد مثال آوردیم، به همین طریق پیش میرویم و سپس به طور متوسطه و سپس پیشرفته به مسایل میپردازیم 6 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 18 اردیبهشت 1389 با سلام در ابتدا از اینکه تاخیر داشتم عذر میخوام و حال نسبت به اینکه برنامه متلب روی سیستم در حال حاضر نصب نیست، جهت ادامه تاپیک، فقط بصورت کوتاهی این تاپیک رو ادامه میدم و در روزای آینده جبران میکنم شرمنده نبودم :wubpink: Transposing Vectors تا کنون فقط بردارهای خطی رو دیدین، با چند سطر یا ستون اگه بخواین بردار رو ستونی کنین از این علامت استفاده میکنیم x=1:5' y=[1 4 8 0 -1]' برای x ، شما در واقع x رو به صورت ستونی نمایش دادهاید ولی خود x در حالت واقعی خودش باقی می مونه. و برای y، شما یه بردار ستونی رو تشکیل دادهاید subscripts اینجا یه سری دستورات رو نمایش میدهیم که با تکرار و تمرین اونا رو یاد میگیرین و با اونا میتونید بردار بسازید 1. r=rand(1,7)2. r(3)3. r(2:4)4. r(1:2:7)5. r([1 7 2 6])6. r([1 7 2])=[] نکته: شماره گذاری جهت توضیحاتی هستش که اینجا میگم، نیازی نیست اونا رو توی برنامه وارد کنید 1- این دستور یه شما یک بردار خطی با 7 مقدار که به طور رندم انتخاب شده میدهد 2- این دستور سومین مقدار از دستور قبل رو به نمایش میگذاره، 3 یک subscript هستش 3- این دستور دومین، سومین و چهارمین مقدار دستور اول رو به نمایش میگذاره 4- چه چیزی مشاهده میکنید ؟ 5- تلاش کنید و نتیجه رو مشاهده کنید 6- شما با استفاده از یک بردار خالی، قادر به حذف پارامترهای دستور اول هستید، هر کدوم رو که انتخاب کنید چون خودم برنامه رو نصب نکردم و الان هم خسته هستم، بحث ناتموم مونده از قبل رو اینجا تموم میکنیم و در روزای آینده به ادامه ماجرا میپردازیم درس جلسه بعد در مورد ماتریسها خواهد بود 6 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 25 اردیبهشت 1389 ماتریس یک ماتریس میتونه شامل سطر و ستون باشه، همینطور قابل استفاده از ترانهاده نیز میباشید >> a=[1 2 3;4 5 6]>> a' حرکت عمودی گرانشی (مثال) شما سنگی دارین که تحت نیروی گرانش و و با سرعت V حرکت میکنه y و t هم به ترتیب مکان و زمان هستند فرمول زیر رو همگی در فیزیک به یاد دارید y=Vt - g(t^2)/2 g همون 9.8 برابر با نیروی گرانش هستش! قصد داریم y رو در یک گراف به مقدار 12.3 ثانیه و به فواصل 0.1 ثانیه رسم کنیم الگوریتم کلی 1. % Assign the data [color=Red](g, V and t)[/color] to MATLAB variables.2. % Calculate the value of s according to the formula.3. % Plot the graph [color=Red]y[/color] against [color=Red]t[/color].4. % STOP محاسبه بسیار سادهست، اما خوب شما اندکی تازهکار هستید، این مثال رو براتون حل میکنم و در هر بخش مربوطه، توضیحات مربوطه رو براتون قرار میدم ( همراه با % ) >> % Vertical motion under gravity>> g=9.8; % acceleration due to gravity>> V=60; % initial velocity (meters/sec)>> t=0:0.1:12.3; % time in seconds>> y=V*t-g/2*t.^2; % vertical displacement in meters>> plot(t,y);>> title(' vertical motion under gravity');>> xlabel('time')>> ylabel('vertical displacement')>> gride>> disp([t' y']) % display a table به نظر میرسه که تمامی نکتهها رو قبلن گفتم و هم اکنون نیازی به بازگو کردنش نیست. با وارد کردن دستورات بالا، حتمن پی به نکتههای موجود خواهید برد روز خوش :mornincoffee: 5 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
حـامد 584 ارسال شده در 25 اردیبهشت 1389 سلام بر جاوید عزیزم خیلی خوشحالم که اینجا میبینمت 2 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
Mehdi.Aref 26,722 ارسال شده در 25 اردیبهشت 1389 کارت بسیار عالیه و جای تقدیر داره 3 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 25 اردیبهشت 1389 تصاویر زیر رو ببینید، خودش معلومه دیگه ! colon ( : ) کمترین حق تقدم رو داراست و علامت ترانهاده دارای بالاترین حق تقدم میباشد با استفاده از پرانتز قادر به کنترل حق تقدمها هستید فکر نکنم دیگه راجع به این جداول نیازی به صحبت باشه، هر چند در آینده به وفور از تمامی این دستورات استفاده خواهیم کرد در جدول بالا چهار دستور رو مشاهده میکنید، با توضیح مربوطه ! خوب همونطور که در قبل گفته شد، dot باعث میشه که عملیات جز به جز صورت بگیره ( element by element ) >> a=[2 4 8];>> b=[3 2 2];>> a .* b>> a ./ b 7 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 27 اردیبهشت 1389 disp از این دستور جهت نمایش گذاشتن خروجیها استفاده میشه شکل کلی استفاده از این دستور بصورت زیر هستش: disp ( Variable ) وقتی به شیوه بالا استفاده میکنید، در واقع مقدار variable رو نشون میده و خود کلمه variable رو به نمایش نمی زاره، ولی اگه نیاز داشتید یک نوشته رو به نمایش بگذارید، طرفین نوشتارتون، از ' استفاده میکنید دستور زیر رو در متلب وارد کنید disp( ' Sali said, ' ' who is this ? ' ' ' ) :4chsmu1: disp( ' ans is ' ) امیدوارم با تمرین این موضوع، به جایگاه اصلی ' پی ببرید دستور زیر رو ببینید، و در مورد این مهم دقت کنید x=2;disp( [' the answer is ', num2str(x)]) the output should be the answer is 2 در طی سه جلسه آینده، به موضوعات مهمی میپردازیم که از نظر من، اصول هر برنامهنویسی، روی اونها برنامه ریزی شده، و یادگیریشون خیلی مهم هستش با یادگیری بخشهای آینده، مهارت ویژهای در برنامهنویسی کسب خواهید کرد، هرچند که مقدماتی باشه 5 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 1 خرداد 1389 Repeating with for تا کنون با نحوه وارد کردن داده به برنامه آشنا شدهاید و همینطور نحوهی گرفتن جواب، در این بخش به طور مختصر در مورد دستور for که برای تکرار بکار میره بحث میکنیم برای شروع، گروههای زیر رو وارد برنامه کنید و نتیجه رو ببینید >> for i=1:5, disp (i), end <ENTER> >> for i=1:3, disp (i), end <ENTER> >> for i=1:0, disp (i), end <ENTER> از ; استفاده نکنید تا بتونید نتیجه رو بلافاصله پس از Enter زدن مشاهده کنید خوب نتایج رو به خاطر بسپارید و نتیجه گیری رو برای دستور for یادداشت کنید به مثال زیر توجه کنید Factorials n!= 1 * 2 * 3 * (n-1) * n قرار هستش برنامهای بنویسیم که n رو از ورودی خونده، سپس فاکتوریل اون رو محاسبه کنه، شیوه حل فاکتوریل رو نیز در بالا گفتیم به سراغ برنامه برویم ( خداییش توی هر برنامه نویسی که آموزش میدن، این رو حتمن به عنوان مثال خواهند گفت :دی ) >> n=10; >> fact = 1; >> for k=1:n fact=k*fact; disp ( [k fact] ) >> end نیازی به توضیح هست؟ در مرحله اول مقدار n رو 10 گذاشتیم، و مقدار اولیه فاکتوریل رو 1، تکرار رو شروع میکنیم، k از یک تا n جلو میره، در هر مرحله، مقدار فاکتوریل رو در k ضرب میکنه و در فاکتوریل ذخیره میکنه، و سپس اون رو به صورتی که میبینید نمایش میده، البته توجه داشته باشید که قادر خواهید بود شیوه نمایش رو تغییر بدین شیوه کلی استفاده از دستور for for index=j:k statements end [b][color=Red] OR[/color][/b] for index=j:m:k statements end نکات زیر رو به یاد داشته باشید 1. j:k برداریست که در هر مرحله، یک واحد بهش اضاف میشه 2. j:m:k برداریست که در هر مرحله، m واحد به اون اضاف میشه استفاده از دستور for در یک سطر شیوه کلی استفاده رو قبلن دیدین، الان نیز بازگو خواهیم کرد for index=j:m:k, statements, end هرگز کاما رو فراموش نکنید و تا زمانی که از دستور end استفاده نکردهاید، برنامه منتظر اجرای این دستور باقی میمونه استفاده از دستور sum n=1:10000; s=sum(n); disp(s) علامت sum رو توی ریاضی یادتون هست؟ همون که مجموع رو محاسبه میکنه، این دستور همونه ادامهی بحث در جلسهی آینده:mornincoffee: 6 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 9 خرداد 1389 با سلام بابت تاخیر افتادن بین جلسات عذر میخوام :wubpink: امروز هم راجع به یه سری مباحث حرف میزنیم که قطعن گذشته باهاش آشنا شدهاین استفاده از دستور rand دستور rand، یک عدد تصادفی رو بین 0 تا 1 انتخاب میکنه، مثال زیر رو دنبال کنید >> r=rand;>> if r>0.5 disp ( ' greater indeed ' ) , end یه نکته خیلی جالب، عبارات زیر رو وارد کنید تفاوت false و true رو ببینید >> 2>3>> 3>2 بایستی نتیجه رو به صورت 0 و 1 مشاهده کنید. بله، 0 به نشانه اشتباه بودن یک عبارت و 1 به نشانه صحیح بودن آن The one-line if Statement if condition statement, end اگر condition صحیح باشه، دستور اجرا میشه و اگه نه، اتفاقی نمیافته. condition میتونه یه بردار یا ماتریس باشه، اگه همهی بخشا صحیح باشه، عددی غیر صفر، ولی اگه حتا یه بخش نادرست باشه، اون بخش رو صفر نشون میده جدول زیر رو در نظر داشته باشید چند مثال برای عبارات منطقی طبق دستورات بالا b^2<4*a*cx>=0a ~=0b^2 == 4*a*c the if-else construct مثال زیر رو دنبال کنید x=2;if x < 0 disp ( ' neg ' ) , else disp ( ' non-neg ' ), end حال در مثال بالا، مقدار 1 رو درون x جایگذاری کنید فرم اصلی دستور if-else بصورت زیر هستش و همینطور، زیر اون، if-elseرو در یک سطر بیان میکنیم [color=Blue]if [/color][color=Purple]condition[/color] statement A[color=Blue]else[/color] statement B[color=Blue]end[/color][color=Red][b]OR[/b][/color][color=Blue]if[/color] [color=Purple]condition[/color] statement A, [color=Blue]else[/color] statement B,[color=Blue]end[/color] statement ها میتونن بیش از یک جمله باشند اگر condition صحیح باشه statement A اجرا میشه و در غیر اینصورت Statement B اجرا میشه قسمت else بصورت اختیاری هستش و برای دستوری که تنها در یک خط نوشتین، کاما رو هرگز فراموش نکنید و برای هردو، هرگز end رو فراموش نکنید، همونطور که قبلن گفتیم، دستور بدون end به پایان نمیرسه 3 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 9 خرداد 1389 elseif استفاده کلی از دستورات if و else رو دیدین، اینجا استفاده چندین باره رو از این دستور خواهیم دید نمای کلی استفاده از آن In general, the [color=Blue]elseif[/color] clause is used as follows:>> if condition 1 statement A elseif condition 2 statement B elseir condition 3 statement C ... else statementS E end condition 1 تست میشه، و درصورت درست بودن، statement A اجرا میشه، و سپس برنامه به جمله بعد از end پرش میکنه اگر condition 1 درست نباشه، condition 2 امتحان میشه و سپس در صورت صحیح بودن statement B اجرا میشه و سپس به جمله بعد از end پرش میکنه داستان همینطور ادامه پیدا میکنه تا زمانی که هیچ کدوم از conditionها صحیح نباشه، در این صورت، بخش else و statementS E اجرا میشه LOGICAL OPERATORS سه عملگر منطقی زیر رو ببینید & به معنی and | به معنی or ~ به معنی not و مثال زیر رو ببینید if (b^2 - 4*a*c == 0 ) & ( a ~=0 ) x=-b/(2*a);end نکته: به این موضوع توجه داشته باشید که میتوانید در یک دستور شرطی، از چندین دستور دیگه ( حتا دستورهای شرطی دیگه ) نیز استفاده کنید switch قبلن، تو زبانهای برنامه نویسی دیگه، با این دستور آشنا شده بودم، خیلی ازش خوشم میومد، تا اینکه به matlab رسیدم، این برنامه نیز، قواعد و قوانینش بر اساس همین دستورهای ساده بنا گذاشته شده، با این تفاوت که کمی کار رو راحتتر کرده و تنها کافیست، کمی با ماتریس آشنایی داشته باشیم، و کمی الگوریتم رو صحیح بنویسیم تا به بهترین نحو برنامه دلخواه رو وارد matlab کنیم بریم سراغ این دستور تنها به یک مثال بسنده میکنیم، خیلی راحته، اون رو وارد برنامه کنید، و نتیجه رو بررسی کنید d= floor (10*rand)switch dcase {2, 4, 6, 8} disp ( 'even');case {1, 3, 5, 7, 9} disp ( 'odd' )otherwise disp ( 'zero' );end چه چیزی رو متوجه شدین ؟ floor ؟ نمیدونین یعنی چی ؟ خوب به سراغ matlab برین و تایپ کنین help floor به حتم بایستی متوجه شده باشین که چه عملی انجام میده این دستور، مقدار داخل پرانتز رو به اولین عدد صحیح سمت چپ گرد میکنه input چون در گذشته با این مثال آشنا شدهایم، فقط شیوه کلی استفاده از اون رو بیان میکنیم با یک مثال ساده variable= input ('prompt');y=input ( ' plz insert a number ' );R =input('What is your name','s'); بخش اول تنها عدد وارد میکردین، ولی برای وارد کردن حروف، بایستی به شیوه پایینیش عمل کنید ( R ) این جلسه، جلسه پایانی بخش fundamental بود، و از جلسه آینده، بخش دیگری رو شروع خواهیم کرد و خدا رو شکر، کتابی رو که میخواستم، برام فرستاده شده و کافیه پست اون رو بیاره، حتمن پس از تموم شدن این کتاب، اون رو به مرحله اجرا میزارم و سپس یه کتاب تخصصی مهندسی شیمی رو و دوباره بابت تاخیرم، عذر میخوام، کمی درگیر و البته بیشتر تنبلی از خودم بود موفق باشیم :wubpink: :mornincoffee: 4 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 10 خرداد 1389 The Design process آنالیز برنامه پیدا کردن سوالات و مشکلات و حل مسئله ترتیب حل برنامه، مشخص کردن ورودی و خروجی الگوریتم برنامه الگوریتم، تبدیل کردن الگوریتم به زبان کامپیوتر ارزیابی و سنجش ( تست برنامه ) بکار بردن برنامه - اجرای برنامه پ.ن: برای دیدن لیست کاملی از دستورات، از دستور زیر استفاده کنید helpwin 4 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
JU JU 7,193 ارسال شده در 11 خرداد 1389 یک متغیر سمبولیک یا نمادین متغیری است که به متلب می گوید باید با آن به صورت جبری رفتار شود و نه به صورت عددی. مثلا هنگامی که از شما خواسته می شود انتگرال x را بدست آوید شما خیلی سریع جواب می دهید x/2 و درواقع شما به صورت نا معین مقدار این عبارت را حساب می کنید و نه به صورت عددی. اگر از متلب انتظار دارید او هم چنین رفتاری با متغیرهای شما داشته باشد می بایست ابتدا با کمک دستور syms آنها را به متلب معرفی کنید. [left]>> syms x >> f=x^2 f =[/left] [left] x^2[/left] برای محاسبه یک مقدار عددی این تابع از دستور subs استفاده می شود. این دستور در واقع عمل جایگذاری را در متلب انجام می دهد. [left]>> subs(f,3)[/left] [left]ans =[/left] [left] 9[/left] حالا قرار است از تابع y=x^2+sin(x) انتگرال بگیریم. [left]int('x^2+sin(x)')[/left] [left] ans =[/left] [left] 1/3*x^3-cos(x)[/left] از توابع چند متغیره هم می توانید به راحتی انتگرال بگیرید. [left]>> int('x^2+sin(y)','y')[/left] [left] ans =[/left] [left] x^2*y-cos(y) [/left] در اینگونه موارد لازم است متغیری که قرار است انتگرال گیری بر اساس آن صورت گیرد به متلب معرفی کنید. برای محاسبه ی مشتق از دستور diff استفاده می شود باقی موارد آن درست شبیه انتگرال گیری می باشد. [left]>> diff('tan(x)')[/left] [left] ans =[/left] [left] 1+tan(x)^2[/left] برای محاسبه ی لاپلاس و معکوس آن می بایست ابتدا تابع را با کمک دستور syms معرفی کنید و تنها در این صورت است که تابع لاپلاس عمل می کند.2 [left]>>syms x[/left] [left]>> laplace(x)[/left] [left] ans =[/left] [left] 1/s^[/left] برای محاسبه ی معکوس لاپلاس با کمک متلب : [left]>> ilaplace(5/x^2)[/left] [left] ans =[/left] [left] 5*t[/left] این مطلب رو، دوست خیلی عزیزم، حامد که در این سایت هم فعالیت دارن برام آماده کردن و من اینجا گذاشتم، از لطف و زحمتشون ممنونم 4 نقل قول به اشتراک گذاری این ارسال لینک به ارسال
حـامد 584 ارسال شده در 11 خرداد 1389 با اجازه جاوید عزیز چند روز پیش یه دوره کلای آموزشی متلب برای بچه های علوم تحقیقات با عنوان حل معادلات دیفرانسیل پاره ای گذاشته بودم جزوه زیر قسمت اولش با عنوان حل معادلات مشتقات جزیی با استفاده از تابع کتاب خانه ای pdepe هست اینجا میذارم دو قسمت دیگه شو که با استفاده از تحلیل گره و pdetool هست رو بعدا قرار میدم محتوای مخفی برای مشاهده محتوای مخفی می بایست در انجمن ثبت نام کنید. 4 نقل قول به اشتراک گذاری این ارسال لینک به ارسال