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

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام
متلب من گیر داده تو این برنامه ای در زیر میارمش جواب ها رو کسری حساب میکنه
با دستور format long و format short و ... هم هیچ تفییری ایجاد نمیکنه
حالا تو همین متلب میرم تو یه فایل دیگه و اون رو ران میکنم همه چی درسته
نمیدونم ایراد از دستورات این فایله ؟؟

clear
clc
format long
disp('RK4 ')
h=.3;
xz=0;
yz=1;
syms('x','y');
f=inline(y+x^2);
x(1)=xz;
y(1)=yz;
for i=2:99
k1(i)=h*f(x(i-1),y(i-1));
k2(i)=h*f(x(i-1)+(h/2),y(i-1)+(k1(i)/2));
k3(i)=h*f(x(i-1)+(h/2),y(i-1)+(k2(i)/2));
k4(i)=h*f(x(i-1)+h,y(i-1)+k3(i));
y(i)=y(i-1)+(k1(i)+2*k2(i)+2*k3(i)+k4(i))/6;
x(i)=x(i-1)+h;
end

به خاطر اینه که از متغیرهای نمادین استفاده کردید. این اصلاح شده اش:
کد:
clear, clc
disp('RK4 ')
h=0.3;
xz=0;
yz=1;
f=inline('y+x^2');
x(1)=xz;
y(1)=yz;
for i=2:99
    k1(i)=h*f(x(i-1),y(i-1));
    k2(i)=h*f(x(i-1)+(h/2),y(i-1)+(k1(i)/2));
    k3(i)=h*f(x(i-1)+(h/2),y(i-1)+(k2(i)/2));
    k4(i)=h*f(x(i-1)+h,y(i-1)+k3(i));
    y(i)=y(i-1)+(k1(i)+2*k2(i)+2*k3(i)+k4(i))/6;
    x(i)=x(i-1)+h;
end
 

civilica2008

عضو جدید
من نمی دونم دارید چه کاری انجام می دید، اما ممکنه رویه نادرستی رو داری دنبال می کنی؛ من معادلات ناویر ـ استوکس رو روی بدنه یه شناور حل کردم و احتیاج به همچین ماتریس بزرگی پیدا نکردم. در هر صورت اگر فکر می کنید رویه درستی رو دارید می رید و با وجود این به چنین محاسباتی احتیاج دارید، چند تا راه حل وجود داره. من کلمات کلیدی دو تا از اونها رو اینجا می نویسم که در اینترنت در موردشون جستجو کنید و مشکلتون رو حل کنین:
Sparse Matrix
Matrix Partitioning
اولیش برای موقعیه که تعداد زیادی از درایه های ماتریس مورد نظر صفر باشن؛ اگه ماتریس مورد نظر شما این طور نیست، اولی رو بی خیال شو.
روشهای دیگری هم وجود داره که بهتره من در موردشون چیزی نگم، و بچه های کامپیوتر در موردشون صحبت کنن.


ممنون دوست عزیز از پاسخت
چون شما مکانیک میخونی و با المان محدود هم سر و کار دارید از شما میپرسم.
من یه دال بتنی با دو تا تیر درگیر در زیرش دارم که میخوام ماتریس جرم و سختیش را محاسبه کنم.تعداد المانها خیلی زیاده برای همین درجات ازادی زیاد شده.
اگه هم المان ها را درشت تر کنم دقت را از دست میدم.
من قراره ارتعاشات قایم را که به این دال وارد میشه کنترل کنم. این دال با 4 تا فنر قایم که در زیر تیرها قرار داره به زمین متصله و ارتعاشات از طریق زمین به این میز بتنی وارد میشه.
درواقع میخوام کنترل فعال انحام بدم.
ما عمرانی ها زیاد با کنترل اشنایی نداریم ولی من به دلیل علاقه این موضوع را انتخاب کردم.
مگه برای اینکه سیستم را کنترل کنم(قراره جابه جایی های قایم روی سطح میز را کنترل کنم.) نباید اول سیستم را خوب و به درستی مدل کنم؟؟؟ من هم دارم با finite element سیستم را مدل میکنم.

پیشنهادی و یا راهنماییم میکنی؟؟؟ ممنون میشم.

درضمن دارم با متلب کار میکنم چون بعدا اگه بخوام signal processing یا .... کار کنم با متلب راحت تره.
همچنین میخوام مودشکلها و فرکانسهای طبیعی سیستم را محاسبه کنم.
به نظرت راهی که دارم میرم درسته؟؟؟
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
ممنون دوست عزیز از پاسخت
چون شما مکانیک میخونی و با المان محدود هم سر و کار دارید از شما میپرسم.
من یه دال بتنی با دو تا تیر درگیر در زیرش دارم که میخوام ماتریس جرم و سختیش را محاسبه کنم.تعداد المانها خیلی زیاده برای همین درجات ازادی زیاد شده.
اگه هم المان ها را درشت تر کنم دقت را از دست میدم.
من قراره ارتعاشات قایم را که به این دال وارد میشه کنترل کنم. این دال با 4 تا فنر قایم که در زیر تیرها قرار داره به زمین متصله و ارتعاشات از طریق زمین به این میز بتنی وارد میشه.
درواقع میخوام کنترل فعال انحام بدم.
ما عمرانی ها زیاد با کنترل اشنایی نداریم ولی من به دلیل علاقه این موضوع را انتخاب کردم.
مگه برای اینکه سیستم را کنترل کنم(قراره جابه جایی های قایم روی سطح میز را کنترل کنم.) نباید اول سیستم را خوب و به درستی مدل کنم؟؟؟ من هم دارم با finite element سیستم را مدل میکنم.

پیشنهادی و یا راهنماییم میکنی؟؟؟ ممنون میشم.

درضمن دارم با متلب کار میکنم چون بعدا اگه بخوام signal processing یا .... کار کنم با متلب راحت تره.
همچنین میخوام مودشکلها و فرکانسهای طبیعی سیستم را محاسبه کنم.
به نظرت راهی که دارم میرم درسته؟؟؟

ـ اینکه رویه کارتون درسته یا نه رو باید از استاد راهنماتون بپرسید؛ من نمی دونم، گاهی اوقات روش پارکهای بسته، Finite Elements، ممکنه انتخاب درستی برای حل یک مسأله نباشه و مثلاً روش پارکهای مرزی، Boundary Elements، کلی کار رو آسون تر کنه.
ـ برنامه رو طوری بنویسید که بعداً اگه لازم شد اندازه پارکها یا المانها رو عوض کنید احتیاج به دوباره کاری نباشه.
ـ همیشه ریز کردن پارکها دقت جواب رو بالا نمی بره؛ گاهی اوقات، ریز کردن پارکها باعث می شه که رویه های عددی چرخان به کار رفته در اون روش عددی ناپایدار بشن.
 

civilica2008

عضو جدید
ـ اینکه رویه کارتون درسته یا نه رو باید از استاد راهنماتون بپرسید؛ من نمی دونم، گاهی اوقات روش پارکهای بسته، Finite Elements، ممکنه انتخاب درستی برای حل یک مسأله نباشه و مثلاً روش پارکهای مرزی، Boundary Elements، کلی کار رو آسون تر کنه.
ـ برنامه رو طوری بنویسید که بعداً اگه لازم شد اندازه پارکها یا المانها رو عوض کنید احتیاج به دوباره کاری نباشه.
ـ همیشه ریز کردن پارکها دقت جواب رو بالا نمی بره؛ گاهی اوقات، ریز کردن پارکها باعث می شه که رویه های عددی چرخان به کار رفته در اون روش عددی ناپایدار بشن.


