小编Sye*_*ail的帖子

Fortran 90中使用高斯消元法的4个方程组中的浮点误差

该程序返回a "floating point error: overflow"具有以下温度值:

170 225 275 330 390 445 500 555 610 670 725 775 830 1100 1390 1670

这是非常明显的,因为需要提升到功率16然后添加的巨大值.

该矩阵表示需要使用高斯消元解决的4个方程的系统,其中剩余的代码准备就绪.

Real Mat(4,4),Temp(10), Temp2(10),Sum

Do i=1,16
    Write(*,*)"enter Temperature value T",i
    Read (*,*) Temp(i)
End do

Do i=1,16
    Do j=1,16
        sum=0
        Do k=1,16
           if(i.GT.1)then
                l=(4*(i-1))+j
            elseif(i.eq.1)then
                l=i+j-1
            endif   
            Temp2(k)=Temp(k)**l
            sum=sum+Temp2(k)
        End do
        Mat(i,j)=Sum
    End do
End Do

Do I=1,4
  Write(*,*) (mat(I,J), j=1,4)
End do
 !this just forces the program to stay in the exe wind
    Read(*,*) sum
End    
Run Code Online (Sandbox Code Playgroud)

fortran fortran90

2
推荐指数
1
解决办法
321
查看次数

标签 统计

fortran ×1

fortran90 ×1