Основы интегрирования функций в Matlab. Аналитическое Интегрирование средствами Matlab 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основы интегрирования функций в Matlab. Аналитическое Интегрирование средствами Matlab



    Цель работы: научиться вычислять интеграл функций

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

    Для вычисления определенных и неопределенных интегралов в Matlab используется функция int (см. рисунок 11.1, с.87):

    int(f) или int(f, x)  - вычисляет неопределенный интеграл от функции f по ее символьной переменной, определенной в syms;

    int(f,a,b) или int(f, x,a,b)- вычисляет определенный интеграл от a до b функции f по ее символьной переменной, определенной в syms, причем а и b могут быть переменными символьного или вещественного типа.

    При вычислении кратных интегралов наиболее простым оказывается способ интегрирования полученного результата.

    К примеру, двойной неопределенный интеграл  можно вычислить следующим образом:

>> syms x;

>> y=(4-5*x)^7;

>> z=int(y)

 

z =

-(5*x - 4)^8/40

>> int(z)

 ans =

 -(5*x - 4)^9/1800

 

Рисунок 11.1 – Вычисление интегралов

        

    Программа вычисления двойного интеграла может быть упрощена введением следующих команд:

>> int(int(y))

 ans =

 -(5*x - 4)^9/1800

              Таким образом, встроенную функцию int (f) повторяют n раз при n-кратном интегрировании.

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Задание 1. Вычислите определенные и неопределенные интегралы:

Задание 2. Вычислите двойные неопределенные интегралы:

dx

 

 

ТРЕБОВАНИЯ К ОТЧЕТУ

 

Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать 1.Титульный лист

2. Цель работы

3. Краткие теоретические сведения

4. Результаты выполнения заданий.

5. Выводы по работе.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Какие встроенные функции системы Matlab позволяют вычислить определенный и неопределенный интегралы?

2. Как вычислить двойной интеграл?

 

 

ЛАБОРАТОРНАЯ РАБОТА № 12

ОСНОВЫ ИНТЕГРИРОВАНИЯ ФУНКЦИЙ В MATLAB. ЧИСЛЕННЫЕ МЕТОДЫ ВЫЧИСЛЕНИЯ ИНТЕГРАЛА В MATLAB

 

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

 

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

 

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

              = h ( + ),               (1)

где y0 – значение подынтегральной функции при х=а,

  уn - значение подынтегральной функции при х=b,

  h – шаг интегрирования.

    Метод трапеций. Приведенные ниже команды выполняют численное интегрирование в Matlab методом трапеций и методом трапеций с накоплением:

- trapz(Y) – вычисляет определенный интеграл с единичным шагом между отсчетами (если не указан иной шаг). Если Y – вектор, то trapz(Y) вычисляет интеграл элементов вектора Y (рисунок 12.1), если Y – матрица, то trapz(Y) вызывает на экран вектор-строку, содержащую интегралы каждого столбца этой матрицы (см. рисунок 12.2, с.91);

 

Рисунок 12.1 – Вычисление определенного интеграла в диапазоне от 1 до 5 с шагом 0,5 функции y = x +2

Рисунок 12.2 – Вычисление определенного интеграла (У- матрица)

- trapz(X,Y) – вычисляет интеграл от функции Y по переменной X, (пределы интегрирования в этом случае задаются начальным и конечным элементами вектора X):

- в случае, когда Х и У – вектора:

>> x=[1 3 7 8 10];

>> y=[1 2 3 4 10];

>> trapz(x,y)

ans =

30.5000

- в случае, когда Х – вектор, У – матрица:

>> x=[1 3 7 8 10];

>> y=[1 3 5;3 5 7;4 6 8;4 7 9;5 7 1];

>> trapz(x,y)

ans =

31.0000 50.5000 60.5000

 

Значение интеграла, вычисляемое при помощи команды  trapz(X,Y) зависит от шага интегрирования.