خیلی ممنون راهنمایی کردید.
نفهمیدم منظورتون از پارکها چیه؟
پارکهای مرزی چیه؟؟
روش پارکهای مرزی همون روش boundary elements هستش؟ این 2 تا چی هستند؟
میشه یکم توضیح بدی؟؟
یا یه کتاب معرفی کنی که برم بخونم؟؟
بازم ممنون
راستی حالا اگه کارم درست باشه، چه کنم با این حافظه متلب؟؟؟
چیزی راجع به پردازش موازی میدونی؟ ممکنه مشکلم با اون حل بشه؟؟؟
راجع به تفکیک و کوچک کردن ماتریس ها چی؟؟اطلاعاتی دارید؟؟؟منظورم کارهای عددی هست که مشکل بزرگ بودن ماتریسم را با کوچک کردن اون حل کنم.
من میخوام معکوس و دترمینان ماتریس را بگیرم و حل معادله انجام بدم. درواقع، ماتریس من همون معادلاتم را تشکیل میده که باید اونا را حل کنم.

ممنون
 

peggijaan

عضو جدید
خیلی ممنون راهنمایی کردید.
نفهمیدم منظورتون از پارکها چیه؟
پارکهای مرزی چیه؟؟
روش پارکهای مرزی همون روش boundary elements هستش؟ این 2 تا چی هستند؟
میشه یکم توضیح بدی؟؟
یا یه کتاب معرفی کنی که برم بخونم؟؟
بازم ممنون
راستی حالا اگه کارم درست باشه، چه کنم با این حافظه متلب؟؟؟
چیزی راجع به پردازش موازی میدونی؟ ممکنه مشکلم با اون حل بشه؟؟؟
راجع به تفکیک و کوچک کردن ماتریس ها چی؟؟اطلاعاتی دارید؟؟؟منظورم کارهای عددی هست که مشکل بزرگ بودن ماتریسم را با کوچک کردن اون حل کنم.
من میخوام معکوس و دترمینان ماتریس را بگیرم و حل معادله انجام بدم. درواقع، ماتریس من همون معادلاتم را تشکیل میده که باید اونا را حل کنم.

ممنون

یکی از چیزهایی که باعث ناامید شدن آقای مسافر میشد سؤالهایی بود که به کرار ازش پرسیده میشد. شما هم دارید همین کار رو انجام میدید. سؤالهایی که قبلاً بهتون جواب داده از نو دارید میپرسید ازش. پیشنهاد میکنم جوابهایی که به شما داده رو از دوباره بخونید. کارهایی هم که گفته انجام بدید. اون نوشته هایی که به رنگ دیگه و با ضخامت بیشتر مینویسه و ... الکی نیست. باید بهشون توجه کنید.
 

civilica2008

عضو جدید
یکی از چیزهایی که باعث ناامید شدن آقای مسافر میشد سؤالهایی بود که به کرار ازش پرسیده میشد. شما هم دارید همین کار رو انجام میدید. سؤالهایی که قبلاً بهتون جواب داده از نو دارید میپرسید ازش. پیشنهاد میکنم جوابهایی که به شما داده رو از دوباره بخونید. کارهایی هم که گفته انجام بدید. اون نوشته هایی که به رنگ دیگه و با ضخامت بیشتر مینویسه و ... الکی نیست. باید بهشون توجه کنید.


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

خیلی ممنون راهنمایی کردید.
نفهمیدم منظورتون از پارکها چیه؟
پارکهای مرزی چیه؟؟
روش پارکهای مرزی همون روش boundary elements هستش؟ این 2 تا چی هستند؟
میشه یکم توضیح بدی؟؟
یا یه کتاب معرفی کنی که برم بخونم؟؟
بازم ممنون
راستی حالا اگه کارم درست باشه، چه کنم با این حافظه متلب؟؟؟
چیزی راجع به پردازش موازی میدونی؟ ممکنه مشکلم با اون حل بشه؟؟؟
راجع به تفکیک و کوچک کردن ماتریس ها چی؟؟اطلاعاتی دارید؟؟؟منظورم کارهای عددی هست که مشکل بزرگ بودن ماتریسم را با کوچک کردن اون حل کنم.
من میخوام معکوس و دترمینان ماتریس را بگیرم و حل معادله انجام بدم. درواقع، ماتریس من همون معادلاتم را تشکیل میده که باید اونا را حل کنم.

