Как посчитать интеграл в матлабе

Как посчитать интеграл в матлабе

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ

УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА

(национальный исследовательский университет)»

ЧИСЛЕННЫЕ МЕТОДЫ В СРЕДЕ

КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB

САМАРА 2012

Министерство образования и науки

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ

УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА

(национальный исследовательский университет)»

ЧИСЛЕННЫЕ МЕТОДЫ В СРЕДЕ

КОМПЬЮТЕРНЫХ ВЫЧИСЛЕНИЙ MATLAB

Методические указания к лабораторной работе

Составитель: А.А. Федотов

Численные методы в среде компьютерных вычисленийMATLAB:Метод. указания / Самар. гос. аэрокосм. ун-т.; сост. А.А. Федотов; Самара, 2012. 16 с.

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

Методические указания предназначены для студентов очно-заочной формы обучения, обучающихся по специальности 201000 «Биотехнические системы и технологии» и выполняющих лабораторные работы по дисциплине “Информационные технологии”. Подготовлены на кафедре радиотехники и медицинских диагностических систем.

Табл2. Ил. 2 Библиогр. 3 назв.

Печатаются по решению редакционно-издательского совета Самарского государственного аэрокосмического университетаимени академика С.П. Королева

Рецензент: И.А. Кудрявцев

Цель работы: изучить реализацию основных численных методов в среде компьютерных вычислений MATLAB.

Задачи:

1. Изучить синтаксис языка программирования MATLAB для решения задач численного интегрирования, интерполяции функций.

2. Используя полученные теоретические сведения, выполнить задания лабораторной работы и подготовить отчет.

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАБОТЫ

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

Интерполирование

Интерполяция (интерполирование) – в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений. При выполнении научных или инженерных расчётов часто приходится оперировать наборами значений, полученных экспериментальным путём или методом случайной выборки. Как правило, на основании этих наборов требуется получить аналитическую функцию, описывающую получаемые значения. Такая функция называется аппроксимирующей, а сам процесс построения такой функции называется аппроксимацией.

Основными видами интерполяции являются: точная в узлах и приближенная в узлах:

При интерполяции, точной в узлах, значения аппроксимирующей функции совпадают со значениями исходной функциив узлах интерполяции.

Рисунок 1 – Интерполяция точная в узлах

При интерполяции, приближенной в узлах, значения аппроксимирующей функции не совпадают со значениями исходной функции в узлах интерполяции.

Рисунок 2 – Интерполяция приближенная в узлах

(φ(x) – аппроксимирующая функция, Δi – отклонение значений аппроксимирующей функции от значения )

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

Для подбора коэффициентов полинома k-й степени методом наименьших квадратов в среде MATLAB есть функция polyfit, имеющая следующий синтаксис:

K=polyfit(x, y, n)

где:x – массив абсцисс экспериментальных точек (массив значений узлов интерполяции), y–массив ординат экспериментальных точек, n–степень полинома, K–массив коэффициентов полинома.

Для нахождения значения полинома в произвольной точке по известным коэффициентам полинома реализуется с помощью функции polyval:

Y=polyval(K, t)

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

Для получения наилучших результатов интерполяции требуется подобрать оптимальное значение порядка аппроксимирующего полинома.

Для реализации метода интерполяции точной в узлах в среде MATLAB используется функция interp1, имеющая следующий синтаксис:

где: x – массив абсцисс экспериментальных точек, y – массив ординат экспериментальных точек,xi – массив значений аргументов, задаваемый пользователем, method– аргумент, позволяющий пользователю выбрать метод интерполяции, yi– массив значений интерполирующей функции.

Методами интерполяции, применяемыми в функции interp1,являются:

• ‘nearest‘–ступенчатая (интерполяция по соседним точкам);

• ‘linear‘ – линейная;

• ‘cubic‘ – кубическая;

• ‘spline‘ – кубическими сплайнами.

В том случае, если параметр methodфункцииinterp1 не задан, то по умолчанию реализуется метод линейной интерполяции.

