انجمن سایت کلیدستان



پیدا کردن maxدر توابع با متغیر دبلزمان کنونی: ۱۳۹۵/۰۹/۱۷، ۱۲:۱۹ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: shahri8890@yahoo.com
آخرین ارسال: admin
پاسخ 12
بازدید 2680

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
پیدا کردن maxدر توابع با متغیر دبل

پیدا کردن maxدر توابع با متغیر دبل

#1
سلام. باید یه فرمول بنویسم و تغییراتش رو برحسب x و y حساب کنم. در یه قسمت فرمول باید مقدار ماکزیمم تابع رو حساب کنم و در مراحل بعدی ازش استفاده کنم. چند تا سوال دارم.
اول اینکه آیا امکانش هست اول محاسباتمو با تابع پیش ببرم بعد وسط راه به syms یا دبل (double) تبدیلشون کنم؟ یا باید از اول با دبل پیش برم؟
اگر با دبل مساله رو پیش ببرم مقدار ماکزیممش رو چه جوری پیدا کنم؟ دستور max فقط ماکزیمم در سطر یا ستون رو میده نه مقدار ماکزیمم کلی. هرکار میکنم هر نوعی که تعریفش میکنم باز وسط راه به مشکل متغیر برمیخورم.
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#2
سلام
اگه تایع نهاییتونو به صورت سمبلیک تعریف کنید میتونید با استفاده از دستور fminbnd مینیمم اون رو پیدا کنید و برای ماکس کافیه منهای تابع رو به این تابع بدید.
امیدوارم کمکتون کنه!
پاسخ
 سپاس شده توسط admin

پیدا کردن maxدر توابع با متغیر دبل

#3
سلام.
در مورد مشکلی که با دستور max داشتید، اگر ماتریس دو بعدی است، باید دو بار از دستور max استفاده کنید، مثل کد زیر :

کد:
clear all
close all
clc

x=[-2 -10 3; 5 24 9]
x_max=max(max(x))

نتیجه اجرای کد متلب بالا :

کد:
x =

    -2   -10     3
     5    24     9


x_max =

    24

اگر ماتریس، n بعدی است، n بار از دستور max استفاده نمایید.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#4
سلام.خیلی خیلی ممنون. دستور دوبار استفاده از max جواب داد. ببخشید یه سوال دیگه هم داشتم.ماتریسی که نوشتم تابعی بود که با مقدار دهی به x و y بدست اومده. آیا امکان اینم وجود داره که بدونم به ازای کدوم x و y این مقدار maxبه دست اومده؟ یا باید براش حلقه بذارم؟ممنون

 
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#5
سلام.خیلی خیلی ممنون از جوابای دقیقتون. واقعا فکر نمیکردم جواب بدید.ببخشید یه سوال : ماتریسی نوشتم که درایه های اون از مقدار دهی به x و y در یک تابع بدست اومد. در ادامه برنامه به x و y که به ازای اونها تابع maxشده(x و y که به ازای اونها بزرگترین عضو ماتریس بدست اومده) نیاز دارم. وقتی براش حلقه تعریف میکنم جواب خاصی نمیگیرم.انگار شرط روی درایه های ماتریس اجرا نمیشه. آیا دستوری وجود داره که امکان اینو بده که، بدونم به ازای کدوم x و y این مقدار max ماتریس فعلی به دست اومده؟ یا باید براش یه حلقه جدید بذارم؟ممنون

 
پاسخ
 سپاس شده توسط admin

پیدا کردن maxدر توابع با متغیر دبل

#6
برای به دست آوردن شماره ردیف و ستون عنصر ماکزیمم، کدها را به صورت زیر می نویسیم :

کد:
clear all
close all
clc

x=[-2 -10 3; 5 24 9]
x_max=max(max(x))
[row_position,column_position]=find(x==x_max)

نتیجه اجرای کد متلب بالا :

کد:
x =

    -2   -10     3
     5    24     9


x_max =

    24


row_position =

     2


column_position =

     2

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#7
سلام بازم ممنون از جوابتون. مشکلی که وجود داره اینه که ماتریسی که نوشتم به ازای x=-3:0.1:3 و y=-3:.01:3 است. باید از کجا متوجه بشم که مثلا بر E_max=2.7 که با روشی که گفتید در سطر 31 و ستون 31 است به ازای کدوم x و کدوم yاز بازه بالا به دست اومده؟با روش و نکته ریزی که گفتید این به ذهنم رسید که برای بدست آوردن x مورد نظر -3رو به اضافه شماره سطر و برای y به اضافه شماره ستون کنم.آیا راه درستیه؟؟ البته چون گامها 0.1 هست باید شماره سطر یا ستون رو در 0.1 ضرب کنم.
خدائی کارتون درسته
پاسخ
 سپاس شده توسط admin

