Фортран для профессионалов
Излагаются средства математической библиотеки IMSL, входящей в состав профессиональных версий Фортрана фирм Microsoft и Compaq, позволяющие анализировать линейные модели и выполнять матричные вычисления. Приводятся алгоритмы, положенные в основу процедур библиотеки, а также варианты их программных реализаций. Поясняются все используемые при описании процедур библиотеки понятия. Излагаемый материал иллюстрируется большим числом примеров.Предназначено для научных работников, инженеров, преподавателей, студентов и аспирантов вузов.
часть 1
Содержание
Содержание книги "Фортран для профессионалов : математическая библиотека IMSL"
Отрывок из книги
1. Характеристики процедур IMSL 13 val + εmin = val. Причем чем меньше val, тем меньше значение соответствующего ему εmin. Пренебрежение этим обстоятельством может явиться причиной разнооб-разных ошибок, например зацикливания. Поиск εmin, например при работе с двойной точностью, можно выполнить, применив код program em real(8) :: val = 10000.0_8, emin emin = 1.0_8 do while(val + emin > val) emin = emin / 2.0_8 end do emin = emin * 2.0_8 print *, emin ! 1.818989403545857E-012 ! Тот же результат можно получить иначе: print *, nearest(val, 1.0_8) - val ! 1.818989403545857E-012 end program em Аналогичные предосторожности необходимы и при работе с отрица-тельными вещественными числами. 1.7.2. Ошибки округления Ограничения, связанные с представлением вещественных и комплекс-ных чисел, означают, что при выполнении операций с такими числами мо-гут возникать ошибки округления. Пренебрежение ошибками округления может привести к драматическим последствиям. Рассмотрим, например, цикл real(4) :: x = 0.1 do ! Бесконечный цикл print *, x x = x + 0.1 if(x == 1.0) exit ! EXIT – оператор выхода из цикла end do Он является бесконечным, поскольку x из-за ошибки округления не при-нимает значения, точно равного 1.0. Нормальное завершение цикла обеспе-чит код real(4) :: x = 0.1, eps = 1.0e-6 do print *, x x = x + 0.1 if(abs(x - 1.0) < eps) exit ! x практически равен 1.0 end do ! ABS(x - 1.0) возвращает |x - 1.0|
Внимание!
При обнаружении неточностей или ошибок в описании книги "Фортран для профессионалов : математическая библиотека IMSL (автор О. Бартеньев)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку