Ошибка в представлении обыкновенного дифференциального уравнения

ОБНОВЛЕНИЕ. Я пытаюсь найти показатели Ляпунова, указанные в ссылке LE. Я пытаюсь разобраться и понять это, взяв следующие уравнения для своего случая. Это набор обыкновенных дифференциальных уравнений (они предназначены только для проверки того, как работать с cos и sin как ОДУ)

f(1)=ALPHA*(y-x);
f(2)=x*(R-z)-y;
f(3) = 10*cos(x);

и x=X(1); y=X(2); cos(y)=X(3);

f1 означает dx/dt; f2 dy/dt и f3 в этом случае будет -10sinx. Однако при выражении как x = X (1); y = X (2); я не уверен, как выразить cos. Это всего лишь пробный пример, который я делал, чтобы знать, как работать с уравнениями, в которых у нас есть cos, sin и т. д. как функция другой переменной.

При использовании ode45 для решения этих уравнений

[T,Res]=sol(3,@test_eq,@ode45,0,0.01,20,[7 2 100 ],10);

это вызывает следующую ошибку

??? Попытка доступа (2); индекс должен быть целым положительным числом или логическим.

Error in ==> Eq at 19
x=X(1); y=X(2); cos(x)=X(3); 
  1. Мое представление x=X(1); y=X(2); cos(y)=X(3); в порядке?
  2. Как устранить ошибку? Спасибо

person Priya M    schedule 29.06.2012    source источник


Ответы (1)


Нет, ваше представление совершенно неверно. Вы не можете установить значения таким образом! Для начала вы пытаетесь присвоить значение X(3) функции.

сначала я не уверен, что вы понимаете разницу между

x=4

а также

4=x

которые имеют совершенно разные значения. Если вы это поймете, то увидите, что назначать с помощью cos(x)=X(3) невозможно.

Во-вторых: какую функцию sol() вы вызываете? вы это определили?

В-третьих, для решения или оценки ODE вы должны использовать функции deval или solve в Matlab. Их файлы справки должны содержать примеры.

person Sanjay Manohar    schedule 29.06.2012
comment
Спасибо за ответ. Хорошо, я пытаюсь сделать что-то подобное, указанное в ссылке mathworks.com/matlabcentral/fileexchange/ Итак, в ссылке авторы используют ode_45 и устанавливают такие значения. В моем случае проблема связана с функциями косинуса, поскольку он зависит от x переменной и, следовательно, как дифференцировать и присвоить ей значения? Пожалуйста, помогите. - person Priya M; 29.06.2012
comment
Страница, на которую вы ссылаетесь, похоже, предназначена для поиска показателей ляпунова. Это то, что вы пытаетесь сделать? Если нет, что вы пытаетесь сделать? Означает ли f в вашем заявлении выше производную от X, т.е. dX / dt? если да, опубликуйте полное определение функции (начиная со слова function) и полное определение sol. Без этого мы не можем помочь! - person Sanjay Manohar; 30.06.2012
comment
Я пытаюсь найти показатели ляпунова, и f1 действительно означает dx / dt; f2 dy / dt и f3 в этом случае будет -10sinx. Однако при выражении как x = X (1); y = X (2); i am Не знаете, как выразить cos. Это всего лишь пробный пример, который я делал, чтобы знать, как работать с уравнениями, в которых есть члены cos, sin и т. д. как функция другой переменной. - person Priya M; 30.06.2012