رفتن به مطلب

استخراج تابع از روی نمودار چطور امکان پذیر هست؟


Ehsan

ارسال های توصیه شده

اگه بدونیم که نمودار متعلق به یک چند جمله ایه یا مثلا متعلق به توابع مثلثاتی هستش و یا نمایی و ...

(منظورم اینه که پایه ی تابع اون نمودار رو بدونیم) از روی ریشه های نمودار (یعنی اونجاهایی که نمودار محور x ها رو قطع میکنه)

 

و نقاطی که اکسترمم نسبی تشکیل شده (یعنی ماکزیمم و مینیمم نسبی داریم و در اونجاها مشتق تابع صفر هستش)

 

و جاهایی که تابع تغییر تقعر داده (یعنی جاهایی که مشتق دوم تابع دارای ریشه هستش)

 

و همچنین محل برخورد نمودار با محور y ها و نیز حد نمودار به ازای مثبت و منفی بینهایت، میشه اطلاعات زیادی در مورد ضابطه ی تابع به دست آورد.

.

.

.

 

یک راه به دست آوردن تابع از نمودار، استفاده از نرم افزار اکسل و فیت کردن یک تابع چند جمله ای یا لگاریتمی از روی داده هاست.

 

اما همیشه نمیتوان ضابطه تابع را با اکسل تعیین کرد.

لینک به دیدگاه

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

 

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

 

ولی وقتی که خودتون این نکته رو در محاسبات دستی لحاظ میکنین، به یک ضابطه ی منحصر به فرد می رسین.

 

در صورتی که نموداری که بهمون دادن، دارای مجانب قائم یا مایل باشه، شما به این راحتی ها نمیتونین به اکسل بفهمونین که باید چی کار کنه.

 

در حالیکه خودتون به راحتی متوجه میشین که برای پیدا کردن ضابطه باید چه نکاتی رو مد نظر قرار داد.

 

 

همچنین اگه نمودار دارای نقاط ناپیوستگی باشه (به طور مثال خط y=1 رو در نمودار به شما داده باشن ولی مثلا در 5 نقطه، ناپیوستگی نوش وجود داشته باشه) و از شما ضابطه رو بخوان، شما اگه چنین داده هایی رو به اکسل بدین، باز هم نمیتونین بهش بفهمونین که دامنه ی تابع چند تکه ای هستش و نباید نقاط ناپیوستگی رو در نظر بگیره.

 

به طور مثال همون خط y=1 که در نقاط x=0 , 1 , 2 , 4 , 10 , 12 در اون ناپیوستگی باشه، ضابطه ی تابع چنین نموداری برابره با:

 

 

dm2iqafejzd68haud6uv.jpg

لینک به دیدگاه
تابع فوق با تابع y=1 تفاوت داره ولی اکسل اینو نمیفهمه.

 

یا مثلا در نمودار زیر:

سلام مهندس

9-10 ماه پیش بود یخورده دنبال این موضوع بودم

بعد از پرس و جو به اکسل رسیدم

اگه اشتباه نکنم اکسل هم محدودیت تو درجه معادله داشت ( فکر کنم تا درجه 2 رو تقریب میزد)

 

با نرم افزارهایی مثل متلب و میپل و ... نمیشه به دست اورد ؟

نرم افزاری هست تو دنیا (چینی ها ) که باهاش بشه بدست آورد ؟

چون معمولا کسایی که دنبال همچین کاری هستن دقت های خیلی بالاتر میخوان ...

 

اگه امکانش هست ادامه بدید و مطلبی داشتید بزارید :icon_redface: ممنون تاپیکتون خیلی ارزشمنده ....:icon_gol:

لینک به دیدگاه

سلام

ممنون از تاپیک خوبتون

ببخشید من یه سوال دارم مهندس :

برای به دست آوردن دقیق نقطه ی عطف(inflection point) (و یا در واقع معادله ی تابع)در منحنی هایی که شبیه به شکل زیر هستن و به صورت تجربی هم به دست میان چه کاری می شه انجام داد؟

