КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Технология вычисления интеграла в среде системы MatLab
В системе MatLab вычисление интегралов реализовано численными методами трапеции, Симпсона, Ньютона-Котеса. Рассмотрим технологию использования этих методов. Для вычисления интеграла по формуле трапеции в MatLab используется функция trapz(x,y ). Эта функция возвращает значение интеграла от функции y=f(x) – При этом y может быть вектором или матрицей. Длины векторов x и y должны быть одинаковы. Если f(x) – матрица, то функция возвращает вектор значений интеграла каждого столбца матрицы. Если вектор узлов не задан - trapz(y), то в качестве ординат x используются их индексы (x=1:length(y)). Узлы по оси x могут быть и не равноотстоящими. Пример 6.4.6-9. Вычислить значение интеграла методом трапеции.
Пример 6.4.6-10. Вычислить значение интеграла методом трапеции, если функция f(x) задана вектором y=[1 3 5 7 9].
Пример 6.4.6-11. Вычислить значения интегралов методом трапеции, если функции fi(x) (i=1:5) заданы матрицей y=[1 3 5 ; 3 5 7 ; 4 6 8; 4 7 9; 5 7 10].
Пример 6.4.6-12. Вычислить значение интеграла методом трапеции, для функции yn=log(xn) с неравномерным шагом по оси x.
Пример 6.4.6-13. Вычислить значение интеграла методом трапеции, если аргумент x и функция f(x) заданы векторами x=[1 3 7 9 10], y=[1 3 5 7 9].
Пример 6.4.6-14. Вычислить значение интеграла методом трапеции, если аргумент x задан вектором x=[1 3 7 9 10], а функция f(x) задана матрицей y=[1 3 5; 3 5 7; 4 6 8; 4 7 9; 5 7 10].
Комулятивное (накопительное) суммирование по формуле трапеции в MatLab осуществляется с помощью функции cumtrapz(x,y).Она возвращает вектор,i-й компонент которого представляет сумму первых i слагаемых формулы трапеции. Значение функции cumtrapz(x,y)можно рассматривать как дискретный аналог интеграла с переменным верхним пределом. Для вычисления интеграла по формуле Симпсона в MatLab применяется функция quad(). При обращении к ней шаг интегрирования не задается, используется требуемая точность вычисления интеграла. Основную часть вычислений в этой функции выполняет рекурсивная подфункция quadstep( ), в которой используется формула Симпсона (yi=f(xi),i=0,1,…,n=2m) с небольшим числом узлов: 3 (m=1) и 5 (m=2). Найденные по этим формулам значения сравниваются. Если разница между ними больше допустимой погрешности, отрезок интегрирования разбивается на две равные части, функция quadstep( ) рекурсивно применяется к каждой половине, и результаты складываются. Из описания способа вычислений функции quad( ) вытекает, что невозможно ограничиться заданием значений интегрируемой функции в каких-то заранее известных узлах (как для trapz( )), а необходимо уметь вычислять ее значения в любой точке интервала интегрирования. Невозможно также использовать остаточный член для оценки точности, достигнутой функцией quad( ), поскольку неизвестен окончательный шаг h, необходимый при интегрировании. К тому же он не обязательно одинаков на всем отрезке интегрирования. Минимальная форма обращения к функции – q=quad(f,a,b). В качестве первого аргумента задается указатель на подынтегральную функцию, второй и третий аргументы определяют пределы интегрирования, Причем указатель f может быть задан одним из трех способов: · именем m-функции, заключенным в одинарные кавычки; · указателем @f, где f имя функции; · строкой, содержащей любую формулу с одной независимой переменной.
Функция quad( ) допускает задания четвертого входного параметра – абсолютной погрешности eps: q=quad(f, a, b, eps). По умолчанию эта погрешность принимается равной 1.0Е10-6. Если задать ее более высокой, (например, 1.0e-16), интеграл будет вычисляться точнее, зато существенно медленнее. О степени замедления можно судить по количеству обращений к вычислению значений подынтегральной функции (f(х)). Вычисление интеграла аналитическими методами осуществляется в системе MatLab с помощью функции int(f(x), a, b), где f(x) – подынтегральная функция; a, b – пределы интегрирования. Эта функция может вычислить: · неопределенный интеграл; · неопределенный интеграл с символьными переменными ; · определенный интеграл с символьными значениями пределов интегрирования; · определенный интеграл от алгебраической функции; · кратные интегралы; · несобственные интегралы.
Технология аналитического вычисления интегралов заключается в следующем: 1.Определение символьных переменных с помощью оператора syms. 2.Ввод подынтегрального выражения с присвоением ему имени: y=f(x). 3.Ввод функции int(y), если вычисляется неопределенный интеграл, или функции int(y,a,b), если вычисляется определенный интеграл в пределах [a;b]. 4.Получение решения. Пример 6.4.6-15. Вычислить неопределенный интеграл .
Пример 6.4.6-16. Вычислить определенный интеграл .
Пример 6.4.6-17. Вычислить определенный интеграл .
Для получения численного значения интеграла необходимо активизировать строку ответа и нажать <ENTER>:
Пример 6.4.6-18. Вычислить двойной неопределенный интеграл .
Или
6.4.7. Тестовые задания по теме 1. Численное значение интеграла равно 1)площади, ограниченной кривой f(x), осью 0x и двумя ординатами в точках a и b 2)площади прямоугольника 3)площади прямоугольной трапеции 4)в списке нет правильного ответа
|