تبلیغات
برنامه نویسی متلب MATLAB - ایجاد و به کار بردن توابع ریاضی در متلب
برنامه نویسی متلب MATLAB
با MATLAB (متلب) هر کاری رو که بخواهید میتونید انجام بدید, هرکاری!

لینکدونی

آرشیو موضوعی

آرشیو

← آمار وبلاگ

  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

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

به نام خدا

گاهی اوقات شما مجبورید یه عبارت ریاضی مثل f(x)=tan(x)*cos(x)/sqrt(x)-x^2 و یا g(x,y)=sin(x)-exp(y)*log(x-y) را در چندین جای برنامه به کار ببرید پس بهتر است که  f  و یا g که یک رابطه صرفا ریاضی می باشد را به صورت تابع تعریف کنیم تا استفاده از آن راحتتر باشد. 3 راه برای این کار وجود دارد:

1- استفاده از function

2- استفاده از inline

3- استفاده از handle_function

راه اول: تابع را به صورت فانکشن می نویسید:

function out=f(x)

out= tan(x).*cos(x)./sqrt(x)-x.^2;

یا

function out=g(x,y)

out= sin(x)-exp(y).*log(x-y);

حال به راحتی می توانیم از f و g در برنامه های دیگه استفاده کنیم:

>>f(2)

>>g(5,1)

در این روش یک m فایلی به نام تابع ایجاد خواهد شد.

 

راه دوم: استفاده از inline : به کمک تابع inline می توان توابع ریاضی را تعریف کرد:

f(a)=sin(a)-a*cos(a-1)

>>f=inline('sin(a)-a*cos(a-1)')

>>f(2)

در مورد توابع چند متغیره باید در نوشتن تابع inline دقت کنیم. اگر در هنگام نوشتن تابع inline متغیرها را به ترتیب ورودی مشخص ننمائیم خود متلب به طور پیش فرض بر اساس حروف الفبا متغیرها را ورودی می گیرد:

g(x,b)=sin(x)*cos(b)-log(b-x)/(x+b)

می خواهیم عبارت g را با inline بنویسیم. اگر به صورت زیر بنویسیم چون مشخص نکرده ایم که کدام متغیر به عنوان اولین ورودی باشد متلب به طور پیش فرض بین حروف b و x بر اساس حروف الفبا متغیر اول را b و دوم را x میگیرد یعنی g(b,x) در نظر میگیرد.

>>g=inline(' sin(x)*cos(b)-log(b-x)/(x+b)')

 اما اگر بخواهیم واقعا g(x,b) شود باید خودمان در دستور inline پس از نوشتن تابع، ترتیب متغیرها را نیز اعلام کنیم:

>> g=inline(' sin(x)*cos(b)-log(b-x)/(x+b)','x','b')

با این دستور مشخص می کنیم که متغیر اول ورودی x و بعدی b باشد.

 

نکته: اگر در دستور inline که تابع دو متغیره است خودتان اسم یک متغیر را به عنوان ورودی وارد کنید متلب گیر نمی دهد تا وقتیکه می خواهید مقدار دهی کنید که خطا خواهد داد:

 

>>g=inline(' sin(x)*cos(b),'x')

>>g(2) - -> Error!

دیگر موارد:

>> g=inline('1')

g =

     Inline function:

     g(x) = 1

 

>> g=inline('a')

g =

     Inline function:

     g(a) = a

3- استفاده از handle_function : من نمی خواهم وارد مبحث handle_function بشم اما به طور ساده اگه بخوام بگم منظور نشانه @ می باشد:

f(x)=sin(x)*cos(x)-log(x+b)

>>f=@(x) (sin(x).*cos(x)-log(x+b))

>>f(2)

برای توابع چند متغیره:

g(x,y)=sin(x)*cos(y)-exp(sqrt(x-y))

>>g=@(x,y) (sin(x).*cos(y)-exp(sqrt(x-y)))

 

این 3 روش خیلی به درد می خوره. مثلا در بحث انتگرال عددی و حل معادله دیفرانسیل عددی راه اول و سوم به کار میاد. در بحث تبدیل حل معادله دیفرانسیل تحلیلی به تابع ریاضی روش دوم به کار میاد و دیگر موارد کاربردی که در جای خودش ان شاءالله گفته خواهد شد.

امیدوارم این پست هم تونسته باشه برای شما مفید باشه. نظر یادتون نره لطفا! مرسی.

ال مو یا

مریم
جمعه 4 اسفند 1391
خیلی خوب بود ممنون
میهن
سه شنبه 12 دی 1391
خیلی ممنان
مصطفی
شنبه 22 مهر 1391
عالی بود دمت گرم
sasan
سه شنبه 16 خرداد 1391
دمت گرم واقعا مشکل منو حل کردی خیلی گلی به خدا
علی
چهارشنبه 12 بهمن 1390
عالی بود
خیلی کمکم کرد
دانشجو
دوشنبه 9 آبان 1390
با سلام ...

مطالبتون خوب هست .....

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

درباره وبلاگ

مدیر وبلاگ : Elmoya

آخرین پست ها

جستجو

نظرسنجی

  • مطالب این وبلاگ را چگونه یافتید؟



نویسندگان