Читайте также:  Как уменьшить скорость мыши на windows 10

Самым простым способом интерполяции данных является ступенчатая интерполяция, при которой значение в каждой промежуточной точке принимается равным значению в ближайшей узловой точке.

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

Кубическая интерполяция аналогична линейной интерполяции, при этом соединение соседних точек осуществляется полиномами третьей степени.

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

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

Существенным недостатком сплайновой интерполяции является невозможность получения аналитической формы аппроксимирующей функции.

Интегрирование в системе MATLAB. Численное интегрирование

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

Int(f(x), а, b)

где: f(х)– подынтегральная функция; а, b– пределы интегрирования; необходимо указывать только при вычислении определенных интегралов.

С помощью функции intможно выполнять операции со следующими видами интегралов:

• неопределенный интеграл с символьными переменными;

• определенный интеграл с символьными значениями пределов интегрирования;

• определенный интеграл от алгебраических функций;

Перед использованием символьных вычислений в среде MATLAB необходимо задать символьные переменные (то есть такие переменные, которым не присваивается числовое значений) с помощью командыsyms:

Symsx, y, z

где:x, y, z – символьные переменные.

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

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

Под численным интегрированием понимают совокупность различныхчисленных методовнахождения значения определённого интеграла.Основная идея большинства методов численного интегрирования состоит в замене подынтегральной функции на более простую функцию, интеграл от которой легко вычисляется аналитически. При замене подынтегральной функции на полином нулевой, первой и второй степени получаются соответственно методы прямоугольников, трапеций и парабол (Симпсона). Часто формулы для оценки значения интеграла называют квадратурными формулами.

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

где: числа Hi называются коэффициентами Котеса и вычисляются как интегралы от соответствующих многочленов, стоящих в исходном интерполяционном многочлене для подынтегральной функции при значении функции в узле

h – шагсетки;N – числоузловсетки; i– индексузлов. Слагаемое rN(f)определяет погрешность метода, которая может быть найдена разными способами. Для нечетных N≥1 погрешность может быть найдена интегрированием погрешности интерполяционного полинома подынтегральной функции.Частными случаями формул Котеса являются: формулы прямоугольников (n=0), формулы трапеций (n=1), формула Симпсона (n=2), формула Ньютона-Котесаболее высоких порядков (n≥3).

В системе MATLAB вычисление интегралов реализовано численными методами трапеций, парабол (Симпсона) и метод Ньютона-Котеса.

Формула трапецийимеет следующий вид:

где:у– значение подынтегральной функции при х=а; уn– значение подынтегральной функции при х=b; h– шаг интегрирования.

Численное интегрирование в среде MATLAB на основе применения метода трапеций реализовано с помощью функций cumtrapz и trapz.

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

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

Функции trapz и cumtrapz имеют одинаковый синтаксис и имеют две формы записи:

Trapz(x, y)

Читайте также:  Браузер mail ru интернет

В этом случае функция вычисляет интеграл, подынтегральная функция которого определена как y=f(x), при этом значения аргумента функции и значения самой функции задаются векторами.

Вторая форма записи функции имеет вид:

Trapz(y)

В данном случае подразумевается, что по умолчанию элементы вектора аргумента xпринимают значения номеров элементов вектора значений функции y=f(x).

Основным недостатком метода трапеций является большая погрешность результата вычисления интеграла.

Формула парабол (Симпсона)имеет следующий вид:

В этой формуле ординаты с нечетными индексами умножаются на 4, а с четными — на 2. В данном случае предполагается, что N — число четное, при нечетном N формула имеет вид:

Вычислительный алгоритм метода Симпсона с автоматическим выбором шага реализуется в среде MATLAB с помощью функции quad, имеющей следующий синтаксис:

quad(‘name’, a,b, tol, trace)

