Please note that the recommended version of Scilab is 2026.0.0. This page might be outdated.
See the recommended documentation of this function
ode_root
программа решения обыкновенных дифференциальных уравнений с поиском корней
Последовательность вызова
[y, rd, w, iw] = ode("root", y0, t0, t [,rtol [,atol]], f [,jac], ng, g [,w, iw])
Аргументы
- y0
- вектор или матрица вещественных значений (начальные условия). 
- t0
- вещественный скаляр (начальное время). 
- t
- вектор вещественных значений (моменты времени, для которых вычисляется решение). 
- f
- внешняя функция, символьная строка или список. 
- rtol, atol
- вещественные константы или векторы того же размера, что и - y.
- jac
- внешняя функция, символьная строка или список. 
- w, iw
- векторы вещественных значений (ВХОДНЫЕ/ВЫХОДНЫЕ). 
- ng
- целое число. 
- g
- внешняя функция, символьная строка или список. 
- y
- вещественный вектор или матрица (ВЫХОДНАЯ). 
- rd
- вещественный вектор (ВЫХОДНОЙ). 
Описание
С таким синтаксисом (первый аргумент равен "root") ode вычисляет решение дифференциального уравнения  dy/dt=f(t,y) до тех пор, пока состояние y(t) не пересечёт поверхность g(t,y)=0.
g должно задавать уравнение поверхности. Это внешняя функция, то есть функция с определённым синтаксисом или имя процедуры Fortran или функции C (символьная строка) с определённой последовательностью вызова или список.
Если g является функцией, то её синтаксис должен быть следующим:
z = g(t,y)
где t -- вещественный скаляр (время) и y -- вещественный вектор (состояние). Она возвращает вектор размером       ng, который соответствует ng ограничениям. Если g -- символьная строка, то она ссылается на имя процедуры Fortran или функции C со следующей последовательностью вызова: g(n,t,y,ng,gout), где ng --  количество ограничений, а gout -- значение  g (на выходе программы). Если g является списком, то применяются те же договорённости, что и для f (см. справку ode).
Выходное значение rd -- это вектор размером 1 x k.
            Первый элемент хранит время остановки. Остальные элементы указывают какие элементы g сменили знак. k больше 2 указывает, что одновременно было пересечено более одной поверхности ((k-1) поверхностей).
Другие аргументы и другие опции те же самые, что и для ode, см. справку по ode.
Примеры
Смотрите также
| Report an issue | ||
| << ode_optional_output | Дифференциальное счисление, интегрирование | odedc >> |