作业帮 > 综合 > 作业

恳求fortran大神帮忙编译一小段简单程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 06:22:39
恳求fortran大神帮忙编译一小段简单程序
输入n个点(x1,y1).(xn,yn),求输出a和b.


, 其中


即x1.xn的平均值,公式中其他横杠均表示平均值的意思.有人能帮帮忙么,
代码如下, 供参考      program test
      implicit none 
      integer :: n,i
      real(8),allocatable :: x(:), y(:), x2(:), xy(:)
      real(8) :: xbar,ybar,xbar2,xybar,x2bar,a,b

      print*, 'Number of points: '
      read(*,*) n

      allocate(x(n))
      allocate(y(n))
      allocate(x2(n))
      allocate(xy(n))

      do i = 1,n
            print*, '(x,y) = '
            read(*,*) x(i),y(i)
            x2(i) = x(i)**2
            xy(i) = x(i)*y(i)
      end do

      xbar = sum(x) / n
      ybar = sum(y) / n

      xybar = sum(xy) / n
      xbar2 = xbar**2
      x2bar = sum(x2) / n

      b = ( xybar - xbar*ybar ) / ( x2bar - xbar2 )
      a = ybar - b*xbar
       
      print*, 'a = ', a
      print*, 'b = ', b 
      
      deallocate(x,y,x2,xy)
       
      stop
      end program一个测试:
 Number of points: 
4
 (x,y) = 
1 2
 (x,y) = 
2 3
 (x,y) = 
3 4
 (x,y) = 
4 5
 a =    1.00000000000000     
 b =    1.00000000000000