شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
قاعده ذوزنقه ای — به زبان ساده (+ دانلود فیلم آموزش گام به گام)
۸۵۸۱ بازدید
آخرین بهروزرسانی: ۱۸ اردیبهشت ۱۴۰۲
زمان مطالعه: ۵۹ دقیقه
دانلود PDF مقاله
در آموزشهای قبلی مجله فرادرس، درباره انتگرال و روشهای محاسبه آن بحث کردیم. در این آموزشها، مباحثی مانند انتگرال توابع مثلثاتی، انتگرالگیری جزء به جزء، انتگرال دوگانه و انتگرال سهگانه را معرفی کردیم. همچنین با تغییر متغیر و کاربرد آن در انتگرالگیری آشنا شدیم. گاهی میخواهیم ناحیه بین یک منحنی و محور مختصات را محاسبه کنیم، اما نمیتوانیم حاصل انتگرال مربوط به محاسبه مساحت منحنی را به راحتی و با محاسبه تحلیلی به دست آوریم. یکی از راههایی که در این مواقع وجود دارد، استفاده از روشهای عددی برای محاسبه انتگرال منحنی است. قبلاً با یکی از این روشها، یعنی قاعده سیمپسون آشنا شدیم. در این آموزش، قاعده ذوزنقه ای برای محاسبه انتگرال را معرفی میکنیم.
اساس روش قاعده ذوزنقهای این است که منحنی را به ذوزنقههایی تقسیم کرده، مساحت همه آنها را به دست آورده و در نهایت برای تعیین مساحت تقریبی نهایی با هم جمع کنیم.
در اینجا، با ذوزنقههای قائمالزاویه سروکار داریم که اضلاع دو سمت آن موازی هستند و زاویه آنها نسبت به مرجع، 90 درجه است. قاعده آنها نیز برابر با h=Δx است.
بنابراین، مساحت زیر منحنی به صورت زیر محاسبه میشود:
A≈21(y0+y1)Δx+21(y1+y2)Δx+21(y2+y3)Δx+…
قانون ذوزنقهای برای n ذوزنقه، برابر است با (A مساحت بین منحنی و محور است):
A≈Δx(2y0+y1+y2+y3+…+2yn)
برای پیدا کردن Δx مربوط به مساحت زیر منحنی از x=a تا x=b، از رابطه زیر استفاده میکنیم:
Δx=nb−a
همچنین باید نقاط زیر را محاسبه کنیم:
y0y1y2yn=f(a)=f(a+Δx)=f(a+2Δx)…=f(b)
اگر تعداد ذوزنقههای بیشتری را در نظر بگیریم، تقریب بهتری خواهیم داشت. هرچه تعداد ذوزنقهها بیشتر باشد، اندازه Δx به صفر میل میکند؛ یعنی Δx→0.
همچنین، اگر منحنی بالای محور x بین x=a و x=b باشد، میتوان نوشت:
A=∫abf(x)dx≈Δx(2y0+y1+…+2yn)
خطا در قاعده ذوزنقهای
وقتی مقدار عددی انتگرال را تقریب میزنیم، همیشه مقداری خطا وجود دارد. این خطا برابر است با:
E=∫abf(x)dx−App
که در آن، App مقدار تقریبی و E خطا است.
حال میخواهیم بدانیم محدوده خطای قاعده ذوزنقهای چقدر است. فرض کنید برای a≤x≤b داشته باشیم: ∣f′′(x)∣≤M. بنابراین، کران خطا به صورت زیر خواهد بود:
∣E∣≤12n2M(b−a)3
مثالها
در ادامه، مثالهایی را از کاربرد قاعده ذوزنقهای بیان میکنیم.
1import numpy as np
2import matplotlib.pyplot as plt
3%matplotlib inline
برای نوشتن برنامه قاعده ذوزنقهای در پایتون، ابتدا تابع trapz را تعریف میکنیم که پارامترهای ورودی آن f، a، b و N هستند و تقریب TN(f) را به عنوان خروجی به دست میدهد. مقدار N=50 را در نظر میگیریم. برنامه به صورت زیر است:
1def trapz(f,a,b,N=50):2'''Approximate the integral of f(x) from a to b by the trapezoid rule.34 The trapezoid rule approximates the integral \int_a^b f(x) dx by the sum:5(dx/2) \sum_{k=1}^N (f(x_k)+f(x_{k-1}))6 where x_k = a + k*dx and dx =(b - a)/N.78 Parameters
9----------10 f :function11 Vectorized function of a single variable
12 a , b : numbers
13 Interval of integration [a,b]14 N : integer
15 Number of subintervals of [a,b]1617 Returns
18-------19 float
20 Approximation of the integral of f(x) from a to b using the
21 trapezoid rule with N subintervals of equal length.2223 Examples
24--------25>>>trapz(np.sin,a=0,b=np.pi/2,N=1000)260.9999997943832331627'''
28 x = np.linspace(a,b,N+1)29 y =f(x)30 y_right = y[1:] # Right endpoints
31 y_left = y[:-1] # Left endpoints
32 dx =(b - a)/N
33 T =(dx/2)* np.sum(y_right + y_left)34return T
اکنون برنامه بالا را برای انتگرالی که مقدار آن را میدانیم، آزمایش میکنیم. برای مثال، انتگرال زیر را در نظر بگیرید:
∫0π/2sinxdx=1
برنامه و نتیجه اجرای آن برای این انتگرال به صورت زیر است:
1trapz(np.sin,0,np.pi/2,1000)
10.99999979438323316
برای انتگرال زیر نیز برنامه را اجرا میکنیم:
∫013x2dx=1
در نتیجه، داریم:
1trapz(lambda x :3*x**2,0,1,10000)
11.0000000050000002
پیادهسازی در متلب
برنامه متلب قاعده ذوزنقهای نیز به صورت زیر است:
1function I = trapezoidal_f1 ( f )2%for calculating integrals using trapezoidal rule when function is known
34%asking for the range and desired accuracy
5 R=input(' Enter the limits of integrations [ x_min, x_max] :\n');6 tol =input(' Error allowed in the final answer should be of an order : \n');7 a=R(1,1); b =R(1,2);89%initial h and n
10 n =100;11 h =(b -a )/100;1213%for calculating maximum of h^2*f''(x)in the given region
14for k =0:10015x(1, k+1)= a + k*h ;16 y2 (1, k+1)= feval ( f,x(1,k+1)+2*h )-2*feval( f,x(1,k+1)+ h )+feval( f,x(k+1));17 end
18[ y i ]=max( y2);19 x_opt =x(1,i);2021%for calculating the desired value of h
22 m=0;23whileabs((feval ( f, x_opt +2*h )-2*feval(f, x_opt+ h)+feval(f, x_opt))*( b-a)/12)> tol % Global error for trapezoidal rule
24 m = m +1;25 h = h *10^-m;26 end
2728%calculating n
29 n =ceil((b-a)/h );30 h =( b-a )/ n;3132% forming matrix X
33for k =1:(n+1)34X(k,1)= a +(k-1)*h;35X(k,2)=feval( f,X(k,1));36 end
3738% trapezoidal formula
39I = h/2*(2*sum(X(:,2))-X(1,2)-X( n,2));40% displaying final result
41 h
42 n
43disp(sprintf(' The area under this curve in the interval ( %10f , %10f ) is %10.6f .',a,b,I))
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
سید سراج حمیدی دانشآموخته مهندسی برق است و به ریاضیات و زبان و ادبیات فارسی علاقه دارد. او آموزشهای مهندسی برق، ریاضیات و ادبیات مجله فرادرس را مینویسد.
۳ دیدگاه برای «قاعده ذوزنقه ای — به زبان ساده (+ دانلود فیلم آموزش گام به گام)»
امیر
در شکل دوم، پارامتر h، به صورت سهوی اشتباه داده شده است. h اندازه ارتفاع ذوزنقه است ولی به صورت اندازه ضلع مایل نشان داده شده است. لطفا اصلاح بفرمایید.
حسین زبرجدی دانا
سلام؛
تصویر اصلاح شد. خیلی ممنون از دقت شما.
از همراهیتان با مجله فرادرس سپاسگزاریم.
Leila
بسیار مفید بود سپاسگزارم و به بقیه دوستان توصیه میکنم. کاربردش برای من د درس آنالیز عددی پیشرفته مقطع ارشد بود. باز هم ممنونم
شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
در شکل دوم، پارامتر h، به صورت سهوی اشتباه داده شده است. h اندازه ارتفاع ذوزنقه است ولی به صورت اندازه ضلع مایل نشان داده شده است. لطفا اصلاح بفرمایید.
سلام؛
تصویر اصلاح شد. خیلی ممنون از دقت شما.
از همراهیتان با مجله فرادرس سپاسگزاریم.
بسیار مفید بود سپاسگزارم و به بقیه دوستان توصیه میکنم. کاربردش برای من د درس آنالیز عددی پیشرفته مقطع ارشد بود. باز هم ممنونم