Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 常微分方程表示中的误差_Matlab_Ode_Differential Equations - Fatal编程技术网

Matlab 常微分方程表示中的误差

Matlab 常微分方程表示中的误差,matlab,ode,differential-equations,Matlab,Ode,Differential Equations,更新 我试图找到link中给出的Lyapunov指数。我试图通过对我的案例采用以下等式来理解它。这是一组常微分方程(这些只是为了测试如何使用cos和sin作为ODE) 和x=x(1);y=X(2);cos(y)=X(3) f1表示dx/dt;在这种情况下,f2dy/dt和f3将是-10sinx。然而,当表示为x=x(1)时;y=X(2);我不确定如何表示cos。这只是一个尝试性的例子,我这样做是为了知道如何处理方程,其中cos,sin等项是另一个变量的函数 当使用ode45求解这些等式时 [T,

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

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); 
  • 是我的表述
    x=x(1);y=X(2);cos(y)=X(3)好吗
  • 如何解决错误? 多谢各位

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

    首先,我不确定你是否理解

    x=4
    

    这是完全不同的意思。如果您理解这一点,您将看到您不可能使用
    cos(x)=x(3)
    进行赋值

    第二:您正在调用的函数是什么?你给它下定义了吗


    第三,要求解或评估ODE,您应该使用matlab中的
    deval
    solve
    函数。他们的帮助文件应该会给你一些例子。

    谢谢你的回复。好吧,我正在尝试做一些类似链接中给出的事情,所以在链接中,作者使用ode_45并设置类似的值。在我的例子中,问题在于余弦函数,因为它依赖于x变量,因此如何区分并为其赋值?请帮助。您链接的页面似乎是用于查找lyapunov指数。这就是你想做的吗?如果没有,你想做什么?您在上述陈述中的
    f
    是否表示
    X
    的导数,即dX/dt?如果是这样,请发布您的完整功能定义(以单词
    function
    开头)和
    sol
    的完整定义。没有这个,我们就没办法了!我试图找到李雅普诺夫指数,f1表示dx/dt;在这种情况下,f2 dy/dt和f3为-10sinx。然而,当表示为x=x(1)时;y=X(2);我不确定如何表示cos。这只是一个尝试性的例子,我这样做是为了知道如何处理方程,其中cos,sin等项是另一个变量的函数。
    x=4
    
    4=x