AlaTitr.gif

 

امیدوارم پست دادن من اینجا نظم تاپیکتون رو به هم نزنه(اگر این طوره بفرمایید تا پست رو حذف کنم)

:icon_gol:

لینک به دیدگاه
سلامممنون از تاپیک خوبتونببخشید من یه سوال دارم مهندس :برای به دست آوردن دقیق نقطه ی عطف(inflection point) (و یا در واقع معادله ی تابع)در منحنی هایی که شبیه به شکل زیر هستن و به صورت تجربی هم به دست میان چه کاری می شه انجام داد؟AlaTitr.gifامیدوارم پست دادن من اینجا نظم تاپیکتون رو به هم نزنه(اگر این طوره بفرمایید تا پست رو حذف کنم):icon_gol:
سلامبرای بدست آوردن نقطه عطف همه میدونیم که باید معدله تابع رو داشته باشیم تا نقطه عطف بدست بیاداگر شما این داده ها رو دارید و خودتون این نمودار رو رسم کردید بهترین و دقیق ترین راه استفاده از نرم افزار MATLAB هستشبدین صورت که میتونه معادله هایی از مرتبه 10 رو تقریب بزنه برای دقیق تر بودن پس از اینکه شما معدادله رو بدست آوردید با استفاده از toolbox های متلب میتونید نقاط عطف رو سریعتر حساب کنید یا اینکه با مشتق گیری خودتون محاسبه کنید که زمان زیادی صرف میشهبهترین راه استفاده از متلب هستش.
لینک به دیدگاه
  • 2 هفته بعد...
اگه بدونیم که نمودار متعلق به یک چند جمله ایه یا مثلا متعلق به توابع مثلثاتی هستش و یا نمایی و ...

(منظورم اینه که پایه ی تابع اون نمودار رو بدونیم) از روی ریشه های نمودار (یعنی اونجاهایی که نمودار محور x ها رو قطع میکنه)

 

و نقاطی که اکسترمم نسبی تشکیل شده (یعنی ماکزیمم و مینیمم نسبی داریم و در اونجاها مشتق تابع صفر هستش)

 

و جاهایی که تابع تغییر تقعر داده (یعنی جاهایی که مشتق دوم تابع دارای ریشه هستش)

 

و همچنین محل برخورد نمودار با محور y ها و نیز حد نمودار به ازای مثبت و منفی بینهایت، میشه اطلاعات زیادی در مورد ضابطه ی تابع به دست آورد.

.

.

.

 

یک راه به دست آوردن تابع از نمودار، استفاده از نرم افزار اکسل و فیت کردن یک تابع چند جمله ای یا لگاریتمی از روی داده هاست.

 

اما همیشه نمیتوان ضابطه تابع را با اکسل تعیین کرد.

 

اتفاقاً همیشه میتوان ضابطه تابع را با اکسل تعیین کرد.

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

 

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

 

میشه فهموند.

 

ولی وقتی که خودتون این نکته رو در محاسبات دستی لحاظ میکنین، به یک ضابطه ی منحصر به فرد می رسین.

 

این معنیش اینه که صورت مسأله رو به اکسل غلط داده بودید و انتظار جواب درست ازش داشتید!.

 

در صورتی که نموداری که بهمون دادن، دارای مجانب قائم یا مایل باشه، شما به این راحتی ها نمیتونین به اکسل بفهمونین که باید چی کار کنه.

 

این رو هم میشه.

 

در حالیکه خودتون به راحتی متوجه میشین که برای پیدا کردن ضابطه باید چه نکاتی رو مد نظر قرار داد.

 

 

همچنین اگه نمودار دارای نقاط ناپیوستگی باشه (به طور مثال خط y=1 رو در نمودار به شما داده باشن ولی مثلا در 5 نقطه، ناپیوستگی نوش وجود داشته باشه) و از شما ضابطه رو بخوان، شما اگه چنین داده هایی رو به اکسل بدین، باز هم نمیتونین بهش بفهمونین که دامنه ی تابع چند تکه ای هستش و نباید نقاط ناپیوستگی رو در نظر بگیره.

 

به طور مثال همون خط y=1 که در نقاط x=0 , 1 , 2 , 4 , 10 , 12 در اون ناپیوستگی باشه، ضابطه ی تابع چنین نموداری برابره با:

 

 

dm2iqafejzd68haud6uv.jpg

 

این آخریه از نظر عملی به نظرم ارزشی نداره تا بهش فکر کنم.

لینک به دیدگاه
  • 7 ماه بعد...
اتفاقاً همیشه میتوان ضابطه تابع را با اکسل تعیین کرد.

 

حدس ضابطه توابعی که شامل سینوس و کسینوس و ....هستند در اکسل چطوری ممکنه؟

 

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

لینک به دیدگاه
  • 3 هفته بعد...
سلامبرای بدست آوردن نقطه عطف همه میدونیم که باید معدله تابع رو داشته باشیم تا نقطه عطف بدست بیاداگر شما این داده ها رو دارید و خودتون این نمودار رو رسم کردید بهترین و دقیق ترین راه استفاده از نرم افزار MATLAB هستشبدین صورت که میتونه معادله هایی از مرتبه 10 رو تقریب بزنه برای دقیق تر بودن پس از اینکه شما معدادله رو بدست آوردید با استفاده از toolbox های متلب میتونید نقاط عطف رو سریعتر حساب کنید یا اینکه با مشتق گیری خودتون محاسبه کنید که زمان زیادی صرف میشهبهترین راه استفاده از متلب هستش.

 

سلام

ممنون از پستتون

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

میخواستم بدونم چطور میشه با متلب اینکار انجام داد؟

با متلب کار نکردم

اگر ممکنه دقیق توضیح بدید.

ممنون

لینک به دیدگاه
سلام

ممنون از پستتون

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

میخواستم بدونم چطور میشه با متلب اینکار انجام داد؟

با متلب کار نکردم

اگر ممکنه دقیق توضیح بدید.

ممنون

 

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

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

 

