I've seen this question asked before but don't understand the answers provided.
I am running the following code:
function F = Fexample1(t, y)
% check the size of y
n = length(y);
if n ~= 2, error('invalid size of y'); end
F1 = 0.25*y(1) - 0.002*y(1)^2 - 0.005*y(1)*y(2)
F2 = 0.05*y(2) - 0.009*y(2)^2 - 0.005*y(1)*y(2)
F = [F1, F2];
[Y, t] = ODEsolver_eulerND('Fexample1', [0 1], 0, 1, 11);
I get this error:
Not enough input arguments. Error in final (line 4) n = length(y);
Any advice?

 採用された回答

Walter Roberson
Walter Roberson 2017 年 5 月 14 日

1 投票

function [Y, t] = final
[Y, t] = ODEsolver_eulerND(@Fexample1, [0 1], 0, 1, 11);
function F = Fexample1(t, y)
% check the size of y
n = length(y);
if n ~= 2, error('invalid size of y'); end
F1 = 0.25*y(1) - 0.002*y(1)^2 - 0.005*y(1)*y(2)
F2 = 0.05*y(2) - 0.009*y(2)^2 - 0.005*y(1)*y(2)
F = [F1; F2];
Note: I changed the F = [F1, F2]; to F = [F1; F2]; for consistency with the Mathworks ode*() routines. Using a column vector there will allow you to check your results using ode45()

その他の回答 (0 件)

カテゴリ

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by