[英]Solve nonlinear equation
我的功能代碼有些問題。 主要思想是獲得參數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
幾乎所有的匿名函數都需要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);
等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.