簡體   English   中英

為什么我在 OCTAVE 中收到 ode23s 的“x”未定義錯誤,但沒有收到 ode23 或 ode15s 的錯誤?

[英]Why do i receive an 'x' undefined error with ode23s but not with ode23 or ode15s in OCTAVE?

我正在嘗試使用求解器 ode23s 求解 OCTAVE 中的一些 ODE(完全相同的算法在 Matlab 中完美運行),但我收到一個“x”未定義錯誤,而當我使用求解器 ode23 時不會發生這種情況或 ode15s,即使這是我正在做的唯一改變。

您可以在下面看到提到的代碼和錯誤:

    model = [Fg1 Fg2 ui mi ... gi]; %model is a vector of (1,77) 
    options = odeset('RelTol',1e-4,'AbsTol',5e-6*ones(16,1));
    [T,Y] = ode23s(@odesys_test,0:dt:10,init,options,model);

function代碼:

function [dx] = odesys_test(t,x,model)

global tt

Fg1 = model(1);

錯誤:

錯誤:“模型”在第 5 行第 5 列附近未定義

錯誤:從第 5 行第 5 列的 odesys_test 第 121 行第 5 列的 runge_kutta_23s 第 135 行第 39 列的集成自適應第 217 行第 12 列的 ode23s 第 189 行第 15 列的 DOF2_test

根據octave的文檔,語法是

[T, Y] = ode23s (FUN, TRANGE, INIT, ODE_OPT)

您正在傳遞一個額外的model參數,該參數不是函數簽名的一部分。

此外,您創建的odesys_test function 不符合ode23s預期的規范。 仔細閱讀文檔。

也許您的意思是簡單地創建一個滿足規范的匿名 function,使用它來“包裝”您的 odesys_test function,例如

[T,Y] = ode23s( @(t, x) odesys_test(t, x, model), 0:dt:10, init, options,model );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM