رسم نمودار تعاملی توابع مثلثاتی. تنظیم دامنه، فرکانس و جابجایی فاز به صورت آنی برای تجسم امواج سینوس، کسینوس و تانژانت.
هنگامی که با توابع مثلثاتی مانند سینوس، کسینوس و تانژانت کار میکنید، دیدن آنها در عمل تفاوت بزرگی ایجاد میکند. این رسمگر به شما اجازه میدهد تا این روابط ریاضی اساسی را با رسم آنها در زمان واقعی و با پارامترهای قابل سفارشیسازی مرئی کنید. چه چیزی آن را بهویژه مفید میکند؟ میتوانید بلافاصله ببینید که تغییر دامنه، فرکانس یا جابجایی فاز چگونه بر الگوی موج تأثیر میگذارد - چیزی که از فرمولها به تنهایی درک آن دشوار است.
از کار با دانشجویان و مهندسان این را دریافتهام: لحظهای که میتوانید این پارامترها را دستکاری کنید و نمودار را پاسخ دهنده ببینید، مفاهیم انتزاعی ناگهان واضح میشوند. شما قادر خواهید بود دامنه (ارتفاع امواج)، فرکانس (فشردگی آنها) و جابجایی فاز (حرکت افقی) را تنظیم کنید تا رفتار توابع سینوس، کسینوس و تانژانت را بررسی کنید.
توابع مثلثاتی نسبتهای اضلاع در یک مثلث قائمالزاویه یا رابطه بین یک زاویه و نقطهای روی دایره واحد را توصیف میکنند. چه چیزی آنها را در کاربردهای دنیای واقعی قدرتمند میسازد؟ آنها دورهای هستند—در فواصل منظم تکرار میشوند—به همین دلیل آنها را در همه جا از امواج صوتی تا مدارهای برقی متناوب و الگوهای دمای فصلی مییابید.
تابع سینوس نسبت ضلع مقابل به وتر در یک مثلث قائمالزاویه را نشان میدهد. در دایره واحد، مختصات y یک نقطه در زاویه x را میدهد. آن را به عنوان مؤلفه عمودی حرکت دایرهای در نظر بگیرید.
فرم استاندارد:
ویژگیهای کلیدی که استفاده خواهید کرد:
در عمل، امواج سینوسی همه چیز از سیگنالهای صوتی تا جریان متناوب را مدل میکنند. وقتی یک نت موسیقایی خالص را میشنوید، در واقع یک موج سینوسی با فرکانس خاص را میشنوید.
تابع کسینوس نسبت ضلع مجاور به وتر در یک مثلث قائمالزاویه را نشان میدهد. در دایره واحد، مختصات x یک نقطه در زاویه x است—در اساس مؤلفه افقی حرکت دایرهای.
فرم استاندارد:
ویژگیهای کلیدی:
چیز جالب اینجاست: کسینوس فقط سینوس جابجا شده به اندازه رادیان (90 درجه) است. در مهندسی برق، این اختلاف فاز هنگام تحلیل مدارهای متناوب با اجزای راکتیو مانند خازنها و سلفها بسیار مهم است.
تابع تانژانت نسبت ضلع مقابل به ضلع مجاور در یک مثلث قائمالزاویه را نشان میدهد. میتوانید آن را به صورت نیز در نظر بگیرید، که توضیح میدهد چرا آن خطوط قائم عمودی جالب دارد.
فرم استاندارد:
ویژگیهای کلیدی:
اشتباه رایج: فراموش کردن اینکه تانژانت در آن خطوط قائم به سمت بینهایت میرود. این اتفاق زمانی رخ میدهد که شما بر صفر تقسیم میکنید زمانی که . در ناوبری و نقشهبرداری، تانژانت زاویه را به شیب مرتبط میکند—اگر زاویه ارتفاع و فاصله افقی را بدانید، تانژانت ارتفاع را میدهد.
کاربردهای دنیای واقعی به ندرت از توابع سینوس یا کسینوس خالص استفاده میکنند. شما معمولاً پارامترها را برای تطبیق با سناریوی خاص خود تنظیم خواهید کرد. فرم کلی:
که در آن:
این اصلاحات برای توابع کسینوس و تانژانت نیز یکسان عمل میکنند. عملی بودن آن چیست؟ میتوانید یک سیگنال برقی 60 هرتز با دامنه 120 ولت را به صورت مدل کنید، یا تغییرات دمای روزانه که حول 72 درجه فارنهایت نوسان میکند.
رسمگر بلافاصله با تنظیم پارامترها بهروز میشود که آزمایش را طبیعی و شهودی میکند. در اینجا نحوه بیشترین استفاده از آن آمده است:
انتخاب تابع: سینوس، کسینوس یا تانژانت را از منوی کشویی انتخاب کنید. اگر تازه کار هستید، با سینوس شروع کنید - درک آن آسانتر است.
تنظیم پارامترها:
مشاهده بهروزرسانیهای بلادرنگ: نمودار بلافاصله به تغییرات شما پاسخ میدهد. این بازخورد فوری باعث میشود مفهوم در ذهن بماند - بسیار بهتر از رسم نقاط با دست.
مطالعه نقاط بحرانی: به جایی که تابع از صفر عبور میکند، به اوج میرسد یا به نقاط نامتناهی (برای تانژانت) میرسد، توجه کنید. این نقاط همه چیز را درباره رفتار تابع میگویند.
کپی فرمول: از دکمه کپی برای ذخیره تابع فعلی خود استفاده کنید. شما به این برای تکالیف خانگی، گزارشها یا پیادهسازی تابع در کد نیاز خواهید داشت.
آنچه در عمل خوب کار میکند:
ساده شروع کنید: همیشه با مقادیر پیشفرض شروع کنید (دامنه = 1، فرکانس = 1، جابجایی فاز = 0). قبل از افزودن پیچیدگی، شهود خود را بسازید.
یک چیز را در هر زمان تغییر دهید: این بسیار مهم است. اگر دامنه و فرکانس را همزمان تنظیم کنید، نمیدانید کدام یک باعث چه تغییری شده است. متغیرها را مانند هر آزمایشی جدا کنید.
به نقاط نامتناهی توجه کنید: هنگام کار با تانژانت، آن خطوط عمودی خطا نیستند - آنها نقاط نامتناهی هستند که تابع در آنها تعریف نشده است. آنها در فواصل منظم () رخ میدهند.
توابع را کنار هم مقایسه کنید: بین سینوس و کسینوس با پارامترهای یکسان جابجا شوید. خواهید دید که کسینوس فقط سینوس با جابجایی 90 درجه است. این رابطه در پردازش سیگنال اساسی است.
مقادیر حدی را امتحان کنید: دامنه = 10 یا فرکانس = 0.1 را امتحان کنید. درک موارد حدی از غافلگیریها در دادههای غیرعادی در پروژههای واقعی جلوگیری میکند.
رسمگر توابع مثلثاتی از فرمولهای زیر برای محاسبه و نمایش نمودارها استفاده میکند:
که در آن:
که در آن:
که در آن:
برای تابع سینوس با دامنه = 2، فرکانس = 3، و جابجایی فاز = π/4:
برای محاسبه مقدار در x = π/6:
توابع مثلثاتی را در جاهای غیرمنتظرهای خواهید یافت. در اینجا مواردی است که این رسمگر واقعاً مفید است:
[ترجمه ادامه دارد...]
توسعه توابع مثلثاتی و نمایش گرافیکی آنها هزاران سال طول کشیده است و از کاربردهای عملی به نظریه ریاضی پیچیده تکامل یافته است.
مثلثات با نیازهای عملی نجوم، ناوبری و زمینشناسی در تمدنهای باستانی آغاز شد:
نمایش توابع مثلثاتی به صورت نمودارهای پیوسته توسعهای نسبتاً جدید است:
توابع مثلثاتی زوایا را به نسبتهای مثلث قائمالزاویه مرتبط میکنند. سه تابع اصلی سینوس، کسینوس و تانژانت هستند (معکوس آنها - کوسکانت، سکانت و کوتانژانت - کمتر استفاده میشوند). اینها فقط مفاهیم نظری ریاضی نیستند؛ آنها پایه توصیف هر چیزی که نوسان یا چرخش دارد هستند: امواج، حرکت دایرهای، جریان متناوب، چرخههای فصلی و غیره. شما آنها را در فیزیک، مهندسی، گرافیک کامپیوتر و علوم داده مییابید.
موضوع این است: نگاه کردن به ریاضیات را نشان میدهد اما درک شهودی ایجاد نمیکند. وقتی آن را رسم میکنید، بلافاصله میبینید که دو برابر بلندتر از حالت معمولی نوسان میکند، سه برابر سریعتر چرخه میزند و به سمت چپ جابجا شده است. نمودارها الگوها، صفرها، قلهها و نقاط بینهایت را در یک نگاه نشان میدهند. این درک بصری در تحلیل تداخل امواج، اشکالزدایی کد پردازش سیگنال یا توضیح مفاهیم به دیگران ضروری است.
دامنه ارتفاع را کنترل میکند - چقدر موج شما به صورت عمودی کشیده میشود. برای سینوس و کسینوس، این فاصله از خط مرکزی تا قله است. دامنه را روی 2 تنظیم کنید و موج سینوس از -2 تا +2 به جای -1 تا +1 استاندارد میرسد. در کاربردهای واقعی، دامنه مقادیر فیزیکی را نشان میدهد: ولتاژ در مدارها (120 ولت)، فشار صوت در آکوستیک یا جابجایی در سیستمهای مکانیکی. دامنه بزرگتر = امواج بلندتر.
فرکانس نحوه فشرده یا کشیده شدن موج را به صورت افقی کنترل میکند - اساساً چند چرخه کامل در یک فضای داده شده جا میگیرد. را تنظیم کنید و خواهید دید که دو چرخه کامل در فضایی که یک چرخه کامل میکند. فرکانس بالاتر یعنی نوسانات بیشتر. در شرایط عملی: فرکانس بالاتر صوتی = پیچ بالاتر، فرکانس بالاتر امواج الکترومغناطیسی = انرژی بیشتر (مقایسه کنید رادیو با اشعه ایکس).
جابجایی فاز کل نمودار را بدون تغییر شکل آن به چپ یا راست میلغزاند. مقادیر مثبت به چپ جابجا میکنند (برخلاف انتظار!)، مقادیر منفی به راست. دلیل اهمیت این موضوع: سینوس را 90 درجه به چپ جابجا میکند، که آن را دقیقاً مشابه میکند. در الکترونیک، جابجایی فاز تعیین میکند که آیا سیگنالهای AC همدیگر را تقویت یا خنثی میکنند. در صوت، این دلیل کار هدفونهای حذف نویز است - آنها صدایی با فاز مخالف تولید میکنند تا نویز محیطی را خنثی کنند.
آن خطوط عمودی نقاط بینهایت هستند - مکانهایی که تابع به سمت بینهایت میرود و از نظر ریاضی تعریف نشده است. از آنجا که ، هر زمان که (در و غیره)، شما بر صفر تقسیم میکنید. تابع از یک طرف به سمت مثبت بینهایت و از طرف دیگر به سمت منفی بینهایت میرود، این پیوستگیها را ایجاد میکند. این یک اشکال در نمودارگر نیست - این رفتار اساسی تانژانت است. شما این را در تحلیل شیبهای نزدیک به عمودی یا در سیستمهای الکتریکی با شرایط تشدید مواجه خواهید شد.
هر دو زاویه را اندازه میگیرند، اما رادیان از نظر ریاضی طبیعیتر هستند. یک دایره کامل 360 درجه یا رادیان (حدود 6.28) است. چرا از رادیان استفاده کنیم؟ آنها حساب دیفرانسیل و انتگرال را ساده میکنند و فرمولها را تمیزتر میسازند. برای مثال، مشتق فقط زمانی است که x در رادیان باشد. این نمودارگر از رادیان استفاده میکند زیرا آنها در ریاضیات عالی و برنامهنویسی استاندارد هستند. تبدیل سریع: درجه را در ضرب کنید تا به رادیان برسید، یا از این واقعیت استفاده کنید که رادیان.
نه با این نمودارگر - او یک تابع را در هر زمان برای وضوح نشان میدهد. این انتخاب طراحی به شما کمک میکند تا بر درک رفتار هر تابع بدون شلوغی بصری تمرکز کنید. اگر نیاز به مقایسه چند تابع در محورهای یکسان دارید (مثلاً برای دیدن ارتباط سینوس و کسینوس)، از Desmos یا GeoGebra استفاده کنید. این ابزارها پوششدهی چندین نمودار را پشتیبانی میکنند که برای تحلیل پیشرفته مفید است.
او از توابع داخلی جاوااسکریپت Math.sin()، Math.cos() و Math.tan() استفاده میکند که استاندارد شناور IEEE 754 را اجرا میکنند. برای اهداف آموزشی، تکالیف خانگی و اکثر کاربردهای عملی، این کافی دقیق است (معمولاً 15-17 رقم معنادار). با این حال، محدودیتهایی دارد: مقادیر حدی ممکن است خطاهای دقت اعشاری نشان دهند و با محاسبات دقیق نمادین یا با دقت بسیار بالا کار نمیکند. برای تحقیقات نیازمند به محاسبات نمادین دقیق یا دقت بسیار بالا، از Mathematica، Maple یا Python با SymPy استفاده کنید.
میتوانید فرمول تابع را با دکمه "کپی" کپی کنید که برای مستندسازی یا پیادهسازی تابع در کد مفید است. برای خود نمودار، از ابزار اسکرینشات دستگاه خود استفاده کنید (Ctrl+Shift+S در Windows/Linux، Cmd+Shift+4 در Mac، یا ژست اسکرینشات تلفن همراه). اگرچه این نمودارگر مستقیماً تصاویر را صادر نمیکند، اسکرینشاتها برای گزارشها، ارائهها یا به اشتراکگذاری با همکاران خوب کار میکنند.
در اینجا مثالهایی در زبانهای برنامهنویسی مختلف وجود دارد که نحوه محاسبه و کار با توابع مثلثاتی را نشان میدهد:
1// مثال جاوااسکریپت برای محاسبه و رسم تابع سینوس
2function calculateSinePoints(amplitude, frequency, phaseShift, start, end, steps) {
3 const points = [];
4 const stepSize = (end - start) / steps;
5
6 for (let i = 0; i <= steps; i++) {
7 const x = start + i * stepSize;
8 const y = amplitude * Math.sin(frequency * x + phaseShift);
9 points.push({ x, y });
10 }
11
12 return points;
13}
14
15// مثال استفاده:
16const sinePoints = calculateSinePoints(2, 3, Math.PI/4, -Math.PI, Math.PI, 100);
17console.log(sinePoints);
181# مثال پایتون با matplotlib برای تصویرسازی توابع مثلثاتی
2import numpy as np
3import matplotlib.pyplot as plt
4
5def plot_trig_function(func_type, amplitude, frequency, phase_shift):
6 # ایجاد مقادیر x
7 x = np.linspace(-2*np.pi, 2*np.pi, 1000)
8
9 # محاسبه مقادیر y بر اساس نوع تابع
10 if func_type == 'sin':
11 y = amplitude * np.sin(frequency * x + phase_shift)
12 title = f"f(x) = {amplitude} sin({frequency}x + {phase_shift})"
13 elif func_type == 'cos':
14 y = amplitude * np.cos(frequency * x + phase_shift)
15 title = f"f(x) = {amplitude} cos({frequency}x + {phase_shift})"
16 elif func_type == 'tan':
17 y = amplitude * np.tan(frequency * x + phase_shift)
18 # فیلتر کردن مقادیر نامتناهی برای تصویرسازی بهتر
19 y = np.where(np.abs(y) > 10, np.nan, y)
20 title = f"f(x) = {amplitude} tan({frequency}x + {phase_shift})"
21
22 # ایجاد نمودار
23 plt.figure(figsize=(10, 6))
24 plt.plot(x, y)
25 plt.grid(True)
26 plt.axhline(y=0, color='k', linestyle='-', alpha=0.3)
27 plt.axvline(x=0, color='k', linestyle='-', alpha=0.3)
28 plt.title(title)
29 plt.xlabel('x')
30 plt.ylabel('f(x)')
31
32 # اضافه کردن نقاط خاص برای محور x
33 special_points = [-2*np.pi, -3*np.pi/2, -np.pi, -np.pi/2, 0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi]
34 special_labels = ['-2π', '-3π/2', '-π', '-π/2', '0', 'π/2', 'π', '3π/2', '2π']
35 plt.xticks(special_points, special_labels)
36
37 plt.ylim(-5, 5) # محدود کردن محور y برای تصویرسازی بهتر
38 plt.show()
39
40# مثال استفاده:
41plot_trig_function('sin', 2, 1, 0) # رسم f(x) = 2 sin(x)
421// مثال جاوا برای محاسبه مقادیر مثلثاتی
2import java.util.ArrayList;
3import java.util.List;
4
5public class TrigonometricCalculator {
6
7 public static class Point {
8 public double x;
9 public double y;
10
11 public Point(double x, double y) {
12 this.x = x;
13 this.y = y;
14 }
15
16 @Override
17 public String toString() {
18 return "(" + x + ", " + y + ")";
19 }
20 }
21
22 public static List<Point> calculateCosinePoints(
23 double amplitude,
24 double frequency,
25 double phaseShift,
26 double start,
27 double end,
28 int steps) {
29
30 List<Point> points = new ArrayList<>();
31 double stepSize = (end - start) / steps;
32
33 for (int i = 0; i <= steps; i++) {
34 double x = start + i * stepSize;
35 double y = amplitude * Math.cos(frequency * x + phaseShift);
36 points.add(new Point(x, y));
37 }
38
39 return points;
40 }
41
42 public static void main(String[] args) {
43 // محاسبه نقاط برای f(x) = 2 cos(3x + π/4)
44 List<Point> cosinePoints = calculateCosinePoints(
45 2.0, // دامنه
46 3.0, // فرکانس
47 Math.PI/4, // جابجایی فاز
48 -Math.PI, // شروع
49 Math.PI, // پایان
50 100 // گامها
51 );
52
53 // چاپ چند نقطه اول
54 System.out.println("اولین 5 نقطه برای f(x) = 2 cos(3x + π/4):");
55 for (int i = 0; i < 5 && i < cosinePoints.size(); i++) {
56 System.out.println(cosinePoints.get(i));
57 }
58 }
59}
601' تابع VBA اکسل برای محاسبه مقادیر سینوس
2Function SineValue(x As Double, amplitude As Double, frequency As Double, phaseShift As Double) As Double
3 SineValue = amplitude * Sin(frequency * x + phaseShift)
4End Function
5
6' فرمول اکسل برای تابع سینوس (در سلول)
7' =A2*SIN(B2*C2+D2)
8' جایی که A2 دامنه، B2 فرکانس، C2 مقدار x، و D2 جابجایی فاز است
91// پیادهسازی C برای محاسبه مقادیر تابع تانژانت
2#include <stdio.h>
3#include <math.h>
4
5// تابع برای محاسبه تانژانت با پارامترها
6double parameterizedTangent(double x, double amplitude, double frequency, double phaseShift) {
7 double angle = frequency * x + phaseShift;
8
9 // بررسی نقاط نامعرف (جایی که cos = 0)
10 double cosValue = cos(angle);
11 if (fabs(cosValue) < 1e-10) {
12 return NAN; // عدد نامشخص برای نقاط نامعرف
13 }
14
15 return amplitude * tan(angle);
16}
17
18int main() {
19 double amplitude = 1.0;
20 double frequency = 2.0;
21 double phaseShift = 0.0;
22
23 printf("x\t\tf(x) = %g tan(%gx + %g)\n", amplitude, frequency, phaseShift);
24 printf("----------------------------------------\n");
25
26 // چاپ مقادیر از -π تا π
27 for (double x = -M_PI; x <= M_PI; x += M_PI/8) {
28 double y = parameterizedTangent(x, amplitude, frequency, phaseShift);
29
30 if (isnan(y)) {
31 printf("%g\t\tنامعرف (خط قائم)\n", x);
32 } else {
33 printf("%g\t\t%g\n", x, y);
34 }
35 }
36
37 return 0;
38}
39آبراموویتز، م. و استگون، آ. آ. (ویراستگان). "کتاب راهنمای توابع ریاضی با فرمولها، نمودارها و جداول ریاضی،" چاپ نهم. نیویورک: دوور، 1972.
گلفاند، آ. م.، و فومین، س. و. "حساب تغییرات." انتشارات کوریر، 2000.
کرایزیگ، آ. "مهندسی پیشرفته ریاضی،" چاپ دهم. جان وایلی و پسران، 2011.
بوستوک، م.، اوگیوتسکی، و.، و هیر، ج. "D3: اسناد مبتنی بر داده." نشریه IEEE در تصویرسازی و گرافیک کامپیوتر، 17(12)، 2301-2309، 2011. https://d3js.org/
"توابع مثلثاتی." آکادمی خان، https://www.khanacademy.org/math/trigonometry/trigonometry-right-triangles/intro-to-the-trig-ratios/a/trigonometric-functions. دسترسی در 3 اوت 2023.
"تاریخ مثلثات." آرشیو تاریخ ریاضیات مکتوتور، دانشگاه سنت اندروز، اسکاتلند. https://mathshistory.st-andrews.ac.uk/HistTopics/Trigonometric_functions/. دسترسی در 3 اوت 2023.
مائور، آ. "لذات مثلثاتی." انتشارات دانشگاه پرینستون، 2013.
چه در حال اشکالزدایی از یک الگوریتم پردازش سیگنال باشید، چه برای امتحان حساب آماده میشوید، یا فقط کنجکاو رفتار موجها هستید، این ترسیمگر بازخورد بصری فوری به شما میدهد. دامنه، فرکانس و جابجایی فاز را تنظیم کنید و ببینید چگونه ریاضیات جان میگیرد.
بهترین راه برای درک توابع مثلثاتی حفظ کردن فرمولها نیست - بلکه بازی کردن با آنها است. شروع به ترسیم کنید و خودتان ببینید که این الگوهای بنیادی چگونه در همه جا از مکانیک کوانتومی تا مهندسی صوت و انیمیشن کامپیوتری ظاهر میشوند.
کشف ابزارهای بیشتری که ممکن است برای جریان کاری شما مفید باشند