الگوریتم مشتق گیری برای کامپیوتر

  • شروع کننده موضوع
  • #1

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
برای جوابگویی نیاز به برنامه نویس حرفه ای بودن نیست!! (;
می خوایم توی این تاپیک در مورد نوشتن یه برنامه که مشتق همه ی توابع رو حساب کنه حرف بزنیم! بعد از نتیجه گیری از حرف ها، برنامه ای رو که نوشته ام می ذارم روی سایت تا نتیجه رو ببینین. اپن سورس هم هست و ... (این رو اول به استاد ریاضی 1 تحویل می دم! نگین نگفتم!)
1- سوال اول و مهم! طرز نوشتن کاربر چطوری باید باشه! مثلا چطوری بگه سینوس ایکس به توان دو رو مشتق گیری کن؟!
Sin(x^2)
Sin(x2)
* Sin(x[2])
....?
من فکر می کنم ستاره دار بهتره! چون Sin[2](x[2]) راحت تر نوشته می شه!!
(البته باید الگوریتم نوشتن رو هم در نظر بگیریم!)

2- سوال بعدی چطوری اسم توابع رو تشخیص بدیم ؟
{تا همینجا برای شروع بسه!}
 

hasangolab

کاربر حرفه‌ای
ارسال‌ها
438
امتیاز
133
شهر
قم
مدال المپیاد
ترکیبیات علیپور خوندم!
دانشگاه
Massachusetts Institute of Technology
رشته دانشگاه
Electrical Engineering
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

خیلی سادست شروع می کنیم به تجزیه!!!
مرحله ۱: ما یه تابع می خوایم که اول محاسبات رو انجام بده و رشته جدید رو ذخیره کنه.
مرحله ۲: ما یه تابع می خوایم که توابع دلخواهمون رو توی رشته پیدا کنه.
مرحله ۳: برنامه مین رو می نویسیم.
مرحله ۴: یه سری تابع گرافیکی میزنم توش خوشگل شه :D
مرحله ۵: میدیم دست بچه ها ببین چجوریه تا بعضی اشکالاتش پیدا بشه.
مرحله ۶: باگ ها و اشکالات احتمالی رو رفع می کنیم یه جینگول پینگولی بهش اضافه می کنیم (; و دوباره میدیم بیرون.
 
  • شروع کننده موضوع
  • #3

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

قابل توضیح که مشتق گیری سال دوم دبیرستان بهش اشاره می شه و این برنامه می خواد محدوده ی دانشگاهی رو هم پوشش بده! پس نیاز به دونستن Sinh هم هست! به اضافه e^x و ln|x| و بعضی چیزا که توی سال های پایین دبیرستان نمی خونیم!

من تا چند روز آینده این آموزش کاربردی رو شروع می کنم و مرحله به مرحله ی کد رو می ذارم (;

{البته به مدد دوستان بزرگ تر از خودمون مجبور می شیم بخونیم! من سال اول دبیرستان بود می تونستم مشتق یه چیزی رو حساب کنم!!}
 

hasangolab

کاربر حرفه‌ای
ارسال‌ها
438
امتیاز
133
شهر
قم
مدال المپیاد
ترکیبیات علیپور خوندم!
دانشگاه
Massachusetts Institute of Technology
رشته دانشگاه
Electrical Engineering
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

راستی پسر عمه ام برنامه کاملش رو نوشته البته با #c ببینم اگه بتونم براتون میذارم :D
 
  • شروع کننده موضوع
  • #5

trustme

لنگر انداخته
ارسال‌ها
2,810
امتیاز
900
نام مرکز سمپاد
شهید بهشتی
شهر
کاشان
سال فارغ التحصیلی
1387
دانشگاه
دانشگاه خواجه نصیر طوسی
رشته دانشگاه
مهندسی مکانیک
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

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

(اگه کسی خواست بنویسه می تونیم کمکش کنیم (; )
 

241-1124

کاربر فوق‌فعال
ارسال‌ها
155
امتیاز
15
پاسخ : پاسخ : الگوریتم مشتق گیری برای کامپیوتر

كاش منم فرصت يادگيري اين چيزا واسم پيش مي اومد :'(
خوشحال مي شم اگه يادم بدي وياد بگيرم!! ^-^
 

amiraliakbari@gmail.com

کاربر جدید
ارسال‌ها
2
امتیاز
0
نام مرکز سمپاد
شهید هاشمی نژاد
شهر
مشهد
دانشگاه
شریف
رشته دانشگاه
نرم افزار
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

برای نمایش عبارات ریاضی اگر از فرم هایی مانند postfix یا همان RPN استفاده بشه، کار خیلی راحت تر می شه، مرحله ی بازگشت هم تبدیل می شه به یه بازگشت ساده روی درخت، یعنی با یه DFS می شه مشتق گرفت و راه حل رو هم نوشت.
اول بخش RPN رو در wikipedia بخونین، روش مشتق گیری از عبارت تقریبا مثل محاسبه ی مقدار عبارت می شه.
باید برای * و / و + و - و f فرمول مشتق رو جداگانه پیاده سازی کنین که f تابعی دلخواهه، و بعد یک map<string, string> می خواین که نام هر تابع رو به مشتقش متناظر کنه. کلا خیلی سرراست می شه.
 

saeed

کاربر حرفه‌ای
ارسال‌ها
538
امتیاز
85
نام مرکز سمپاد
شهید سلطانی کرج
شهر
کرج
دانشگاه
تهران
رشته دانشگاه
مهندسی فناوری اطلاعات
پاسخ : الگوریتم مشتق گیری برای کامپیوتر

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