fortran程序正確卻有NAN FORTRAN有限元輸出結(jié)果里邊的NaN什么意思?
FORTRAN有限元輸出結(jié)果里邊的NaN什么意思?Nan不是數(shù)字的縮寫。Nan用于處理計(jì)算中的錯(cuò)誤,例如0.0除以0.0或求負(fù)數(shù)的平方根。從上表可以看出,對于單精度浮點(diǎn)數(shù),Nan表示為指數(shù)為emax1
FORTRAN有限元輸出結(jié)果里邊的NaN什么意思?
Nan不是數(shù)字的縮寫。Nan用于處理計(jì)算中的錯(cuò)誤,例如0.0除以0.0或求負(fù)數(shù)的平方根。從上表可以看出,對于單精度浮點(diǎn)數(shù),Nan表示為指數(shù)為emax1=128(所有指數(shù)字段均為1)且尾數(shù)字段不等于零的浮點(diǎn)數(shù)。IEEE標(biāo)準(zhǔn)不需要特定的尾數(shù)字段,所以Nan不是一個(gè),而是一個(gè)家族。不同的實(shí)現(xiàn)可以自由選擇尾數(shù)字段來表示Nan,比如Java中的常量浮點(diǎn)數(shù).NaN的浮點(diǎn)數(shù)可以表示為01111110000000000,其中尾數(shù)字段的第一位為1,其余為0(不包括隱藏位),但這取決于系統(tǒng)的硬件結(jié)構(gòu)。Java甚至允許程序員用特定的定位模式(通過Float.intBitsToFloat()方法)。例如,程序員可以在自定義的Nan值中使用特定的定位模式來表示一些診斷信息
type of(Nan)和type of(infinity)返回?cái)?shù)。參與任何數(shù)值計(jì)算的Nan的結(jié)構(gòu)是Nan,Nan!=南。無窮大/無窮大=NaN。
Fortran語言中NaN和infinity有什么區(qū)別?
原因是Lou計(jì)算的級數(shù)往往收斂超過30項(xiàng),因此un1=3*5*7*。。。* (2 * 30-1) *... Un2=4*6*8*。。。* (2 * 30) *... 超出了單精度浮點(diǎn)數(shù)的范圍。解決方法是去掉un1,un2,直接計(jì)算UN。
! un1=un1*(2*n-1)!Un2=Un2*(2*n)UN=UN*(2*n-1)/(2*n)*cos((2*n1)*x)我試過了,即使un1 Un2改成了雙精度。例如,當(dāng)x=1.0時(shí),需要152項(xiàng)才能收斂。在計(jì)算第150項(xiàng)時(shí),un1剛好到達(dá)雙精度浮點(diǎn)數(shù)的上限1e308。
【急】fortran運(yùn)行結(jié)果出現(xiàn)NaN?
這是一個(gè)數(shù)學(xué)錯(cuò)誤,導(dǎo)致計(jì)算的數(shù)字不是數(shù)字。(Nan=不是數(shù)字)視覺錯(cuò)誤出現(xiàn)在S=S*(t-x(J))/(x(I)-x(J))。當(dāng)I=1,j=3,X1-X3=0-0=0時(shí),除法分母為0