Решение интегральных уравнений в matlab

Видео:1 - Решение систем нелинейных уравнений в MatlabСкачать

1 - Решение систем нелинейных уравнений в Matlab

Реализация итеративного решения интегрального уравнения в Matlab

У нас есть уравнение, аналогичное уравнению Фредгольма второго рода.

Решение интегральных уравнений в matlab

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

На данный момент проблемная часть нашего кода выглядит так:

delta_a является функцией от x и представляет начальное значение итерации. ms является функцией от x и xi .

Как вы могли видеть, мы хотим, чтобы delt зависело как от x (до интеграла), так и от xi (внутри интеграла) на итерации. К сожалению, этот способ написания кода (с помощью дескриптора функции) не дает нам численного значения, как мы желаем. Мы не можем писать delt как две разные функции: одну из x и одну из xi , так как xi не определена (пока integral не определит ее). Итак, как мы можем убедиться, что delt зависит от xi внутри интеграла и все еще получает числовое значение из итерации?

Есть ли у вас какие-либо предложения относительно того, как мы можем это решить?

Используя численное интегрирование

Объяснение входных параметров: x — вектор числовых значений, все остальные — константы. Проблема с моим кодом заключается в том, что входной параметр x не используется (я предполагаю, что это означает, что x рассматривается как символ).

Видео:Решить интегральное уравнениеСкачать

Решить интегральное уравнение

integral

Видео:Решение произвольных уравнений. Методы вычислений в MATLAB. Часть 1. Урок 61Скачать

Решение произвольных уравнений. Методы вычислений в MATLAB. Часть 1. Урок 61

Syntax

Видео:Как в MATLAB Simulink моделировать уравнения (Структурная схема САУ)Скачать

Как в MATLAB Simulink моделировать уравнения (Структурная схема САУ)

Description

q = integral( fun , xmin , xmax ) numerically integrates function fun from xmin to xmax using global adaptive quadrature and default error tolerances.

q = integral( fun , xmin , xmax , Name,Value ) specifies additional options with one or more Name,Value pair arguments. For example, specify ‘WayPoints’ followed by a vector of real or complex numbers to indicate specific points for the integrator to use.

Видео:MatLab. 6.1. Решение уравненийСкачать

MatLab. 6.1. Решение уравнений

Examples

Improper Integral

Create the function f ( x ) = e — x 2 ( ln x ) 2 .

Evaluate the integral from x=0 to x=Inf .

Parameterized Function

Create the function f ( x ) = 1 / ( x 3 — 2 x — c ) with one parameter, c .

Evaluate the integral from x=0 to x=2 at c=5 .

See Parameterizing Functions for more information on this technique.

Singularity at Lower Limit

Create the function f ( x ) = ln ( x ) .

Evaluate the integral from x=0 to x=1 with the default error tolerances.

Evaluate the integral again, this time with 12 decimal places of accuracy. Set RelTol to zero so that integral only attempts to satisfy the absolute error tolerance.

Complex Contour Integration Using Waypoints

Create the function f ( z ) = 1 / ( 2 z — 1 ) .

Integrate in the complex plane over the triangular path from 0 to 1+1i to 1-1i to 0 by specifying waypoints.

Vector-Valued Function

Create the vector-valued function f ( x ) = [ sin x , sin 2 x , sin 3 x , sin 4 x , sin 5 x ] and integrate from x=0 to x=1 . Specify ‘ArrayValued’,true to evaluate the integral of an array-valued or vector-valued function.

Improper Integral of Oscillatory Function

Create the function f ( x ) = x 5 e — x sin x .

Evaluate the integral from x=0 to x=Inf , adjusting the absolute and relative tolerances.

Видео:Численное решение интегральных уравненийСкачать

Численное решение интегральных уравнений

Input Arguments

fun — Integrand
function handle

Integrand, specified as a function handle, which defines the function to be integrated from xmin to xmax .

For scalar-valued problems, the function y = fun(x) must accept a vector argument, x , and return a vector result, y . This generally means that fun must use array operators instead of matrix operators. For example, use .* ( times ) rather than * ( mtimes ). If you set the ‘ArrayValued’ option to true , then fun must accept a scalar and return an array of fixed size.

xmin — Lower limit of x
real number | complex number

Lower limit of x, specified as a real (finite or infinite) scalar value or a complex (finite) scalar value. If either xmin or xmax are complex, then integral approximates the path integral from xmin to xmax over a straight line path.

Data Types: double | single
Complex Number Support: Yes

xmax — Upper limit of x
real number | complex number

Upper limit of x, specified as a real number (finite or infinite) or a complex number (finite). If either xmin or xmax are complex, integral approximates the path integral from xmin to xmax over a straight line path.

