Численное интегрирование

При вычислении определенных интегралов от функций, заданных в виде таблицы или в явном виде ( ), одним из численных методов используют функции intsplin, inttrap, integrate, intg.

Способ 1.

С помощью команды intsplin. Это интегрирование экспериментальных данных с помощью сплайн-интерполяции. Известно значение интегрируемой функции в дискретных точках (узлах).

Пример: вычислить интеграл от таблично заданной функции

x 1.4 1.8 2.2 2.6 3.4 3.8 4.2 4.6
1.6487 1.3771 1.1972 1.0833 1.0202 1.0202 1.0833 1.1972 1.3771 1.6487

clc

x=1:.4:5;

y=[1.6487 1.3771 1.1972 1.0833 1.0202 1 1.0202 1.0833 1.1972 1.3771 1.6487];

v=intsplin(x,y)

Получаем:

v =

4.7799684

Или:

-->x=[1 1.4 1.8 2.2 2.6 3 3.4 3.8 4.2 4.6 5];

-->y=[1.6487 1.3771 1.1972 1.0833 1.0202 1 1.0202 1.0833 1.1972 1.3771 1.6487];

-->v=intsplin(x,y)

v =

4.7799328

Способ 2.

С помощью команды inttrap. Интегрирование экспериментальных данных с помощью трапецеидальной интерполяции (метод трапеций).

При вычислении интеграла между соседними узлами функция интерполируется линейно. Этот метод вычислений называется методом трапеций.

Вычислим интеграл от той же самой функции

-->x=1:.4:5;

-->y=exp((x-3).^2/8)

-->v=inttrap(x,y)// функция y может быть задана в виде вектора

Получаем:

 

v =

4.8017553

Способ 3. С помощью команды integrate. Это интегрирование по квадратуре. Может задаваться требуемая точность вычислений.

Пример: вычислить .

-->integrate('exp((x-3)^2/8)','x',1,5)

ans =

4.7798306

Можно это сделать и так.

Набираем и сохраняем в окне редактора под именем a.sci файл

function g=a(x)

g=exp((x-3).^2/8);

endfunction

Загружаем этот файл в среду Scilab (Load into Scilab).

Далее в строке ввода набираем:

-->integrate('a','x',1,5)

Получаем:

ans =

4.7798306

Способ 4.

С помощью команды intg. Интегрируемая функция задана извне: либо в виде набора дискретных точек, либо вычисляется с помощью внешней подпрограммы. Может задаваться требуемая точность вычислений.

 

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

function g=a(x)

g=exp((x-3).^2/8);

endfunction

intg(1,5,a)

Вызвав этот файл на выполнение (Execute/Load into Scilab), получим ответ:

ans =

4.7798306








Дата добавления: 2016-01-20; просмотров: 898;


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

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

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

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