| 5 | 1/1 | 返回列表 |
| 查看: 1233 | 回復(fù): 4 | ||
[求助]
關(guān)于erfinv函數(shù)調(diào)用錯(cuò)誤的問(wèn)題
|
|
在 for 語(yǔ)句中調(diào)用erfinv函數(shù),程序如下: N=0; X_sum=0.0; Y_sum=0.0; X2_sum=0.0; XY_sum=0.0; for d=0.001:dp_step:dp_max1+0.001; N=N+1; dx=log10(d); X_sum=X_sum+dx; X2_sum=X2_sum+dx*dx; y_erf=2*Derf_2(N)-1; if abs(abs(y_erf)-1)<=0.00001; y_erf=y_erf/abs(y_erf)*0.99999; end dy=erfinv(y_erf); Y_sum=Y_sum+dy; XY_sum=XY_sum+dx*dy; end 運(yùn)行過(guò)程中出錯(cuò)提示如下 ??? Error using ==> erfinv Y must be real. Error in ==> LC3 at 118 dy=erfinv(y_erf); 需要說(shuō)明的兩個(gè)情況: 1. 我所編寫的程序是根據(jù)一個(gè)參考程序改寫的。整體程序結(jié)構(gòu)與參考程序相同,只是更換了部分函數(shù)的表達(dá)式。參考程序中也包含上述調(diào)用erfinv函數(shù)的程序,賦相同初值的情況下,參考程序運(yùn)行無(wú)誤,改寫程序出現(xiàn)上述錯(cuò)誤。 2. 我驗(yàn)算過(guò)y_erf的取值區(qū)間,當(dāng)y_erf=-0.99999時(shí),程序報(bào)錯(cuò),但-0.99999這個(gè)數(shù)值之前已經(jīng)出現(xiàn)了四次,都計(jì)算成功了,在第五次計(jì)算時(shí)報(bào)錯(cuò)。 希望論壇中的各位高人給予指點(diǎn)。 |
木蟲 (著名寫手)
木蟲 (著名寫手)
| 5 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|