ممنون
 

peggijaan

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

خیلی ممنون راهنمایی کردید.
نفهمیدم منظورتون از پارکها چیه؟
با توجه به پست 146 پارکها همون المانها یا Elements باید باشه.
پارکهای مرزی چیه؟؟
با توجه به پست 146 پارکهای مرزی همون Boundary Elements باید باشه.
روش پارکهای مرزی همون روش boundary elements هستش؟ این 2 تا چی هستند؟
با توجه به پست 146 جواب باید مثبت باشه. با توجه به این توضیح، این 2 تا نباید بنویسید، این یکی شاید بهتر باشه.
میشه یکم توضیح بدی؟؟
یا یه کتاب معرفی کنی که برم بخونم؟؟
با توجه به پست 146 که قبل از اسم بردن این روش نوشته مثلاً (با رنگ قرمز، پررنگ، زیرش هم خط کشیده) احتمالاً احتیاجی نیست که این روش رو مطالعه کنید، مگر اینکه براساس جملات اول همون پست، استاد راهنماتون ازتون بخواد (البته به نظر من اگه خودتون هم به این نتیجه برسید میشه).
بازم ممنون
راستی حالا اگه کارم درست باشه، چه کنم با این حافظه متلب؟؟؟
جواب این سؤالتون هم که تو پست 140 داده.
چیزی راجع به پردازش موازی میدونی؟ ممکنه مشکلم با اون حل بشه؟؟؟
این یه دونه سؤال تکراری نیست. شاید آخرین جمله پست 140 آخرین جواب ایشون باشه، مگر اینکه بچه های کامپیوتر بهت جواب ندن.
راجع به تفکیک و کوچک کردن ماتریس ها چی؟؟اطلاعاتی دارید؟؟؟منظورم کارهای عددی هست که مشکل بزرگ بودن ماتریسم را با کوچک کردن اون حل کنم.
اگه اون کلمات کلیدی که در پست 140 نوشته رو در دیکشنری بزنی می بینی که احتمالاً همین چیزیه که شما الآن دارید می پرسید. تو همون پست گفته که اگه می خواید در اون زمینه مطالعه کنید، اون کلمات کلیدی رو در اینترنت جستجو کنید.
من میخوام معکوس و دترمینان ماتریس را بگیرم و حل معادله انجام بدم. درواقع، ماتریس من همون معادلاتم را تشکیل میده که باید اونا را حل کنم.

ممنون

من از این چیزهایی که نوشتید، تقریباً چیزی نمی دونم (نوشتم تقریباً، من هم مشابه استادم هم پررنگش کردم، هم به رنگ قرمز و هم زیرش خط کشیدم که توجه کنی. بعداً نگی تو هیچ چی نمی دونیا؛ نوشتم تقریباً). اما باتوجه به ادبیات فارسی جواب سؤالهای تکراری شما رو از توی جوابهای قبلی در بالا با رنگ آبی نوشتم.
با توجه به توضیحات بالا، شاید فقط یکی از سؤالهای شما تکراری نباشه.

موفق باشید عزیز دل برادر
راستی درک خوندن مطالب فارسی و دقیق خوندن و چند بار خوندن یک مطلب رو توصیه میکنم تمرین کنید.
 

kartalin

عضو جدید
با سلام و خسته نباشید
میخواستم کمک کنید تا حل دستگاه معادلات سه قطری به روش توماس رو با زبان متلب برنامه نویسی کنم.
با تشکر از لطفتون
 

kartalin