در متلب هم با دستور (polyfit (x,y,n که در آن x , y مختصات نقاط و n درجه چند جمله ای هست، میتونین منحنی رو به دست بیارین.

 

از طرفی نقاط عطف، ریشه های مشتق مرتبه دوم تابع هستند.

 

که با دوبار مشتق گرفتن میشه ریشه های مشتق دوم تابع رو به دست آورد.

 

البته ممکنه آیکون هایی میانبر در قسمت tools هم وجود داشته باشه که نقاط عطف رو سریعتر بده.

 

مثلا این عکس رو نگاه کنید : (نوشتن تابع، دوبار مشتق گیری، به دست آوردن ریشه ها یا همان نقاط عطف)

 

 

o76zdu4mnlkglx6skf6j.jpg

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

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

 

در متلب هم با دستور (polyfit (x,y,n که در آن x , y مختصات نقاط و n درجه چند جمله ای هست، میتونین منحنی رو به دست بیارین.

 

از طرفی نقاط عطف، ریشه های مشتق مرتبه دوم تابع هستند.

 

که با دوبار مشتق گرفتن میشه ریشه های مشتق دوم تابع رو به دست آورد.

 

البته ممکنه آیکون هایی میانبر در قسمت tools هم وجود داشته باشه که نقاط عطف رو سریعتر بده.

 

مثلا این عکس رو نگاه کنید : (نوشتن تابع، دوبار مشتق گیری، به دست آوردن ریشه ها یا همان نقاط عطف)

 

 

o76zdu4mnlkglx6skf6j.jpg

 

با سلام

ممنون

امکانش هست که من نمودارم بذارم و تابعی که در اکسل به آن برازش دادم را نیز نمایش دهم؟

من تابع پلینومیال با درجه 6 را برازش دادم.

 

چرا آپلود عکس از کامپیوتر نداره؟

نمیتونم عکسمو آپلود کنم

 

اینی که میگید واسه نرم افزار متلبه فکر میکنم.

درسته؟

لینک به دیدگاه
با سلام

ممنون

امکانش هست که من نمودارم بذارم و تابعی که در اکسل به آن برازش دادم را نیز نمایش دهم؟

من تابع پلینومیال با درجه 6 را برازش دادم.

 

بله شما میتوانید نقاط رو هم مثلا با نقطه تو خالی و سپس، منحنی فیت شده را با خط چین هم نشان بدین.

 

مثلا :

 

[x=[1 0.5 3 2.5 5

 

[y=[2 0.5 7 2.5 0

 

(f=polyfit(x,y,6

 

(m=polyval(f,x

 

('--',plot(x,y,'o',x,m

 

اینی که میگید واسه نرم افزار متلبه فکر میکنم.

درسته؟

 

بله این ها دستورات متلب هستند.

اکسل، خودش در قسمت equation معادله رو میده و نیازی به دستور نوشتن نیست.

 

اگر بزنین equation on chart معادله رو روی چارت براتون نمایش میده.

لینک به دیدگاه
نه بابا خطا اینا درکار نیست.

محور ایکس:مقادیر شاخص و محورy: فراوانی تجمعی اونهاست

پلینومیال از درجه 6 بیشترین همبستگی داشت

 

پس تابعی که به دست اوردین صحیح هست.

باید دوبار مشتق گیری کنید و برای به دست آوردن عطف، ریشه های معادله مرتبه 4 رو حل کنید.

 

البته برای چنین مسئله ای هرچی درجه رو ببری بالاتر خوب جواب دقیق تر میشه ولی درجه 4 یا 3 هم به نظر کافی باشه !!

لینک به دیدگاه
پس تابعی که به دست اوردین صحیح هست.باید دوبار مشتق گیری کنید و برای به دست آوردن عطف، ریشه های معادله مرتبه 4 رو حل کنید.البته برای چنین مسئله ای هرچی درجه رو ببری بالاتر خوب جواب دقیق تر میشه ولی درجه 4 یا 3 هم به نظر کافی باشه !!
یک سوال دیگه.:banel_smiley_4:نمیشه از روی همون نقاط و تابع scatter ی که برازش دادم نقطه عطف رو تشخیص داد؟بدون اینکه ازش تابع خاصی رو برازش بدی.امکانش هست؟hba2sx59bxk0rkvohcd.jpg
لینک به دیدگاه
یک سوال دیگه.:banel_smiley_4:نمیشه از روی همون نقاط و تابع scatter ی که برازش دادم نقطه عطف رو تشخیص داد؟بدون اینکه ازش تابع خاصی رو برازش بدی.امکانش هست؟

 

ربطی به نحوه نمایش , Scatter و اینا نداره. :banel_smiley_4:

 

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

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

inflection_point.gif

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

 

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

 

به نظرم یه جایی خیلی خلاصه در موردش صحبت کردیم. همین آواتار هم بود، اما شاید یه جای دیگه. در هر صورت اینجا از نو بگم. یکی از روشها اینه که شما از روشهای بهگزینی استفاده کنید. توضیح و مثالش رو از کتاب شگردهای عددی می ذارم.

mmnrecipes_P168-L.JPG

mmnrecipes_P169.JPG

mmnrecipes_P170-P.JPG

mmnrecipes_P172.JPG

 

البته اون با متلب هستش. با اکسل هم باید کار مشابهی انجام بدید؛ البته با بضاعت اکسل، که در اینجا استفاده از تگ یا افزونه Solver هست که در ویرایشهای مختلف یه تفاوتهای جزئی داره، اما در کل مشابه هستند.

mmnrecipes_ExcelSolver.JPG

 

حالا فایلهای پیوست رو ببینید.

mmnrecipes_Excel-1.JPG

mmnrecipes_Excel-2.JPG

mmnrecipes_nlgenfit.xls

 

تو این فایل اکسل همون قسمت اول نمونه کتاب شگردهای عددی رو حل کردم (واسه همین توی متن کتاب رو قسمتهای مربوط به قسمت دوم نمونه خط قرمز کشیدم). تو این فایل J تابع ارزشه که باید کمینه بشه. حدس اولیه ای برای شناسه ها با رنگ آبی در نظر گرفتم (هر 4 شناسه رو 1 گرفتم، که با اونی که تو کتاب هست فرق می کنه). باقیش رو هم تو شکل ببینید.

 

راستی

ـ روشی که گفتم کلی هست، هر تابع (معقولی) رو که بتونید تعریف کنید، می شه به این روش از بین یک سری نقاط معلوم گذراند.

ـ این ساده ترین روش با اکسل بود؛ به روشهای دیگری هم می شه.

ـ تابع ارزش رو می تونید چیز دیگری در نظر بگیرید؛ البته باید معقول باشه.

ـ اگه قید خطی، ناخطی، برابری، یا نابرابری هم همراه مسأله باشه باز هم می شه از این روش استفاده کرد.

 

یادداشت ـ حدود 10 سال پیش که من کتاب شگردهای عددی رو چاپ کردم، کتابی در این رده به فارسی وجود نداشت، و در زمینه متلب هم تنها 3 تا کتاب فارسی وجود داشت. استفاده از روشهای عددی مرسوم بود، با این حال جوابهای دقیق بعضی از مسائل بیش از اندازه خطا داشت. مثلاً تو کتاب ارتعاشات رائو مسأله هایی با روش میرایی ویسکوز معادل حل شده بود که حدود 300 درصد خطا داشت (

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.
هم در موردش بیشتر توضیح داده ام). قسمت دوم این مسأله نمونه هم یکی از مسائلی هست که توی یک کتاب مرجع (که الآن یادم نیست) اومده بود و البته در کتاب فارسی زیر هم به همون صورت تکرار شده بود:

[18] نخعي، رضا؛ و ديگران، تند آموز لرزشهاي مكانيكي، نشر اتحاد، تهران، 1371

(مرجع 18 کتاب من)

 

و دقیق یادم نیست، اما فکر کنم جوابش بیش از 30 درصد خطا داشت.

من تو کتاب شگردهای عددی از این چیزها حرفی نزدم و مطالب رو با فرض اینکه یه مهندس مکانیک داره اونو می خونه نوشتم (با اینکه می دونستم که خیلی از مهندسهای مکانیک نمی دونن چرا مقاومت مصالح باید بخونن، یا قانون دوم نیوتون رو نمی تونن بیان کنن؛ اما فرض کردم که می دونن، و فقط راههای عددی حل مسائل مهندسی رو گفتم، وگرنه به جای 230 صفحه باید یه کتاب 5000 صفحه ای می نوشتم.).

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
  • 3 ماه بعد...

من میخوام ضابطه یک تابع را از روی نقاط بدست بیارم ولی زیاد به متلب مسلط نیستم

از دستور polyfit استفاده کردم ولی خطا میده

مثلا میخوام ضابطه تابع را که از نقاط (0,0),(1,1),(2,4) میگذرد را بدست بیارم که باید جواب به صورت y=x^2باشد

ممنون میشم بگید دقیقا چطور باید کد رو بنویسم

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

از دستور polyfit استفاده کردم ولی خطا میده

مثلا میخوام ضابطه تابع را که از نقاط (0,0),(1,1),(2,4) میگذرد را بدست بیارم که باید جواب به صورت y=x^2باشد

ممنون میشم بگید دقیقا چطور باید کد رو بنویسم


>> x=0:2; y=[0,1,4];
>> p=polyfit(x,y,2)


p =


1.0000 0.0000 -0.0000


>>

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...