Parameter that depends on a State Variable

1 ビュー (過去 30 日間)
Ghazwan 2016 年 10 月 11 日
コメント済み: Ghazwan 2016 年 10 月 11 日
Hello, I have the following main code
clear all;
global a1 b1 c1 P0 Sr2
a1=0.01; b1= 4.13; c1=1.250; Sr2=24.83683
and the myodefun function is
function FF=myodefun(t,x)
global Ptr Sr2 a1 b1 c1
fun = @ff1; % function
x0 = 2; % initial point
V1 = fzero(fun,x0);
R=Sr2./(V1.^2); C=1./(a1.*c1.*exp(c.*V1)+b1./V1);
And the other ff1 function is
function y = ff1(V)
global a1 b1 c1 P0 Ptr
y = a1*exp(c1*V)+b1*log(c1*V)-P0-Ptr;
As you can see that V1 depends on the calculations of the state variable x. When I run the code, I get the following error:
Not enough input arguments.
Error in myodefun (line 5)
Error in Out (line 6)
I can not find where the problem is! Even though I did it several time before for different problems! I do not know what it means by not enough input arguments.
Thanks in advance.


James Tursa
James Tursa 2016 年 10 月 11 日
編集済み: James Tursa 2016 年 10 月 11 日
In this line:
The 1st argument to ode45 is myodefun, which is a call to the function myodefun without any arguments. So when you get into myodefun and hit the line with the x, x was not passed in hence the error. To fix this, pass in a function handle to myodefun:
  1 件のコメント
Ghazwan 2016 年 10 月 11 日
Thank you James! It worked like magic!


その他の回答 (0 件)


Find more on Programming Utilities in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by