簡體   English   中英

如何通過猜測Matlab中的值來實現此迭代/收斂步驟?

[英]How to implement this iteration/convergence step by guessing a value in Matlab?

我有兩個參數fL and fV ,分別是T和P的函數。如果我創建了一個名為func(T)的函數,該func(T)僅將T作為輸入,那么我該如何在Matlab中實現這一步驟:

Guess P

if |(fL/fV)-1|<0.0001 % where fL and fV are both functions of T and P

then print P

else P=P*(fL/fV)

最初建議在算法開始時猜測P 在此之前的所有其他步驟都涉及公式計算,並且不涉及任何收斂,因此我沒有編寫所有這些公式。 需要注意的重要一點是,即使我們僅將T作為函數輸入,但壓力是在代碼開頭猜測的,並不是用戶輸入的一部分。 謝謝!

為了“猜測” P ,您可以使用a)一個有根據的猜測或b)一個隨機的猜測進行。 因此,例如,如果您在日常環境中處理壓力,則100kPa是一個合理的猜測。 隨機猜測將意味着將P初始化為在有意義域上生成的隨機變量。 因此,在我的示例中,它可能是一個均勻分布在90kPa110kPa之間的隨機變量。 選擇哪種方法取決於您的特定問題。

您可以按以下方式編寫需求

minP=90;maxP=110;
P=minP+(maxP-minP)*rand;%# a random guess between 90 & 100 

<some code here where you calculate fL and fV

if abs(fL/fV-1)<0.0001
    fprintf('%f',P)
else
    P=P*fL/fV;
end 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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