Вычисление интеграла

 

Самым простым численным методом нахождения определенных интегралов является метод трапеций, который реализован функцией trapz (x, y),где x и y – векторы, задающие значения аргумента и функции в пределах интегрирования. Для ее использования не требуется оформление подынтегральной функции в качестве файла-функции.

Вычислим интеграл :

>> x=0:pi/100:pi;

>> y=sin(x);

>> z=trapz(x,y);

z =

1.9998

 

Получили приближенное значение интеграла. Увеличив шаг интегрирования до pi/1000, получим более точное значение – 2.

Более точные методы реализованы в функциях quad, quad8, quadl.

Функция quad основана на квадратурной формуле Симпсона, а функция quadl предназначена для вычисления интеграла по более точным формулам Гаусса–Лейбница. Функция quad8 реализует метод Ньютона–Котеса восьмого порядка. Все три функции имеют одинаковый набор параметров:

 

[i, n]=quad(fun, a, b, tol, trace),

 

где fun – имя файла-функции или символьное выражение, определяющее подынтегральную функцию (оно должно быть заключено в апострофы); a, bпределы интегрирования; tolпогрешность вычислений; trace признак; если его значение равно единице, то при выполнении функции строится график подынтегральной функции (рис. 31), если нулю, то не строится. Последние два
параметра являются необязательными; i значение интеграла;
nколичество значений функции, которое потребовалось вычислить для нахождения значения интеграла.

>> [i, n]=quad8('func', 0, pi, 1e-8, 1)

i =

7.1938

n =

 

Рис. 31

При использовании этих численных методов задаётся тре-
буемая точность вычислений, а шаг подбирается автомати-
чески (в отличие от функции trapz). По умолчанию точность
равна 10-6.

Функция может быть задана символьным выражением:

 

>> [i,n]=quad8('sin(x)', 0, pi, 1e-8, 0)

i =

2.0000

n =

 

Такой же результат получим, если не укажем два необязательных параметра:

 

>> [i, n]=quad8('sin(x)', 0, pi )

i =

2.0000

n =

 

Тот же интеграл можно вычислить с использованием функции quadl:

 

>> [i, n]=quadl('sin(x)',0,pi,1e-8,0)

i =

2.0000

n =

 

Для достижения одной и той же точности понадобилось различное количество вычислений. Можно при вызове функции не указывать выходной параметр n. Тогда команда обращения к функции будет такой:

 

>> i=quadl('sin(x)', 0, pi, 1e-8, 0)

i =

2.0000

 

В этом случае не используется количество значений функции, которое потребовалось вычислить для нахождения значения интеграла.








Дата добавления: 2016-03-05; просмотров: 738;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.