我已經使用matlabFunction
定義了一個函數。這裏是代碼:ode45沒有足夠的初始條件
matlabFunction([a16;-((1+x16^2)/(2*x16))*a16],'vars',{x16,[a16]},'file','DE_19')
這似乎工作。但是,當我嘗試使用ode45
解決由matlabFunction
定義的微分方程時,出現錯誤。下面是代碼:
[x,y] = ode45(@(x16,Y) DE_19(x16,Y),[1,11],[2,7,5]);
我得到的錯誤是
Error using odearguments (line 93)
@(X16,Y)DE_19(X16,Y) returns a vector
of length 6, but the length of
initial conditions vector is 3. The
vector returned by
@(X16,Y)DE_19(X16,Y) and the initial
conditions vector must have the same
number of elements.
Error in ode45 (line 114)
[neq, tspan, ntspan, next, t0,
tfinal, tdir, y0, f0, odeArgs,
odeFcn, ...
所以,我試圖改變我的初始條件從[2,7,5]
到[2,7,5,8,9,4]
。當我這樣做時,我得到了同樣的信息,但不是說返回的矢量長度爲6,而且我的初始條件矢量的長度是3,它表示返回的矢量長度爲12,長度我的初始條件向量是6.
爲什麼這樣做?這似乎很奇怪,隨着我改變初始條件向量的長度,返回的向量的長度會變化。