خطای محاسباتی فرترن
ارسال شده: جمعه ۱۴۰۰/۲/۱۷ - ۱۶:۱۹
با سلام خدمت دوستان
من شروع به یادگیری فرترن کردم ولی احساس می کنم gfortran در محاسبات اشتباه می کند مثلا ساده ترین محاسبه مانند sin(30.1)
program test
implicit none
real a
real(16) b
a = 30.1
b = 30.1
print*, sin(a), sin(b)
end program test
بعد از کامپایل کردن با gfortran و نتیجه:
کد: [انتخاب]
0.967696011- -0.967696035957813552903034493563998654
اگر با ماشین حساب یا برنامه اکسل محاسبه کنیم:
0.967696132133805-
مشخص است که نتیجه از رقم ۷ به بعد کاملا متفاوت است و نمی توان به خطای گردکردن استناد کرد یعنی فرترن اشتباه می کند!!
من شروع به یادگیری فرترن کردم ولی احساس می کنم gfortran در محاسبات اشتباه می کند مثلا ساده ترین محاسبه مانند sin(30.1)
program test
implicit none
real a
real(16) b
a = 30.1
b = 30.1
print*, sin(a), sin(b)
end program test
بعد از کامپایل کردن با gfortran و نتیجه:
کد: [انتخاب]
0.967696011- -0.967696035957813552903034493563998654
اگر با ماشین حساب یا برنامه اکسل محاسبه کنیم:
0.967696132133805-
مشخص است که نتیجه از رقم ۷ به بعد کاملا متفاوت است و نمی توان به خطای گردکردن استناد کرد یعنی فرترن اشتباه می کند!!