#differential-equations #scilab
#дифференциальные уравнения #scilab
Вопрос:
Я очень новичок в scilab и пытаюсь понять, как работает ODE для ODE второго порядка в SCILAB.
Мое уравнение: (d ^ 2y) / (dt ^ 2) 2 dy / dt y = 0
Я хотел бы отобразить результаты. Пока я понял, что мне нужно разбить уравнения на два уравнения первого порядка. Итак, программа должна выглядеть следующим образом:
function dx=f(x, y)
dx(1)=2*y 1;
dx(2)=y;
endfunction
Можете ли вы проверить, правильно ли это, я не уверен, что dx(1)
и dx(2)
правильно.
Спасибо.
Ответ №1:
Если x_1 равно y, а x_2 равно dy / dt, вы бы предпочли записать свою оду с правой стороны (т. Е. dx / dt) следующим образом
function dxdt=f(t, x)
dxdt(1) = x(2);
dxdt(2) = -x(1)-2*x(2);
endfunction
Комментарии:
1. Я получаю сообщение об ошибке. Неопределенная переменная: x. Это указано в строке 2 функции f.
2. Хорошо, ошибка связана со значениями y0, они должны быть в виде y0 = [%pi; 1]. Можете ли вы объяснить, почему?
3. Наличия rhs недостаточно. Пожалуйста, самостоятельно изучите Scilab, прочитав страницу справки od
ode
, теперь, когда у вас есть правильная функция для вашего ode.