'我想用下面的常量在主程序中調用這個函數dpdxf,但是它在第一次迭代期間停止給出dpdxf的-ve值。胸圍dpdxf總是應該> 0或正數。溢出錯誤---循環不會收斂在函數中
p1=40196684
p2=4019668
xf=320
PI=4*10^-11
t=20
n=0.4
k=20
wg=3*10^-6
H=46
w=0.006
qg=0.002
mug_p=0.04
'===================================================================
Function dpdxf(p1, p2, xf, PI, t, n, k, wg, H, w, qg, mug_p)
Static frpr
dpdxf = (p1 - p2 - 2 * qg/PI)/xf
FrGaF = 1
Static qgg
Do
frpr = dpdxf
Do
qgg = FrGaF
FrGaF = -((H * wg * (-3 * 2^(-1/n) * k * n^(2 + 1/n) * ((-2 * t + dpdxf * wf)/(k * n))^(1 + 1/n) - (2 * dpdxf^2 * wg^2)/(mug_p) - (2 *n * dpdxf^2 * wg^2)/(mug_p)))/(3 * (1 + n) * dpdxf))
Loop While Abs(FrGaF - qgg) >= 0.00
dpdxf = (p1 - p2 - 2 * (FrGaF/PI))/xf
Loop Until Abs(dpdxf - frpr) <= 0.0001
End Function
我真的很想幫助你解決這個問題,但是代碼真的很難讀取所有這些變量(即frpr,dpdxf,k,n,t)聽起來像銀行或物理:)。你可能會考慮編輯代碼? – Takedasama
是的,來自銀行業,但不能減少代碼。但我可以說有兩個未知數FrGaF和dpdxf。我只是宣佈qgg和frpr來應用循環條件。我覺得我的邏輯不夠好,因爲在計算dpdxf時,它的值不會收斂,但迭代繼續進行,並且當它轉到-ve值時,會產生溢出錯誤。 – user2981046
將在明天嘗試並專注於它,如果您允許,我可能會編輯代碼以便其他人更容易地遵循 – Takedasama