01 (537404), страница 7

Файл №537404 01 (Метода по фортрану) 7 страница01 (537404) страница 72015-07-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

Y = Cos(X*X)

Write(*, 2) X, Y

2 Format(' X=', F4.1, ' Y=', F7.4)

1 X = X + 0.1

End

Цикл Do_While часто используется для выполнения пересчетов (итераций) по одним и тем же формулам. Например, при решении уравнения x3 - 3x2 - 60x - 198 = 0 он позволяет выделить отрезок, где существует его корень, удовлетворяющий условию x > 0. На этом отрезке функция y(x) = x3 - 3x2 - 60x - 198 меняет свой знак с "-" на "+". Для решения этой задачи может быть предложен следующий алгоритм.

Сначала аргумент x принимает значение 0. Для него вычисляется значение функции y(x), которое сравнивается с нулем. Если y(x) меньше нуля, то значение аргумента увеличивается на шаг (0,1), в противном случае текущее значение аргумента x принимается за правую границу искомого отрезка. Левая граница отрезка вычисляется как x - 0,1. Данный алгоритм может быть реализован в виде программы:

123456789..............................................................72 73......80

X = 0.

Do While (X*X*X - 3*X*X - 60*X - 198.LT.0.)

X = X + 0.1

EndDo

Write(*, *) X - 0.1, ' < X <', X

End

В отличие от рассмотренной выше задачи о расчете значений функции одной переменной построение таблиц функций двух переменных требует использования вложенных циклов. Так для вычисления значения функции y = x(n - x)2 для аргументов x = 0; 0,1; ...1,0 и n = 5; 4; 3; 2 блок-схема алгоритма и программа будут иметь вид:

C *** Лабораторная работа № 4***

Open(1, File = 'prog_4.res', Err = 3)

C *** Внешний цикл по N ***

Do N = 5, 2, -1

Write(1, 2) N

C *** Внутренний цикл по X ***

Do X = 0., 1.05, 0.1

Y = X*(N - X)**2

Write(1, 1) X, Y

EndDo

C *** Конец внутреннего цикла ***

EndDo

C *** Конец внешнего цикла

1 Format(' X=', F3.1, ' Y=', F8.5)

2 Format(' N=', I1)

Close(1)

Stop

C *** Аварийная печать ***

3 Write(6, 4)

4 Format(' Не могу создать файл ‘ )

End

З а д а н и е к л а б о р а т о р н о й р а б о т е

Составить программу для расчета значений функций в указанном диапазоне изменения аргумента и параметра. Результаты вычислений поместить в файл prog_4.res. По результатам расчета функций на указанном отрезке с заданными шагом и диапазоном изменения параметра построить их графики.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 5

ВЫЧИСЛЕНИЕ РЯДОВ И БЕСКОНЕЧНЫХ ПРОИЗВЕДЕНИЙ

С п р а в о ч н а я и н ф о р м а ц и я

Когда при решении технической задачи возникает необходимость вычислить значения функции при заданном значении аргумента, то даже для достаточно простых функций это порождает затруднения.

В самом деле, такие ответы для технической задачи, как

неудовлетворительны, так как необходимо знать вполне определенные числа. Действительно, что будет делать токарь, которому указано выточить вал диаметром ln 147 мм ? Поэтому, когда требуется с наперед заданной точностью представить числом значение функции при некотором заданном значении аргумента, используют теорию рядов, куда входят как собственно ряды, так и бесконечные произведения, цепные дроби и пр.

Например, элементарные тригонометрические функции могут быть представлены в виде степенного ряда:

бесконечного произведения:

цепной дроби

Для вычисления ряда функций в Фортране предусмотрена библиотека, содержащая описание достаточно узкого круга элементарных функций. Этого явно недостаточно для практического применения, поэтому часто приходится самостоятельно программировать вычисление функций.

В основе таких расчетов лежит процесс накопления численной информации в виде сумм или произведений его членов. Накопление может осуществляться либо по заданному числу членов ряда, либо по заданной погрешности вычислений. Последний способ применим только для сходящихся рядов и решается с точки зрения теории рядов не совсем строго. Вычисляют члены ряда один за другим и, если модули их величин выходят за пределы принятой погрешности, причем нет основания ожидать, что последующие члены дадут существенный вклад, то все дальнейшие члены ряда отбрасывают. Аналогично поступают при вычислении бесконечного произведения, где это условие трактуется как степень приближения модуля очередного сомножителя к единице.

Алгоритм накопления организуется в цикле таким образом, чтобы при каждом новом выполнении его тела к вычисляемой величине добавлялся очередной член. Таким образом, вычисления будут производиться по следующим формулам:

для ряда – Sn+1 = Sn + an+1 ;

для произведения – Sn+1 = Sn. an+1 .

Например, для рассмотренных функций приведенные формулы будут иметь вид:

для

для

Если предположить, что величина Sn, в которой накоплены значения первых n элементов, хранится в некоторой переменной с именем S, то получение очередного значения Sn+1 требует наличия в теле цикла одного из следующих операторов:

S = S + A

S = S*A ,

где A – имя переменной, содержащей значение an+1.

В зависимости от способа накопления Sn, начальное значение переменной S устанавливается по-разному. Для случая суммирования ряда оно устанавливается из следующих предпосылок: равным нулю, если первый член ряда подпадает под общую закономерность способа вычисления членов ряда, или равным a1 в противном случае. Для бесконечного произведения – единица или a1 по тому же правилу. Например, для приведенных выше функций надо установить следующие начальные значения S:

для cos x S = 1 и суммирование производить с n = 1;

для sin xS = X и накапливать произведение с n = 1;

Центральным звеном циклического алгоритма накопления является форма вычисления очередного члена. В практике программирования используются три основных приема:

  • очередной член формируется по общей формуле и вычисляется отдельным оператором или непосредственно при накоплении;

  • очередной член вычисляется по рекуррентной формуле, в которой последующее значение получается на основе предыдущего. При этом предыдущий член входит в очередной как сомножитель. Вычисления производятся в отдельном операторе;

  • очередной член носит составной характер и его целесообразно рассматривать в виде произведения двух частей. Одна часть вычисляется по рекуррентной формуле отдельным оператором, а другая - добавляется как сомножитель при его окончательном формировании.

Эти приемы иллюстрируются следующими примерами.

Пример 1. Вычислить сумму

Алгоритм накопления организуется по циклической схеме Sn+1 = Sn + an+1, причем в качестве переменной цикла следует использовать номер члена суммы n = 1, 2, ..., 100. Тогда начальное значение переменной, в которой будет накапливаться сумма, следует установить равным нулю, а очередной член суммы формировать по общей формуле. Алгоритм предлагаемых вычислений может быть представлен блок-схемой на рис.1.

n

a

S

1

2

3

….

. . .

….

. . .

……………..

. . . . . . . . . . . . . . . . .

100

Рис.1.

Для того, чтобы убедиться в работоспособности разрабатываемого алгоритма, рекомендуется проследить процесс вычис-

Характеристики

Тип файла
Документ
Размер
1,27 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6294
Авторов
на СтудИзбе
314
Средний доход
с одного платного файла
Обучение Подробнее