常微分方程表示中的误差

时间:2012-06-29 00:39:09

标签: matlab ode differential-equations

更新 我试图找到链接LE中给出的Lyapunov指数。我试图通过对我的案例采取以下方程来解决它并理解它。这些是一组常微分方程(这些只是用于测试如何使用cos和sin作为ODE)

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.This只是一个试验例子我这样做是为了知道如何使用方程式我们有一个cos,sin等术语作为另一个变量的函数。

使用ode45解决这些Eqs时

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

它会抛出以下错误

???试图访问(2); index必须是正整数或逻辑。

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. 如何解决错误? 谢谢

1 个答案:

答案 0 :(得分:1)

没有你的陈述是完全错误的。 你不可能以这种方式设置值! 首先,您尝试将值X(3)分配给功能

首先我不确定你理解

之间的区别
x=4

4=x

这是完全不同的含义。如果您理解这一点,您将看到无法使用cos(x)=X(3)进行分配。

第二:你正在调用的函数sol()是什么?你定义了吗?

第三,要解决或评估ODE,您应该在matlab中使用devalsolve函数。他们的帮助文件应该给你举例。