به محفل ریاضی ایرانیان خوش آمدید! لطفا برای استفاده از تمامی امکانات عضو شوید
0 امتیاز
213 بازدید
در دانشگاه توسط arzhang2001 (1 امتیاز)
برچسب گذاری دوباره توسط AmirHosein

عددهای $a_1$ تا $a_k$ و $b_1$ تا $b_k$ مفروض هستند. چگونه تابعی با این خاصیت را بیابیم: $$\forall i\in\{1,\cdots,k\}\;:\;f( a_{i} )= b_{i}.$$ آیا با نرم‌افزارها مثلا Matlab می‌توان چنین تایع‌هایی را پیدا کرد؟

توسط AmirHosein (19,718 امتیاز)
@arzhang2001 مرجع یعنی اثری قابل دسترس، «خودم» مرجع نمی‌شود. پست آمده در پیوند زیر را بخوانید به ویژه قسمت مربوط به «مرجع».
https://math.irancircle.com/11973
چیزی که شما از آن صحبت می‌کنید بیشتر در زمینهٔ تقریب‌زدن، درونیابی و از این قبیل است تا functional equations. درس آنالیز عددی گذرانده‌اید؟
برایتان پست‌تان را کمی ویرایش کردم. می‌توانید نتیجه را مقایسه کنید.

1 پاسخ

0 امتیاز
توسط AmirHosein (19,718 امتیاز)
ویرایش شده توسط AmirHosein

چون شرط خاصی روی تابع‌تان نگذاشته‌اید و تنها چیزی که می‌خواهید این است که در تعداد متناهی نقطه مقدار داده‌شده‌ای را اتخاذ کند می‌توانید از درونیابی‌های چندجمله‌ای که در درس آنالیز عددی ۱ گفته می‌شوند استفاده کنید. پیاده کردن یک الگوریتم برای یافتن چنین چندجمله‌ای‌هایی بسیار ساده‌است و می‌توانید با هر زبان برنامه‌نویسی‌ای خودتان آن را انجام دهید. نرم‌افزارهای ریاضی مانند Matleb، Maple، Mathematica و SageMath هم دستورهای آماده برای این مورد دارند. چون نام Matlab را آوردید، من هم برایتان دستور Matlab را اشاره می‌کنم. نخست بردار مقدار $x$هایتان را می‌دهید و آن را نامگذاری می‌کنید مثلا points_x و سپس بردار $y$هایتان را متناسب به ترتیب بردار $x$هایتان می‌دهید و آن را نام‌گذاری می‌کنید مثلا points_y. برای نمونه فرض کنید نقطه‌هایمان اعضای مجموعهٔ زیر هستند $$\{(-1,5),(0,0),(\frac{1}{2},5),(2,3),(2.1,-1),(2.5,1)\}$$ پس خط‌های اولیهٔ کد Matlabمان می‌شوند:

points_x=[-1,0,1/2,2,2.1,2.5];
points_y=[5,0,5,3,-1,1];

اکنون توجه کنید که برای اینکه مطمئن شوید چندجمله‌ای‌ که درونیابی می‌کنید حتما از $n$ داده‌تان بگذرد باید درجهٔ چندجمله‌ای دست‌کم $n-1$ باشد. چون در این مثال ۶ نقطه داریم پس درجه باید دست‌کم ۵ باشد. دستور مربوطه polyfit است (نام آن نشان‌دهندهٔ fit کردن یک polynomial است). این دستور سه ورودی دارد، بردار $x$ها، بردار $y$ها و درجهٔ چندجمله‌ای‌ که می‌خواهید. پس دستور بعدی ما می‌شود

p=polyfit(points_x,points_y,5)

کاری که Matlab خواهد کرد این است که ضرایب این چندجمله‌ای را محاسبه و سپس ضریب جملهٔ با توان بزرگتر به ضریب جملهٔ با توان کوچکتر به ترتیب در یک بردار قرار می‌دهد با نامی که برایش تعیین کرده‌اید. اینجا این نام را p گذاشته‌ایم. توجه کنید که اگر در انتهای دستوری از ; استفاده کنید آنگاه خروجی آن خط نمایش داده‌ نمی‌شود و برای همین در انتخای خط سوم این علامت را نگذاشتیم. حاصل برابر است با:

پس چندجمله‌ایِ محسابه شده برابر است با $$f(x)=(7.8612)x^5-(29.4577)x^4+(9.4846)x^3+(41.7488)x^2-(10.0547)x$$ است (جملهٔ ثابت صفر بوده‌است که نوشتنش فرقی ایجاد نمی‌کند). در زیر رسم نمودار این تابع به همراه ۶ نقطه توسط همان نرم‌افزار Matlab نیز آورده‌شده‌است که می‌توانید به صورت بصری نیز ببینید که تابع یافت‌شده از همهٔ نقاط خواسته‌شده می‌گذرد.

بزرگترین ریاضیدانان، همچون ارشمیدس، نیوتن و گاوس، همواره نظریه و کاربردها را در اندازه ی یکسان در هم می آمیزند.
...