8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 103 104 105 106 107 108 109 ... 365

Таблица 6.7, Параметры контроля точности вычислений

Вид контроля

Значение

Примечание

NormControl

off

(по умолчанию)

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

on

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

RelTol

число

(1(Н по умолчанию)

Относительная точность вычислений

AbsTol

число или вектор (Ю-* по умолчанию)

Точность для контроля компонент вектора решения

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

Решите систему дифференциальных уравнений

У\=Уг<

на отрезке [а, 100] при начальных условиях у1(а) = \па, у2(а) = 1/а, взяв о = 0.001.

Легко проверить, что точным решением этой системы является yl=\nt, y2=l/t.

Напишите самостоятельно файл-функцию для решения данной системы со-лвером ode45, содержащую подфункцию rsbad для вычисления правой части системы. Расположите на одном графике точное и приближенное решение. Результат, приведенный на рис. 6.10, является довольно неожиданным для погрешности 10~3 (используемой по умолчанию). Применение других солверов и задание более мелкого максимального или начального шагов не улучшает ситуацию.

Выход состоит в уменьшении относительной погрешности вычислений при помощи формирования options с использованием odeset и включении options дополнительным четвертым аргументом в солвер. Для задания относительной погрешности служит параметр RelTol. например

options = odeset(RelTol, 1.0е-04)


Сравнение приближенного и точного решений (погрешность по умолчанию)

/61-г-1-"—I-1-1-1-1-1--i-

— О

о

00<

о "о<

о-о-<

о.Р 5

) о о

о о

-k приближенное решение

О точное решение

О 10 20 30 W 50 60 70 ВО 90 100

Рис. 6.10. Сравнение приближенного решения с точным (погрешность по умолчанию)

Дополните созданную файл-функцию вызовами ode<35, предваряя каждое обращение к солверу установкой точности. Не забывайте включать options в список аргументов солвера!

Рис. 6.11. Сравнение приближенного решения с точным при различных погрешностях


При возникновении затруднений обратитесь к листингу 6.17. Выведите графики приближенных решений для погрешностей 1(Н, 1(Н, 10 * так, как показано на рис. 6.11.

Только точность Ю-6 обеспечивает получение приближенного решения, график которого почти совпадает с графиком точного решения.

j Листинг 6.17. Файл-функция для исследования влияния погрешности

function difficultproblem a = 0.001;

YO = [log(a); 1/a]; % задание начальных условий

% вызов солвера ode45 для решения с различной точностью

% и вывод графиков приближенных решений

% относительная точность 0.001 options = odeset{RelTol, 1.0е-3); [T, Y] = ode45(@rsbad, [a 100], Y0, options); plot(T, Y(:,l), k:)

% относительная точность 0.0001

options = odeset(1RelTol, 1.0e-4);

[T, Y] = ode45(@rsbad, [a 100], YO, options);

hold on

plot(T, Y(:, 1), k—)

ft относительная точность 0.000001

options = odeset(RelTol, 1.Oe-6) ;

[T, Y] = ode45(@rsbad, [a 100], Y0, options);

plot(T, Y(:, 1), k-)

% вывод графика точного решения t = [а:4:100] ; у = log(t); plottt, у, ко)

% нанесение информации на график xlabel (*\itf ) ylabel(\ity)

title С Сравнение приближений при различных погрешностях)



0 ... 103 104 105 106 107 108 109 ... 365