Вычисление интеграла, где Х и У – вектора, и шаг интегрирования равен 0,5 представлено на рисунке 12.3.

Рисунок 12.3 – Вычисление определенного интеграла (Х и У – вектора)

- cumtrapz(Y) – вычисляет значение определенного интеграла для функции, заданной в виде вектора или матрицы Y с шагом интегрирования, равным единице (интегрирование методом трапеций с накоплением). В том случае, когда У – вектор, эта функция вычисляет вектор, содержащий результат интегрирования с накоплением элементов вектора Y. А в случае, когда У - матрица – вычисляет матрицу того же размера, что и Y, содержащую результаты интегрирования с накоплением для каждого столбца матрицы Y (рисунок 12.4).

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

Рисунок 12.4 – Интегрирование методом трапеции с накоплением

 

- cumtrapz(X, Y) – выполняет интегрирование с накоплением функции У по переменной Х (у(х)), используя метод трапеций, при этом X и Y должны быть векторами одной и той же длины, либо X должен быть вектором-столбцом, a Y – матрицей, например:

    - Х и У – вектора:

>> x =[1 2 3]

x =

1 2 3

>> y=[4 5 1]

y =

4 5 1

>> cumtrapz(x,y)

ans =

    0 4.5000 7.5000

    - Х – вектор, У – матрица:

>> x=[1 3 7 9 8];

>> y=[1 2 3;4 5 6;7 8 9;1 0 2;1 1 9];

>> cumtrapz(x,y)

ans =

    0    0    0

5.0000 7.0000 9.0000

27.0000 33.0000 39.0000

35.0000 41.0000 50.0000

34.0000 40.5000 44.5000

    Метод Симпсона. Этот метод реализуется с использованием формул парабол

),

где n – число четное.

    При нечетном n формула парабол имеет вид:

).

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

    Метод Симпсона реализован в Matlab несколькими функциями:

quad('fun', a, b) или quad('fun', a, b, tol);

ablquad('fun', a, b, c, d) или ablquad('fun', a, b, c, d, tol) - при вычислении двойного интеграла,

  где 'fun'— подынтегральная функция;

а, b, с, d — пределы интегрирования;

tol —погрешность, задаваемая пользователем; по умолчанию  относительная погрешность равна 10-3.

Примеры:

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

>> quad('x+exp(x)',1,2);

>> ans

ans =

 

6.1708

    Повысим точность вычисления

>> quad('x+exp(x)',1,2,1e-5);

>> ans

ans =

 

6.1708

    Даже в первом случае интеграл вычислен с большой точностью.

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

>> y='exp(x)+x.^2+2.*sin(x)-5';

>> quad(y,1,5);

>> ans

 

ans =

 

167.5415

        

    Вычисление интеграла с помощью функции quad (метод парабол) гораздо точнее, чем вычисление его с помощью функции trapz (методом трапеции) (см. рисунок 12.5, с. 97).

Рисунок 12.5 – Результаты вычисления интеграла методом трапеций и методом Симпсона

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Задание 1. Вычислите определенный интеграл методом трапеций:

Задание 2. Этот же интеграл вычислите методом Симпсона.

Задание 3. Сравните результаты, подобрав шаг интегрирования для метода трапеций и погрешность интегрирования для метода Симпсона.

 

ТРЕБОВАНИЯ К ОТЧЕТУ

 

Отчет должен быть оформлен согласно ГОСТ 7.32-2001 и содержать 1.Титульный лист

2. Цель работы

3. Краткие теоретические сведения

4. Результаты выполнения заданий.

5. Выводы по работе.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Какие встроенные функции системы Matlab позволяют приближенно вычислить определенный интеграл?

2. Как задается шаг интегрирования (метод трапеций) и погрешность интегрирования (метод Симпсона)?

 

ЛАБОРАТОРНАЯ РАБОТА № 13



Поделиться:


Последнее изменение этой страницы: 2021-08-16; просмотров: 840; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.100.34 (0.028 с.)