پیدا کردن maxدر توابع با متغیر دبل

#8
خدائی، خدائی فدائی دارین!!!!!!!!چند هفته لنگه این جوابایی بودم که شما یکی دو روزه معرفتی جواب دادین.خودمم نمیدونم چه جوری سایتتون به تورم خورد عضو شدم.
پاسخ
 سپاس شده توسط admin

پیدا کردن maxدر توابع با متغیر دبل

#9
(۱۳۹۳/۰۳/۳۰, ۰۹:۴۵ ق.ظ)'shahri8890@yahoo.com' نوشته: سلام بازم ممنون از جوابتون. مشکلی که وجود داره اینه که ماتریسی که نوشتم به ازای x=-3:0.1:3 و y=-3:.01:3 است. باید از کجا متوجه بشم که مثلا بر E_max=2.7 که با روشی که گفتید در سطر 31 و ستون 31 است به ازای کدوم x و کدوم yاز بازه بالا به دست اومده؟با روش و نکته ریزی که گفتید این به ذهنم رسید که برای بدست آوردن x مورد نظر -3رو به اضافه شماره سطر و برای y به اضافه شماره ستون کنم.آیا راه درستیه؟؟ البته چون گامها 0.1 هست باید شماره سطر یا ستون رو در 0.1 ضرب کنم.
خدائی کارتون درسته

 

ممنون. 
در اینگونه موارد، مقادیر x را در یک ماتریس، مقادیر y را هم در یک ماتریس قرار می دهیم و نتایج حاصل شده از آنها هم در یک ماتریس دیگر قرار می گیرد (ماتریس های با اندازه یکسان و عناصر متناظر قرار گرفته در یک محل یکسان در ماتریس). مثلا در ماتریس هایی با نام های X و Y و Z . 
سپس وقتی مقدار max در ماتریس Z را به دست آوریم، از شماره ردیف و ستون به دست آمده، می توانیم مقادیر x و y متناظر با آن را از ماتریس های X و Y فراخوانی کنیم.

کد زیر را ببینید :

کد:
clear all
close all
clc

x=[1 3; 5 7]
y=[-1 4; -4 3]
z=x.*y
z_max=max(max(z))
[row_position,column_position]=find(z==z_max)
x_max=x(row_position,column_position)
y_max=y(row_position,column_position)

نتیجه اجرای کد متلب بالا :

کد:
x =

     1     3
     5     7


y =

    -1     4
    -4     3


z =

    -1    12
   -20    21


z_max =

    21


row_position =

     2


column_position =

     2


x_max =

     7


y_max =

     3

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x

پیدا کردن maxدر توابع با متغیر دبل

#10
سلام. درسته. فقط اگر xو y دو ماتریس61*1باشند و ماتریس حاصل 61*61بعدی باید چیکار کرد؟ از دستور meshgrid استفاده کنم تو جواب خطا ایجاد نمیکنه؟

 
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#11
سلام یه برنامه نوشتم که در ابتدا حدود رو (3,3-) نوشتم جواب داد.حالا برای مرحله بعد باید حدود رو عوض کنم ولی هرکار میکنم حدود جدید رو نمی پذیره و ارور میده. میگه بردارها باید هم طول باشن!!!!!؟چیکار کنم؟ امکانش هست برنامه رو یراتون بفرستم؟چه جوری باید بفرستم؟
ممنون.
پاسخ

پیدا کردن maxدر توابع با متغیر دبل

#12
سلام دوست عزیز.
لطفا برای هر سوال جدید (که به موضوع فعلی ربطی ندارد)، یک موضوع جدید بسازید و سوال خود را در آن مطرح کنید. یک سوال دیگر هم همینجا پرسیده بودید که من آن را تبدیل به یک موضوع جدید کردم و پاسخ دادم، لینک آن موضوع :

http://www.kelidestan.com/forum/showthread.php?tid=4674

بنابراین لطفا یک موضوع جدید بسازید و سپس کد خود را با دکمه درج کد در ادیتور، در ارسال قرار بدهید.
اگر نمی دانید چگونه یک موضوع بسازید، لینک زیر را بخوانید :

http://www.kelidestan.com/keys/keys.php?key=610

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)