Input arguments error on line 2

1 回表示 (過去 30 日間)
Rishabh Arora
Rishabh Arora 2020 年 10 月 21 日
編集済み: Rishabh Arora 2020 年 10 月 21 日
I am getting input arguments error on line 2 of the function
  3 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 10 月 21 日
Why are you calling ode45 inside the ODEfun and using ODEfun as a function handle. This will not work and cause infinite recursion.
drummer
drummer 2020 年 10 月 21 日
where is W being used?

サインインしてコメントする。

採用された回答

Stephan
Stephan 2020 年 10 月 21 日
編集済み: Stephan 2020 年 10 月 21 日
Divide your code into a function for your ode and the part for solving and plottting the results:
y0 = 0; % --> change to 1 for example to get a "non boring" solution
Wspan = [0 100];
[z, fb] = ode45(@ODEfun, Wspan, y0);
plot(z, fb(:,1));
function dYfuncvecdW = ODEfun(~, Yfuncvec)
X = Yfuncvec(1);
k = 6;
Cao = 0.2;
yao = 1/3;
Fao = 2;
% Pao = 10; --> Value is not used
epsilon = yao*(1-2-1);
ThetaB = 2;
% alpha = 0.02; --> Value is not used
Ca = Cao*(1-X)/(1+(epsilon*X));
Cb = Cao*(ThetaB-(2*X))/(1+(epsilon*X));
ra = -k*Ca*Cb^2;
dXdW = -(ra/Fao);
dYfuncvecdW = dXdW;
end

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 10 月 21 日
How are you running this function? You need to pass input aguments to get an output
out = ODEfun(0, 1)

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by