Data Types: double | single
Complex Number Support: Yes

Name-Value Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1. NameN,ValueN .

Example: integral(fun,a,b,’AbsTol’,1e-12) sets the absolute error tolerance to approximately 12 decimal places of accuracy.

AbsTol — Absolute error tolerance
1e-10 (default) | nonnegative real number

Absolute error tolerance, specified as the comma-separated pair consisting of ‘AbsTol’ and a nonnegative real number. integral uses the absolute error tolerance to limit an estimate of the absolute error, | q – Q|, where q is the computed value of the integral and Q is the (unknown) exact value. integral might provide more decimal places of precision if you decrease the absolute error tolerance.

Note

AbsTol and RelTol work together. integral might satisfy the absolute error tolerance or the relative error tolerance, but not necessarily both. For more information on using these tolerances, see the Tips section.

Example: integral(fun,a,b,’AbsTol’,1e-12) sets the absolute error tolerance to approximately 12 decimal places of accuracy.

Data Types: single | double

RelTol — Relative error tolerance
1e-6 (default) | nonnegative real number

Relative error tolerance, specified as the comma-separated pair consisting of ‘RelTol’ and a nonnegative real number. integral uses the relative error tolerance to limit an estimate of the relative error, | q – Q|/| Q|, where q is the computed value of the integral and Q is the (unknown) exact value. integral might provide more significant digits of precision if you decrease the relative error tolerance.

Note

RelTol and AbsTol work together. integral might satisfy the relative error tolerance or the absolute error tolerance, but not necessarily both. For more information on using these tolerances, see the Tips section.

Example: integral(fun,a,b,’RelTol’,1e-9) sets the relative error tolerance to approximately 9 significant digits.

Data Types: single | double

ArrayValued — Array-valued function flag
false or 0 (default) | true or 1

Array-valued function flag, specified as the comma-separated pair consisting of ‘ArrayValued’ and a numeric or logical 1 ( true ) or 0 ( false ). Set this flag to true or 1 to indicate that fun is a function that accepts a scalar input and returns a vector, matrix, or N-D array output.

The default value of false indicates that fun is a function that accepts a vector input and returns a vector output.

Example: integral(fun,a,b,’ArrayValued’,true) indicates that the integrand is an array-valued function.

Waypoints — Integration waypoints
vector

Integration waypoints, specified as the comma-separated pair consisting of ‘Waypoints’ and a vector of real or complex numbers. Use waypoints to indicate points in the integration interval that you would like the integrator to use in the initial mesh:

Add more evaluation points near interesting features of the function, such as a local extrema.

Integrate efficiently across discontinuities of the integrand by specifying the locations of the discontinuities.

Perform complex contour integrations by specifying complex numbers as waypoints. If xmin , xmax , or any entry of the waypoints vector is complex, then the integration is performed over a sequence of straight line paths in the complex plane. In this case, all of the integration limits and waypoints must be finite.

Do not use waypoints to specify singularities. Instead, split the interval and add the results of separate integrations with the singularities at the endpoints.

Example: integral(fun,a,b,’Waypoints’,[1+1i,1-1i]) specifies two complex waypoints along the interval of integration.

Data Types: single | double
Complex Number Support: Yes

Видео:Решение систем Д/У: 1. Знакомство с функциями odeXYСкачать

Решение систем Д/У: 1. Знакомство с функциями odeXY

Интегрирование в Matlab

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

Видео:MatLab. Решение дифференциального уравнения.Скачать

MatLab. Решение дифференциального уравнения.

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

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

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

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

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

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

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

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

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

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

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

В 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Преимущество этого метода в том, что точки, взятые на каждом шаге на кривой, интерполируются полиномом второй степени. Проще говоря, соединяются параболой. Это даёт методу четвёртый порядок точности.

В 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Скачать

Символьные и численные расчеты в MATLAB

Простейшие интегральные уравненияСкачать

Простейшие интегральные уравнения

Курс по ИДУ: Численное решение интегральных уравнений | Занятие 14Скачать

Курс по ИДУ: Численное решение интегральных уравнений | Занятие 14

Системы уравнений, определители, обращение матриц. Методы вычислений в MATLAB. Урок 73Скачать

Системы уравнений, определители, обращение матриц. Методы вычислений в MATLAB. Урок 73

Решение интегральных уравнений операционным методомСкачать

Решение интегральных уравнений операционным методом

18+ Математика без Ху!ни. Дифференциальные уравнения.Скачать

18+ Математика без Ху!ни. Дифференциальные уравнения.

Метод Ньютона (метод касательных) Пример РешенияСкачать

Метод Ньютона (метод касательных) Пример Решения

Решение интегральных уравнений AСкачать

Решение интегральных уравнений A
Поделиться или сохранить к себе: