Простой ODE второго порядка в Scilab

#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.