- •Содержание
- •Лекция № 1. Теория погрешностей План
- •1.1. Источники и классификация погрешностей
- •1.2. Абсолютная и относительная погрешности. Формы записи данных
- •1.3. Вычислительная погрешность
- •2.1. Общие сведения и определения
- •2.2. Отделение корней
- •2.3. Метод половинного деления
- •2.4. Метод простой итерации
- •2.5. Преобразование уравнения к итерационному виду
- •2 0.777373 -3.32063 Search
- •Лекция № 3. Методы решения систем линейных алгебраических уравнений План
- •3.1. Общие сведения и основные определения
- •3.2. Метод Гаусса и его реализация в пакете matlab
- •3.3. Вычисление определителей
- •3.4. Решение систем линейных уравнений методом простой итерации
- •5. Метод Зейделя
- •3.6. Решение систем линейных уравнений средствами пакета matlab
- •Выражения
- •Лекция № 4. Методы решения систем нелинейных уравнений
- •4.2. Метод Ньютона решения систем нелинейных уравнений
- •Последовательные приближения корней
- •4.3. Решение нелинейных систем методами спуска
- •4.4. Решение систем нелинейных уравнений средствами пакета matlab
- •Iteration Func-count f(X) step optimality cg-iterations
- •Iteration Func-count f(X) step optimality cg-iterations
- •Лекция № 5. Интерполирование функций План
- •5.1. Постановка задачи
- •Решение задачи находится отысканием некоторой приближающей функции f(X), близкой в некотором смысле к функции f(X), для которой известно аналитическое выражение/
- •5.2. Интерполяционный полином Лагранжа
- •5.3. Интерполяционный полином Ньютона для равноотстоящих узлов
- •5.3.1. Конечные разности
- •5.3.2. Первая интерполяционная формула Ньютона
- •5.3.3. Вторая интерполяционная формула Ньютона
- •5.4. Погрешность интерполяции
- •5.5. Сплайн-интерполяция
- •5.6. Решение задачи одномерной интерполяции средствами пакете matlab
- •Лекция № 6. Численное дифференцирование
- •6.2. Особенности задачи численного дифференцирования функций, заданных таблично
- •6.3. Интегрирование функций, заданных аналитически (формула прямоугольников, формула трапеций, формула Симпсона)
- •6.4. Погрешность численного интегрирования
- •6.5. Вычисление интегралов методом Монте-Карло
- •Лекция № 7. Методы обработки экспериментальных данных План
- •7.1. Метод наименьших квадратов
- •Сумма квадратов отклонений
- •7.2. Нахождение приближающей функции в виде линейной функции и квадратичного трехчлена
- •7.5. Аппроксимация функцией произвольного вида
- •Лекция № 8. Преобразование Фурье
- •8.2. Эффект Гиббса
- •8.3. Спектральный анализ дискретных функций конечной длительности
- •8.4. Быстрое преобразование Фурье
- •Лекция № 9. Численные методы решения обыкновенных дифференциальных уравнений План
- •9.1. Основные сведения и определения
- •9.2. Метод Пикара
- •9.3. Метод Эйлера
- •9.4. Метод Рунге-Кутта
- •9.5. Средства пакета matlab для решения обыкновенных дифференциальных уравнений
9.5. Средства пакета matlab для решения обыкновенных дифференциальных уравнений
Метод Рунге-Кутта 4-го порядка решение задачи Коши для ДУ в пакете MATLAB реализован в виде функции ode45. Данный метод рекомендуется использовать при первой попытке нахождения численного решения задачи.
Помимо данной функции в пакете MATLAB реализованы и другие
Рис. 9.6
Рис. 9.7
методы решения дифференциальных уравнений и систем ДУ:
ode23 функция реализует одношаговые явные методы Рунге-Кутта (2 и 3) порядков. Функция используется при решении нежестких систем ДУ обеспечивает удовлетворительную точность при меньших нежели функция ode45 временных затратах.
ode113 функция реализует многошаговый метод Адамса-Башворта-Мултона переменного порядка. Функция используется при необходимости обеспечить высокую точность численного решения.
ode15s функция реализует многошаговый метод переменного порядка (от 1 до 5 по умолчанию), основанный на формулах численного дифференцирования. Данный метод следует использовать в том случае, если не удается найти численное решение с помощью функции ode45.
ode23s функция реализует одношаговый метод, использующий модифицированную формулу Розенброка 2-го порядка. Данной метод обеспечивает более высокую скорость вычислений по сравнению с другими методами при сравнении с другими методами при относительно более низкой точности вычислений.
ode23t функция реализует метод трапеций с интерполяцией. Данный метод используют при решении уравнений, описывающих колебательные системы с почти гармоническим выходным сигналом.
ode23tb функция реализует неявный метод Рунге-Кутта в начале интервала интегрирования и далее метод, использующий формулы обратного дифференцирования 2-го порядка. Данный метод обладает большей скорость нежели метод ode15s при, соответственно, меньшей точности.
Все перечисленные выше функции, называемые в документации пакета Solver (решатель), могут решать системы ДУ явного вида . Кроме того решателиode15s, ode23s, ode23t и ode23tb системы дифференциальных уравнений неявного вида , а также все решатели, кромеode23s, могут находить решения уравнения вида .
Пример 9.3. Решение задачи Коши для дифференциального уравнения
,
T(0)=80.
где Ts, r заданные постоянные, имеющие физический смысл температуры окружающей среды и коэффициента остывания, соответственно,
Для решения дифференциального уравнения (2.1) сначала создаем m-файл, содержащий определение функции, стоящей в правой части уравнения (2.1):
function Z=Tempr(t,T)
% определение функции, стоящей в правой части уравнения (2.1)
global Ts r
Z(1)=-r*(T-Ts);
который сохраним на диске под именем Tempr.m.
Далее необходимо выполнить в командном окне следующую последовательность операторов:
>> global Ts r % объявление глобальных переменных
>> Ts = 22 % задание значения температуры окружающей среды
>> r = 0.024 % задание значения коэффициента остывания
>> T0 = 80 % задание начальной температуры тела
>> [t,T]=ode45('Tempr',[0:0.01:15],T0); % Tempr имя файла,
% содержащего
% определение функции,
% стоящей в правой части
% уравнения (2.1);
% [0:0.01:15] вектор,
% определяющий интервал
% интегрирования,
% T0 вектор
% начальных условий
>> plot(t,T)
После выполнения приведенной выше последовательности команд будет создано окно, содержащее график зависимости температуры тела от времени, представленный на рис. 9.8.
Рис. 9.8. Численное решение уравнения теплопроводности, возвращенное функцией ode45
По умолчанию решатели систем ДУ пакета MATLAB используют параметры, относительная погрешность которых не превосходит переменной RelTol = 10-3 , граница абсолютной погрешности численного решения переменная AbsTol равна 10-6. Для изменения значений этих переменных используется команда
>> options = odeset('RelTol',1e-4,'AbsTol',1e-4);
предваряющая команду вызова функции решателя системы ДУ.
1 Порядком сходимости последовательности (xk) к x* называют такое число p, что
,
где С > 0, при всех k > k0.
2 Здесь мы предполагаем, что ранее файл fm.m, содержащий описание функции, возвращающей значения функций f(x,y) и g(x,y) уже создан.