English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دمج MATLAB (Integration)

معالجة التكامل لكل من المشاكل المختلفة بأسلوبين

  • في النوع الأول، يقدم الدوال الديرivative، نريد العثور على الدالة. لذا، نحن نغير جذريًا عملية التدرج. يُسمى هذا العمل العكسي التكامل العكسي، أو العثور على الدالة الأصلية، أو العثور علىالتكامل الغير محدد

  • المشكلة الثانية تتعلق بجمع كميات صغيرة جدًا جدًا، ثم أخذ الحد عندما يقترب حجم الكميات من الصفر، بينما تزداد عدد الأجزاء إلى لا نهائية. يسبب هذا العمل التعريفالتكامل المحدد

التكامل المحدد يستخدم للبحث عن المساحة، الحجم، المركز، المومنت الموجودي، العمل الذي يقوم به القوة، والعديد من التطبيقات الأخرى.

استخدام MATLAB للبحث عن التكامل الغير محدد

حسب التعريف، إذا كان الدوال الديرivative f(x) هي f'(x)، فإننا نقول أن التكامل الغير محدد لـf'(x) بالنسبة لـx هو f(x). على سبيل المثال، بسبب x 2ال导ر (بمقارنة مع x) هو 2x، لذا يمكن القول أن不定ية التكامل لـ2x هي x 2

在符号中-

f'(x2) = 2x, 所以,

∫ 2xdx = x2.

不定积分不是唯一的,因为对于常数c的任何值,x 2 + c的导数也将是2x。

这用符号表示为-

∫ 2xdx = x2 + c

其中,c被称为“任意常数”。

MATLAB提供了int用于计算表达式积分的命令。为了导出一个函数的不定积分的表达式,我们写:

int(f);

例如,从我们之前的示例中-

syms x 
int(2*x)

يؤدي MATLAB إلى تنفيذ هذه التعليمات ويظهر النتيجة التالية -

ans =
   x^2

مثال 1

在此示例中,让我们找到一些常用表达式的积分。创建一个脚本文件并在其中键入以下代码-

syms x n
int(sym(x^n))
f = 'sin(n*t)'
int(sym(f))
syms a t
int(a*cos(pi*t))
int(a^x)

عند تشغيل الملف، يظهر النتيجة التالية -

ans =
   piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)])
f =
sin(n*t)
ans =
   -cos(n*t)/n
   ans =
   (a*sin(pi*t))/pi
   ans =
   a^x/log(a)

مثال 2

创建一个脚本文件并在其中键入以下代码-

syms x n
int(cos(x))
int(exp(x))
int(log(x))
int(x^-1)
int(x^5*cos(5*x))
pretty(int(x^5*cos(5*x)))
int(x^-5)
int(sec(x)^2)
pretty(int(1 - 10*x + 9 * x^2))
int((3 + 5*x - 6*x^2 - 7*x^3)/2*x^2)
pretty(int((3 + 5*x - 6*x^2 - 7*x^3)/2*x^2))

请注意,pretty函数以更易读的格式返回表达式。

عند تشغيل الملف، يظهر النتيجة التالية -

ans =
   sin(x)
 
ans =
   exp(x)
 
ans =
   x*(log(x) - 1)
 
ans =
   log(x)
 
ans =
(24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5
                                    2 
   24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x) 
   ----------- + --------------- - -------------- + ---------- 
      3125            625              125              5 
   
        3              5 
 
   4 x sin(5 x)   x sin(5 x) 
   ------------- + ----------- 
         25              5
 
ans =
-1/(4*x^4)
 
ans =
tan(x)
        2 
  x (3 x - 5 x + 1)
 
ans = 
- (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2
 
      6      5      4    3 
    7 x    3 x    5 x    x 
  - ---- - ---- + ---- + -- 
     12     5      8      2

استخدام MATLAB للبحث عن التكامل الكلي

وفقا للتعريف، التكامل الكلي هو الحد من المجموع. نستخدم التكامل الكلي لتحديد المساحة، مثل مساحة الحجب بين المنحنى وال محور x و بين منحنيين. يمكن أيضًا استخدام التكامل الكلي في حالات أخرى، حيث يمكن تمثيل الكمية المطلوبة كحد من المجموع.

intمن خلال تقديم الحدود للدالة المعادلة، يمكن استخدام هذه الدالة لتحديد المعادلة التكاملية.

حساب

نكتب،

int(x, a, b)

على سبيل المثال، لتحديد القيمة، نكتب:

int(x, 4, 9)

يؤدي MATLAB إلى تنفيذ هذه التعليمات ويظهر النتيجة التالية -

ans =
   65/2

هذه هي الأنظمة المماثلة لما تم حسابه في Octave -

pkg load symbolic
symbols
x = sym("x");
f = x;
c = [1, 0];
integral = polyint(c);
a = polyval(integral, 9) - polyval(integral, 4);
display('منطقة: '), disp(double(a));

يتم تنفيذ الكود في Octave ويتم العودة إلى النتيجة التالية -

منطقة: 
   32.500

يمكن استخدام وظيفة quad()المقدمة من Octave لتقديم حل بديل، مثلما يلي:}}

pkg load symbolic
symbols
f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);
display('منطقة: '), disp(double(a));

يتم تنفيذ الكود في Octave ويتم العودة إلى النتيجة التالية -

منطقة: 
   32.500

مثال 1

لنحسب في المحور x والمنحنى y = x 3 -2x + 5 ومساحة الحجب بين المحاور x = 1 وx = 2.

مساحة الحاجة تقدم من المعادلة التالية:

أنشئ ملف سكربت وادخل الكود التالي -

f = x^3 - 2*x + 5;
a = int(f, 1, 2)
display('منطقة: '), disp(double(a));

عند تشغيل الملف، يظهر النتيجة التالية -

a =
23/4
منطقة: 
   5.7500

هذه هي الأنظمة المماثلة لما تم حسابه في Octave -

pkg load symbolic
symbols
x = sym("x");
f = x^3 - 2*x + 5;
c = [1, 0, -2, 5];
integral = polyint(c);
a = polyval(integral, 2) - polyval(integral, 1);
display('منطقة: '), disp(double(a));

يتم تنفيذ الكود في Octave ويتم العودة إلى النتيجة التالية -

منطقة: 
   5.7500

يمكن استخدام وظيفة quad()المقدمة من Octave لتقديم حل بديل، مثلما يلي:}}

pkg load symbolic
symbols
x = sym("x");
f = inline("x^3 - 2*x +5");
[a, ierror, nfneval] = quad(f, 1, 2);
display('منطقة: '), disp(double(a));

يتم تنفيذ الكود في Octave ويتم العودة إلى النتيجة التالية -

منطقة: 
   5.7500

مثال 2

ابحث عن مساحة تحت المنحنى: f(x)= x 2 cos(x)يعبر عن نطاق −4≤x≤9.

أنشئ ملف سكريبت واكتب الكود التالي -

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
display('منطقة: '), disp(double(a));

عند تشغيل الملف، يرسم MATLAB الرسوم البيانية -

النتيجة كما يلي -

a = 
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
منطقة: 
   0.3326

هذه هي الأنظمة المماثلة لما تم حسابه في Octave -

pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('منطقة: '), disp(double(a));