Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Вычисление определенных интегралов

Для вычисления интегралов методом трапеций в системе MATLAB преду­смотрена функция trapz: Integ = trapz (х, у);

Одномерный массив х (вектор) содержит дискретные значения аргументов подынтегральной функции. Значения подынтегральной функции в этих точках сосредоточены в одномерном массиве у. Чаще всего для интегрирования выби­рают равномерную сетку, то есть значения элементов массива х отстоят друг от друга на одну и ту же величин (шаг интегрирования). Точность вычисления ин­теграла зависит от величины шага интегрирования: чем меньше этот шаг, тем больше точность.

Вычислим простой интеграл методом трапеций с шагом интегрирования рi/10.

π

∫ cos(x)dx .

dx = pi/10;

х = 0:dx:pi;

y=cos(x);

I1 = trapz(x,y);

I1 = 5.5511e-017

Обычно для достижения высокой точности требуется выполнять интегри­рование с очень малыми шагами, а контроль достигнутой точности осуществ­лять путем сравнения последовательных результатов. При одном и том же шаге интегрирования методы более высоких порядков точности достигают более точных результатов.

В системе MATLAB методы интегрирования более высоких порядков точ­ности реализуются функциями: quad (метод Симпcона) и quad8 (метод Ньюто-на-Котеса 8-го порядка точности). Оба этих метода являются к тому же адаптивными. Последнее означает, что пользователю нет необходимости контроли­ровать достигнутую точность результата путем сравнения последовательных значений, соответствующих разным шагам интегрирования. Все это указанные адаптивные функции выполняют самостоятельно.

У функции quad8 более высокий порядок точности по сравнению с функ­цией quad, что очень хорошо для гладких функций, так как обеспечивается бо­лее высокая точность результата при большем шаге интегрирования (меньшем объеме вычислений). Как и многие другие функции системы MATLAB, функ­ции quad и quad8 могут принимать различное количество параметров. Мини­мальный формат вызова этих функций quad8(name, x1, x2)

включает в себя три параметра: имя подынтегральной функции – name, нижний предел интегрирования – x1 и верхний предел интегрирования – x2. Если при­меняется четвертый параметр, то он является требуемой относительной точно­стью результата вычислений. Кстати, если обе эти адаптивные функции не мо­гут обеспечить получение необходимой точности (расходящийся или близкий к этому интеграл), то они возвращают символическую бесконечность Inf.

Из высшей математики известно, что к определенным интегралам могут быть сведены многие другие типы интегралов, например криволинейные инте­гралы. Таким образом, с помощью функций quad, quad8 (или trapz) можно вы­числить и эти интегралы.

Рассмотрим пример на криволинейные интегралы первого рода. Пусть требуется вычислить массу М винтовой линии С:

х = sin(t); у = 2cos(t); z =3t; 0 <= t <= 2

с постоянной линейной плотностью, равной 5.

Задача решается с помощью кри­волинейного интеграла первого рода:

M = ∫ 5ds ,

C

 

который сводится к вычислению следующего обыкновенного определенного интеграла:

 

 

Для вычисления подынтегральной функции создадим следующий текст: function z = MyFunc321(t)

z = sqrt(cos(t).^2 + 4*sin(t).^2 + 9),

который запишем в файл MyFunc321.m, после чего вызываем функцию quad:

М = 5 * quad('MyFunc321', 0, 2);

М = 34.2903

Двойные интегралы в системе MATLAB вычисляются с помощью специ­альной функции dblquad. Вычислим интеграл:

1 2

∫∫(xs in (y) + ys in (x))dxdy

0 1

Оформим подынтегральную функцию в следующем виде: function z = Fof2Var(x, у) z = x.*sin(y) + y.*sin(x);

(записав этот текст в файл Fof2Var.m) и вызовем функцию

dblquad: J = dblquad('Fof2Var', 0, 1, 1, 2);

J = 1.1678




Дата добавления: 2015-09-12; просмотров: 27 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Нахождение нулей функций| Решение систем обыкновенных дифференциальных уравнений

lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав