Re: [問題] 關於誤差估計的問題

看板Fortran作者 (sjgau)時間14年前 (2010/05/19 16:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
!dec$if(.false.) Hello World, x= 3.141593 x, y, (1.0/x)= 1.6778712E+07 1.6778712E+07 5.9599330E-08 ct1, (1.0/(2^23))= 154891 1.1920929E-07 Press any key to continue !dec$endif ! --------------------------------------------------------- program VF051916 implicit none real x, y, z integer ct1 ct1= 0 x= 4.0*atan(1.0) print *, 'Hello World, x= ', x ! ------------------------------------------- y= x + 1.0 do while (y .GT. x) x= x*1.001 y= x + 1.0 ct1= ct1 + 1 end do print *, 'x, y, (1.0/x)= ', x, y, (1.0/x) x= 1.0/(2.0**23) print *, 'ct1, (1.0/(2^23))= ', ct1, x stop end program VF051916 ※ 引述《sjgau (sjgau)》之銘言: : 任何的程式設計, : 浮點數的儲存和運算, : 一定會有誤差。 : REAL*4 使用 23個 BITS 來表示 : 浮點數的精確度。 : 所以,相對誤差可以到 (1.0/ (2^23)) : REAL*8 使用 52個 BITS 來表示 : 浮點數的精確度。 : 所以,相對誤差可以到 (1.0/ (2^52)) : 所以,以下的程式 : REAL X, Y, Z : X= 1.23 : IF (X .EQ. 1.23) THEN : WRITE(*, *)'X == 1.23' : END IF : STOP : END : 絕對不會印出來 : X == 1.23 : ※ 引述《sunhpy (水母片)》之銘言: : : 最近老師出了一個題目,如下: : : 利用泰勒級數 cosx=1-x^2/2! +x^4/4! -x^6/6!+... : : 以近似cosx至8位有效數字所需之項數。求x=2*3.14時之近似值。 : : 因剛開始接觸fortran,不知道該怎麼寫,請各位大大幫忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.140.6.127
文章代碼(AID): #1Byw96mx (Fortran)
文章代碼(AID): #1Byw96mx (Fortran)