где:name – имя файл-функции, задающей подынтегральное выражение, а, b– пределы интегрирования;tol–опциональный параметр, задающий точность вычисления, по умолчанию равен 1.0e-06; trace–опциональный параметр, позволяющий получить информацию о ходе вычислений в виде таблицы, в столбцах которой представлены значение количества вычислений, начальная точка текущего промежутка интегрирования, его длина и значение интеграла; для задания этого параметра необходимо указать любое положительное число отличное от нуля.

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

Автоматический выбор шага интегрирования заключается в следующем: интервал интегрирования разбивают на n отрезков и вычисляют значение интеграла; если полученное значение не удовлетворяет заданной точности вычислений, то n увеличивают вдвое и вновь вычисляют значение интеграла, и так повторяют до тех пор, пока не будет достигнута заданная точность.

Функция quad8 реализует алгоритм численного интегрирования с помощью метода Ньютона-Котеса 8-го порядка.

Для вычисления двойного интеграла методомСимпсона используется функция dblquad, имеющая следующий синтаксис:

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Как то на паре, один преподаватель сказал, когда лекция заканчивалась — это был конец пары: "Что-то тут концом пахнет". 8848 — | 8370 — или читать все.

Доброго времени суток! Мы продолжаем говорить о численных методах. И сегодня мы поговорим о реализации численных методов интегрирования в среде Matlab.

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

Геометрический смысл интегрирования — это нахождение площади, которая находится под интегрируемой функцией. На рисунке показана площадь для определённого интеграла, ограниченного a и b.

Численное интегрирование не только в Matlab, но и в других средах, строится именно на нахождении площади. Для начала мы разберем простые методы:

Методы прямоугольников

  • метод правых прямоугольников
  • метод левых прямоугольников
  • метод средних прямоугольников

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

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

Необходимо посчитать интеграл функции f(x) = xe sin(x) x с шагом разбиения h = 0.02 на интервале от 0 до 1.

Функция feval (родственник функции eval) — интерпретирует и вычисляет текстовую строку, которая может содержать либо арифметическое выражение, либо инструкцию, либо обращение к функции, однако, в отличии от eval, интерпретирует и вычисляет текстовую строку, которая может содержать либо арифметическое выражение, либо инструкцию, либо обращение к функции.

Метод трапеций

Ещё одни популярный и в тоже время простой метод — метод трапеций. Аналогично методу прямоугольников строятся трапеции под кривой и находится их суммарная площадь. Данный метод имеет второй порядок точности (ошибка пропорциональна шагу в квадрате).

В Matlab метод трапеций реализован двумя функциями:

  • cumtrapz()
  • trapz()

Первую функцию обычно используют при работе с табличными данными или векторами. Откликом функции является n-интегралов, где n — число элементов вектора или элементов в каждом столбце матрицы. Следующие примеры отображают работу этой функции.

Пусть функция y(x) имеет значения, представленные в виде следующего вектора: y = [1,2,3,4,5,6,7,8,9,10] . Необходимо вычислить:

Читайте также:  Как обновить айфон если нет памяти

При этом a = 1; b = 1, 2, 3, 4 …,10.
Пишем в Matlab:

Теперь рассмотрим вариант работы с вектором и матрицей:
Функция y(x) задана в виде матрицы y(x) = [1 3 5; 3 5 7; 4 6 8; 4 7 9; 5 7 10] . При этом аргумент представляет собой вектор: x = [1,3,7,9,10].

Вторая функция для интегрирования, работающая по методу трапеций Matlab — trapz(). Наиболее используемая студентами, так как позволяет работать не только с векторами и матрицами, но и с аналитической формой подынтегральной функции. Выглядит это примерно так:

Необходимо вычислить определённый интеграл в диапазоне от 1 до 10 с шагом 0.5 для заданной функции:

Как видите, ничего сложного. А иногда даже удобнее некоторых онлайн сервисов для расчёта интегралов.

Метод Симпсона

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

В Matlab интегрирование с помощью метода Симпсона производит функция quad. Сразу разберем пример.

Вычислить определённый интеграл с точностью 10 -4 методом Симпсона.

Точность вычислений задается 4 параметром функции quad. Также, следует отметить, что в задании нижним пределом является 0, а мы использовали число 0.001. Это связано с тем, что при подстановке 0 функция не определена, а точнее, натуральный логарифм не существует.

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

Символьное интегрирование в Matlab

Часто нам необходимо найти интеграл от какой либо функции, не зная пределов интегрирования. Тогда нам нужно взять интеграл в общем или символьном виде. В Matlab за символьное интегрирование отвечает функция int. Она принимает как минимум 2 параметра: 1 — функция, 2 — имя переменной по которой берется интеграл. int(fun, var). Рассмотрим короткий пример:

Вычислить неопределённый интеграл:

Следует отметить, что функция int также может считать и определенные интегралы, для этого нужно задать пределы интегрирования в 3 и 4 параметры функции соответственно.

Заключение

На этом я хочу закончить сегодняшнюю тему «Интегрирование в Matlab». Не забывайте, что Matlab позволяет программировать сложные алгоритмы, а не только использовать встроенный функционал. Любой численный метод можно реализовать и вызывать как функцию. Если у вас остались вопросы, то задавайте их в комментариях.

В этот раз без исходников, примеры небольшие.

Программа MATLAB может производить вычисление определенных и неопределенных интегралов.

Ниже представлен неопределенный интеграл:

Как и в случае с командой diff, вы можете объявить переменную х символьной, и поместить ее внутри кавычек в строке символов. Обратите внимание, что программа MATLAB не включает в себя константу интегрирования; результат вывода представляет единственную антипроизводную от подынтегрального выражения.

Ниже представлен определенный интеграл:

Вы, несомненно, знаете, что не каждая функция, отображаемая при исчислении, может быть символически интегрирована, иногда бывает необходимо числовое интегрирование. Программа MATLAB имеет две команды для числового интегрирования функции f (x): quad и quadl. Мы рекомендуем применять команду quadl.

Команды quad и quadl не будут принимать Inf или -Inf в качестве границ интегрирования (хотя int будет). Лучший способ оперировать числовым неточным интегралом на бесконечном интервале — это вычислить его на интервалах возрастающей длины, пока результат не стабилизируется.

Существует и другая возможность. Если вы введете double (hardintegral), программа MATLAB использует модуль Symbolic Math Toolbox (Инструментарий символьной математики), чтобы вычислить интеграл, даже в бесконечном диапазоне.

Программа MATLAB может также работать с несколькими интегралами. Показанная ниже команда вычисляет двойной интеграл

Обратите внимание, что программа MATLAB допускает, что переменная интегрирования в int есть х, если только вы не установили иначе. Заметьте также, что порядок интегрирования такой, как в исчислении, «наизнанку». И наконец, мы можем использовать команду вычисления двойного интеграла dblquad, со свойствами и методами применения которой вы можете познакомиться в онлайновой справке.

Эта статья из раздела-взаимодействие с программой matlab, которая посвящена теме-интегрирование matlab. Надеюсь вы по достоинству оцените ее!

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

Ссылка на основную публикацию
Как поставить напоминалку на андроиде
Привет всем. Нужно ли вам напоминать о каких-либо событиях? Я думаю напоминания не помешают никому. В силу своей занятости или...
Как пользоваться microsoft office access
Введение В современном мире человеку приходится сталкиваться с огромными массивами однородной информации. Эту информацию необходимо упорядочить каким-либо образом, обработать однотипными...
Как пользоваться steam link
Несколько лет назад американская компания Valve , знакомая многим по непотопляемому Steam и таким знаменитым сериям игр, как Half-Life, Team...
Как поставить пароль на покупку фильмов ростелеком
Интерактивное ТВ от Ростелеком предлагает абонентам огромное многообразие телеканалов различного содержания. Многие из них совершенно не рассчитаны на младшую аудиторию....
Adblock detector