我的功能代码有一些问题。主要思想是获取参数SI
的参数Q_cal-Q=0
(主要未知)。有人可以帮我吗?
非常感谢。
P=1.94;
Q=1.09;
P5=1.08;
fc=0;
lambda=0.2;
Ts=24;
[SI]=singhandyu(P,Q,P5,lambda,Ts,fc);
function [SI] =singhandyu(P,Q,P5,lambda,Ts,fc)
Fc=fc.*Ts;
f=@(SI)((P5-0.2*SI)*SI)./(P5+0.8*SI);
M=@(SI)max(f(SI),0);
S=@(SI)(SI-M(SI));
Ia=@(SI)lambda.*S(SI);
Q_cal=@(SI)((P-Ia(SI)-Fc).*(P-Ia(SI)-Fc+M(SI)))./(P-Ia(SI)-Fc+M(SI)+S(SI));
H=@(SI)Q_cal(SI)-Q;
S0=0;
SI_sol=fsolve(H,S0)
end
答案 0 :(得分:0)
几乎所有匿名函数都需要SI
作为输入,但是在调用先前定义的函数时并没有传递参数。
为明确起见,f
需要一个输入参数,
f=@(SI)((P5-0.2*SI)*SI)./(P5+0.8*SI);
但是在下一行调用f
时,您没有提供它:
M=@(SI)max(f,0);
因此请确保将参数传递给每个函数调用:
M=@(SI)max(f(SI),0);
S=@(SI)max(SI-M(SI),0);
等