Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

! _sinc3, _gauss3
!sinc
      real*8 function sinc(x)
      implicit none
      real*8 x, MIN_FLOAT_VALUE
      parameter (MIN_FLOAT_VALUE = 4.0d-16)
 
      if (dabs(x) < MIN_FLOAT_VALUE) then
        sinc = 1.0d0
      else
        sinc = dsin(x) / x
      endif
      return
      end function sinc
!/sinc
 
!_sinc3
      subroutine _sinc3(N, X, F)
      implicit none
 
      integer*4 N
      real*8 X(N), F
      integer*4 numPoints, i
      real*8 zMin, zMax, zStep
      real*8 res, sum, z, Forig, Fcalc, c
      real*8 sinc
      external sinc
 
      parameter (numPoints = 2000)
      parameter (zMin = 0.d0)
      parameter (zMax = 60.d0)
      parameter (zStep = (zMax-zMin) / dble(numPoints-1))
      parameter (c = 5.d0)
 
      z = zMin
      sum = 0.0d0
      do i = 1, numPoints
        Forig = 0.8d0 * sinc(c*z) +
     &          0.5d0 * sinc(c*(z-10.d0)) +
     &          0.7d0 * sinc(c*(z-40.d0)) +
     &          0.4d0 * sinc(c*(z-50.d0))
        Fcalc = X(4) * sinc(c*z) +
     &          X(5) * sinc(c*(z-X(1))) +
     &          X(6) * sinc(c*(z-X(2))) +
     &          X(7) * sinc(c*(z-X(3)))
        z = z + zStep
        res = (Forig-Fcalc)
        sum = sum + res*res
      enddo
 
      F = sum / dble(numPoints)
 
      return
      end subroutine _sinc3
!/_sinc3
 
 
!_gauss3
      subroutine _gauss3(N, X, F)
      implicit none
 
      integer*4 N
      real*8 X(N), F
      integer*4 numPoints, i
      real*8 zMin, zMax, zStep
      real*8 res, sum, z, Forig, Fcalc
      real*8 sinc
      external sinc
 
      parameter (numPoints = 2000)
      parameter (zMin = 0.d0)
      parameter (zMax = 60.d0)
      parameter (zStep = (zMax-zMin) / dble(numPoints-1))
 
      z = zMin
      sum = 0.0d0
      do i = 1, numPoints
        Forig = 0.8d0 * dexp(-z*z) +
     &          0.5d0 * dexp(-(z-10.d0)**2) +
     &          0.7d0 * dexp(-(z-40.d0)**2) +
     &          0.4d0 * dexp(-(z-50.d0)**2)
        Fcalc = X(4) * dexp(-z*z) +
     &          X(5) * dexp(-(z-X(1))**2) +
     &          X(6) * dexp(-(z-X(2))**2) +
     &          X(7) * dexp(-(z-X(3))**2)
        z = z + zStep
        res = (Forig-Fcalc)
        sum = sum + res*res
      enddo
 
      F = sum / dble(numPoints)
 
      return
      end subroutine _gauss3
!/_gauss3

 
выдачу мне типа такой:
 
      write(*,*) '*****************************************************'
      write(*,*) '3 peaks: di {10, 40, 50}; amplitudes {0.8 0.5 0.7 0.4}'
      write(*,*)
 
      write(*, 800) 4, X(4)
      do i = 1, 3
        write(*,900) i, X(i), i+4, X(i+4)
      enddo
      write(*,*) '*****************************************************'
 
      write(*,*) 'за это мне полагается:'
      write(*,*) '1. коньяк'
      write(*,*) '2. водка'
      write(*,*) '3. виски'
      write(*,*) '4. вермут'
      write(*,*) '5. ликёр'
      write(*,*) '6. вино'
      write(*,*) '7. пиво'
      write(*,*) 'ваш выбор, сэр?'
      write(*,*) '--TeXpert'
      read(*,*) ibonus
      write(*,*) ':)'
 
 800  format('           0.0000     X(', I2, ') = ', G12.6)
 900  format(' X(', I2, ') = ', G12.6, ' X(', I2, ') = ', G12.6)

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 12:42 28-12-2010 | Исправлено: akaGM, 16:01 28-12-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы программирования на FORTRAN (ФОРТРАН)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru