[英]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
初始化為在有意義域上生成的隨機變量。 因此,在我的示例中,它可能是一個均勻分布在90kPa
和110kPa
之間的隨機變量。 選擇哪種方法取決於您的特定問題。
您可以按以下方式編寫需求
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.