И другие программы этой серии
Когда эти функции событий
420
Программные средства численных методов
Обыкновенные дифференциальные уравнения (ОДУ)
421
от (t,y) равны нулю, производятся действия в зависимости от значения трех векторов value, isterminal, direction (их величины можно установить в m-файлах функций событий). Для i-й функции событий value(i) – значение функции, isterminal(i) – прекратить интеграцию при достижении функцией нулевого значения, direction(i) = 0, если все нули функции событий нужно вычислять (по умолчанию), +1 – только те нули, где функция событий увеличивается, –1 – только те нули, где функция событий уменьшается. Выходной аргумент TE – вектор-столбец времен, в которые происходят события (events), строки YE являются соответствующими решениями, а индексы в векторе IE определяют, какая из i функций событий (event) равна нулю в момент времени, определенный TE. Когда происходит вызов функции без выходных аргументов, по умолчанию вызывается выходная функция odeplot для построения вычисленного решения. В качестве альтернативы можно, например, установить свойство OutputFcn в значение \'odephas2\' или \'odephas3\' для построения двумерных или трехмерных фазовых плоскостей.
• [T,X,Y]=solver(@model,tspan,y0,options,ut,p1,p2,…) использует модель SIMULINK, вызывая соответствующий решатель из нее. Пример: [T,X,Y] = sim(solver,@model,…).
Необходимая для решения система задается в виде @F или @model, характерном для handle (анонимных) функций. Параметры интегрирования (options) могут быть определены и в m-файле, и в командной строке с помощью команды odeset. Если параметр определен в обоих местах, определение в командной строке имеет приоритет.
Решатели используют в списке параметров различные параметры:
• RelTol – относительный порог отбора (положительный скаляр). По умолчанию 1e-3 (0.1% точность) во всех решателях; оценка ошибки на каждом шаге интеграции e(i) <= max(RelTol*abs(y(i)), AbsTol(i));
• AbsTol – абсолютная точность (положительный скаляр или вектор {1e-6}).
Начало в части 1