عضو جدید
با سلام و خسته نباشید
میخواستم کمک کنید تا حل دستگاه معادلات سه قطری به روش توماس رو با زبان متلب برنامه نویسی کنم.
با تشکر از لطفتون
چرا کسی جواب سوال منو نمیده؟ :(
از دوستان خواهش میکنم تو حل این مسئله به من کمک کنند
 

Erm!a

عضو جدید
سلام دوستان!!
ميخواستم ببينم كسي اينجاهس كه بتونه الگوريتم وارشالو به زبان متلب بنويسه؟
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
آخرین ویرایش:

taha894

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

چطور میشه اطراف یه عکس یه قاب سفید رنگ کشید ؟

قاب سیاه رنگ رو با صفر کردن پیکسل ها مشکلی ندارم ولی وقتی اون پیکسل های خاص یک میشن اون نقاط سفید نمیشه .

ممنون از دوستان ....
 

fmosif

عضو جدید
یه بردار دارم ، می خوام صدک 95 ام ش رو تولید کنم یعنی 95 درصد داده ها از اون کوچیکتر باشند، آیا تابعی در متلب برای محاسبه صدک وجود داره ؟ ممنون
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
یه بردار دارم ، می خوام صدک 95 ام ش رو تولید کنم یعنی 95 درصد داده ها از اون کوچیکتر باشند، آیا تابعی در متلب برای محاسبه صدک وجود داره ؟ ممنون

اگر a بردار مورد نظر باشه:
کد:
k=prctile(a,95)
 

saye0roshani

عضو جدید
سلام دوستان
کسی میدونه این برنامه رو چطور باید نوشت؟من تقریبا صفرم تو متلب!!!
درحالات مختلف زیر
1-انتن های همه جهتی,جهتی120 درجه,جهتی 60 درجه
2-خوشه های 3,7,12 سلولی
مطلوبب است رسم:
الف-ساختار سلولی
ب-محدوده حت پوشش هرایستگاه و نواحی هم پوشانی
 

nazliii

مدیر مهندسی برق مخابرات - متخصص نیمه هادی
سلام دوستان
کسی میدونه این برنامه رو چطور باید نوشت؟من تقریبا صفرم تو متلب!!!
درحالات مختلف زیر
1-انتن های همه جهتی,جهتی120 درجه,جهتی 60 درجه
2-خوشه های 3,7,12 سلولی
مطلوبب است رسم:
الف-ساختار سلولی
ب-محدوده حت پوشش هرایستگاه و نواحی هم پوشانی

اگه امکان داره سوالتون رو دقیق تر مطرح کنید.
 

saye0roshani

عضو جدید
والا nazliii این عین سوالیه که ازمون جوابشو خواستن!! توضیح چیشو باید بدم دقیقا؟
 

Mahdi12397

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

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
سلام دوست عزیز
اینو قبلان هم پیدا کرده بودم اما ارور میده. اگه میشه راهنماییم کنید
ممنونم

ـ "ارور میده" در برنامه نویسی ادبیات درستی نیست؛ اگه اینطور باشه، پس فرق بین یک نفر که سواد خوندن داره با یک نفر که نداره چیه؟! شما باید اون پیغام خطا رو بخونی ببینی متلب چی میگه.
ـ من قبلاً تست نکرده بودم، اما همین الآن تست کردم؛ مشکلی نداشت.

یک توضیح:
ـ در خط 6 و 7 این تابع در مورد تقسیم بر صفر یه نکته ای رو نوشته؛ شما قبل از اینکه ورودیها رو به تابع بدید باید ببینید که درایه اول بردار b صفر نباشه تا تقسیم بر صفر پیش نیاد. البته خود تابع رو هم می تونید اصلاح کنید که این رو چک کنه. (الآن رو این نکته تمرکز نکنیا؛ این مشکل شما نباید باشه.)
 
آخرین ویرایش:

sepidar40

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

من از متلب زیاد نمیدونم می خواستم چطور باید در اطراف یک تصویر قاب سیاه رنگ ایجاد کنم ممنون میشم اگه کمک کنید که برنامه اش چی میشه؟
 

sepidar40

عضو جدید
با سلام
یکی پیدا نمیشه بگه چطور باید این قاب سیاه رو دور تصویر ایجاد کنم ؟
 

meytim

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

من از متلب زیاد نمیدونم می خواستم چطور باید در اطراف یک تصویر قاب سیاه رنگ ایجاد کنم ممنون میشم اگه کمک کنید که برنامه اش چی میشه؟

با سلام
یکی پیدا نمیشه بگه چطور باید این قاب سیاه رو دور تصویر ایجاد کنم ؟

سؤالتون به اندازه کافی گویا نیست؛ برای همین نمی شه متوجه شد شما دقیقاً چی می خواید. بنابراین جواب درستی هم شاید نشه بهش داد. در هر صورت شما قبل از دستور image این خطوطی که می نویسم رو اضافه کنید:
کد:
whitebg('k')
axes('Position',[0.03 0.04 0.94 0.92],'xtick',[],'ytick',[],'box','on','handlevisibility','off')



ببینید خروجیش همونی میشه که می خواید یا چیز دیگریه. اگه چیز دیگریه به راهنمای متلب مراجعه کنید و دستورهای زیر رو مطالعه کنید؛ به احتمال زیاد به جوابتون خواهید رسید.

get
set
gca
gcf
axes
 

sepidar40

عضو جدید
با تشکر از دوست عزیز meytim

این جوری که شما گفتید شد ولی چیزی که از من خواستند این بود که یک ماتریس zeros بسازید بعد یک تصویر را خوانده درون این ماتریس قرار دهید.
فکر کنم باید سایز ماتریس zeros از تصویر بزرگتر شود.برنامشو نوشتم ولی مشکلی که داره این که تصویر رو درون ماتریس zeros به طور واضح نشون نمیده و خطوطی از تصویر پیداست
نمیدونم مشکل از کجاست a=zeros(450,650,3);

b=imread('C:\Users\Public\Pictures\Sample Pictures\3.jpg');

for i=20:399;
j=20:600;
a(i+20,j+20,:)=b(i,j,:);

end

imshow(a)
 

meytim

متخصص محاسبات عددی و MATLAB
کاربر ممتاز
با تشکر از دوست عزیز meytim

این جوری که شما گفتید شد ولی چیزی که از من خواستند این بود که یک ماتریس zeros بسازید بعد یک تصویر را خوانده درون این ماتریس قرار دهید.
فکر کنم باید سایز ماتریس zeros از تصویر بزرگتر شود.برنامشو نوشتم ولی مشکلی که داره این که تصویر رو درون ماتریس zeros به طور واضح نشون نمیده و خطوطی از تصویر پیداست
نمیدونم مشکل از کجاست a=zeros(450,650,3);

b=imread('C:\Users\Public\Pictures\Sample Pictures\3.jpg');

for i=20:399;
j=20:600;
a(i+20,j+20,http://www.www.www.iran-eng.ir/images/smilies/smile.gif=b(i,j,http://www.www.www.iran-eng.ir/images/smilies/smile.gif;

end

imshow(a)

به خاطر اینه که روشی که استفاده می کنی کلاس آرایه b رو از چیزی که هست به double تبدیل می کنه. یه راحش اینه که ببینی کلاس آرایه b چی بوده و کلاس آرایه a رو به اون تبدیل کنی. این طور که از برنامه شما بر میاد، باید uint8 باشه. پس کافیه قبل از دستور imshow یا image این خط رو اضافه کنی:
کد:
a=uint8(a);

اگه عکسی رو خوندی که کلاس آرایه اش uint8 نبود به طور مشابه می تونی عمل کنی. می تونی هم این خطی رو که اینجا می نویسم رو به قبل از دستور imshow یا image اضافه کنی:

کد:
c=class(b); eval(['a=',c,'(a);'])
 

Similar threads

بالا