簡體   English   中英

求解非線性方程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM