Главная » Просмотр файлов » Лекция 5. Язык Питон-базовые структуры. Итерационный цикл

Лекция 5. Язык Питон-базовые структуры. Итерационный цикл (1152908), страница 2

Файл №1152908 Лекция 5. Язык Питон-базовые структуры. Итерационный цикл (Воробьева И.А. «Информатика. Язык Питон» (2016)) 2 страницаЛекция 5. Язык Питон-базовые структуры. Итерационный цикл (1152908) страница 22019-09-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

«Информатика. Язык Питон»шаг i1i-й член ряда из формулы (4.4)1 = 23∙1−12= − 23∙1+3623∙2−12∙523()3 = 2 ∙ 2 2 = − ∙ (−)=63∙2+36∙93…2 = 1 ∙ 2 (1) = ∙ (−)…Обратите внимание, что отличаются как формулы, так ифактический аргумент, который необходимо задать, для полученияочередного члена ряда, хотя формальный аргумент остаетсяодинаковым – это «».Программный код для вычисления суммы ряда (4.3) припомощи формулы (4.4) c фиксированной точностью# РАЗДЕЛ ПОДКЛЮЧЕНИЯ МОДУЛЕЙimport math as t # доступ к библиотеке по короткому имени ‘t’# РАЗДЕЛ КОНСТАНТEPS = 0.00001 # точность вычисленияMAX_COUNT = 2500 # ограничение числа итераций# РАЗДЕЛ ПЕРЕМЕННЫХx = 0.0# аргумент функцииi=0s_i = 0.0sums = 0.0# номер слагаемого в сумме – шаг итерации# слагаемое частичной суммы sums на i-м шаге# накапливаемое значение суммы ряда,# т.е.

частичная суммаFunc = 0.0# результат функции по проверочной формуле# РАЗДЕЛ ОПЕРАТОРОВprint('Вычисление функции разложением ее в ряд.\n')13Воробьева И.А. «Информатика. Язык Питон»print('Введите Х в диапазоне: -1 < X < 1: \n')x = float(print ('X = ')) # ввод аргумента Xprint ('x= ', x) # самоконтроль# вычислим сразу же контрольную формулу и выведем на экранFunc = 3 * t.exp((1/3)*t.log(1+x)) - 3print ('Контрольное значение функции = {0:9.6f}'.format(Func))#--- Блок инициализации перед вычислением ----------i=1# первый шагs_i = x # первое слагаемоеsums = s_i # частичная сумма на первом шаге# равна первому слагаемомуwhile not (t.fabs(s_i) < EPS) and (i !=MAX_COUNT): # если очередное# слагаемое не меньше и число итераций не достигло# допустимого предела, тогда продолжим накопление суммыi+= 1# увеличим номер слагаемого (и число итераций)s_i = (-s_i)*(3*i-4)*x/(3*i) # очередное слагаемоеsums = sums + s_i# накапливаем частичную суммуprint ('Сумма ряда ={0:9.6f}'.format(sums)) # вывод значения функции,# полученной с помощью суммы ряда# ===================================Вывод рекуррентного соотношения, когда член ряда – суммаслагаемыхРассмотрим вариант суммы ряда, когда слагаемые ряда являютсясоставными, вида ( ± ).

Например, функциисоответствует ряд111111!12!3(2)!( + ) − 2 ( + ) + ⋯ ± 2 (+1(2+1)())∓⋯+ ()(4.5)Ряд сходится при | | < 1 , а функция не определена для = 0.14Воробьева И.А. «Информатика. Язык Питон»В рядах такого вида будем выводить рекуррентные соотношениядля каждой составляющей слагаемого отдельно: = − ∙ (); = − ∙ ().и(4.6)Выведем формулу для ряда (4.5): () = () = 2−1−1= (−1) ∙ (2)! ∙ 2(2−2)! 2−2= (−1) ∙ (2+1) ∙и сделаем проверку:шаг i0(2−2)!= − 2 (2)∙(2−1)∙(2−2)! = −(2−1) 2−2= − 2(2−1)(2+1)22∙(2−1);(4.7)i-й член ряда из формулы (4.3)110 = = 1; 0 = = 1;1!1(см. замечание 4.2)1221 = 0 ∙ (−1)=− ;2∙12!2 ∙ 121 = 0 ∙ (−1)=− ;3322242 = − ∙ (−1)= ;2!4 ∙ 3 4!22 ∙ 3 42 = − ∙ (−1)= ;344……Фрагмент кода для такого ряда будет выглядеть следующим образом:#--- Блок инициализации перед вычислением ----------i=0# первый шагa_i = 1# первое составное слагаемоеb_i = 1# второе составное слагаемоеsums = a_i +b_i # частичная сумма на первом шагеwhile NOT(t.fabs(a_i +b_i ) < EPS) and (i !=MAX_COUNT): # если очередное# слагаемое не меньше и число итераций не достигло# допустимого предела, тогда продолжим накопление суммыi+= 1# увеличим номер слагаемогоa_i = (-a_i) * (x**2)/(4 * (i**2) - 2*i)# очередное слагаемое15Воробьева И.А.

«Информатика. Язык Питон»b_i = (-b_i) * (2*i-1) * (x**2)/(2*i + 1)sums = sums + a_i +b_i# накапливаем частичную сумму# ===================================Замечание 4.3. Рекомендации по выполнению лабораторнойработы.Использовать в условии прерывания цикла дополнительный счетчикдля защиты от зацикливания итераций.Использовать формулу 4.1. для вывода рекуррентного соотношения.Обязательно просчитать на калькуляторе значение контрольнойфункции при «хорошем числе» = 0.5 , чтобы иметьгарантированную величину, по которой можно контролироватьправильность работы программы при отладке.Некоторые варианты: работают с последовательностями, начиная с индекса «0»:0 ; 1 ; 2 ; .

. . . .. , а не с индекса «1»: 1 ; 2 ; . . . … . Отличительныйпризнак таких рядов – это «1» в качестве первого члена ряда; требуют поиска двух рекуррентных соотношений (когда член ряда является суммой 2-х слагаемых); имеют область определения | | < 1, ≠ 0 (когда в контрольнойфункции есть деление на ноль).Варианты 1, 7, 9, 27 - могут содержать опечатки (зависит от источника), 28, 33 –могут потребовать помощи или комментария (обратиться ко мне).16Воробьева И.А. «Информатика. Язык Питон»Проведение тестов и форматированный вывод результатовДля обеспечения качественной проверки суммирования ряда,исследования его сходимости и предоставления удобного результата,потребуется выполнить (и отобразить в отчете) следующие действия: вычислить на калькуляторе контрольную формулу при X=0.5; обеспечить табличное представление результата для фиксированной точности и массива значений Х = -0.98, -0.5, 0.1,0.5.

0.95; провестисериютестовдлязначенийточности = 10-2, 10-4, 10-6, 10-8; подсчитать число итераций, потребовавшихся для достижениязаданной точности.Результаты вычислений вывести на экран в виде таблице соследующими столбцами:|() − ()|,№XS(x),K,F(x),Номерчисло потребо- контрольнаяконтрольэлементасуммававшихсяформулаточностимассива Xрядаитераций-0.98…0.95Результат проведения эксперимента для одного фиксированногозначения точности приведен в таблице на рисунке ниже:17Воробьева И.А.

«Информатика. Язык Питон»Покажем, как обеспечить форматированный вывод в виде таблицы вPython. Пусть в программе определены величины:# РАЗДЕЛ ПЕРЕМЕННЫХx = [-0.98, -0.5, 0.1, 0.5, 0.95] # массив аргументов функцииeps = 0.0 # задаваемая точность суммирования ряда# (или константа или вводится с клавиатуры)sums = 0.0 # значение суммы ряда, вычисленное с точностью i=0# шаг итерации ≡ число итераций, которое было# выполнено для получения Sum# ----------- вспомогательные переменные -------------k = 0 # рабочая переменная для вывода заголовкаz = 0 # «число знаков после запятой в » +1zs = ‘’ # символьное представление целого числа из zformat_s= ‘’ # строка таблицы для форматного выводаТогда фрагменты кода табличного вывода данных:# посчитаем «число знаков после запятой в » +11z = math.ceil( abs(math.log(eps)/math.log(10)) ) + 1zs = str(z) # и преобразуем целое число z в символьный вид,например, число 5  символ ‘5’print(‘Eps = {0:e}‘.format(eps))# вывод в экспоненциальной форе# вывод заголовка таблицыprint (‘N |X| S(X) | K |F(X) | |S(X)-F(X)|’)for k in range (0, 80, 1): # обычно хватает 80 символов под таблицуprint (‘=’, end=’’) # на экране: ‘================================’# вывод полученных в программе данных в таблицу.

Очевидно, чтоэта строка должна попасть внутрь параметрического цикла по некоторомуиндексу = , , … , прохода по массиву , а до вывода этой строки долженотработать итерационный цикл вычисления , показанный на с.12format_s = ‘{0:2d}|{1:17.’ +zs+ ’f}|{2:17.’ +zs+ ’f}|{3:4d}|{4:17.’ +zs+’f}|{5:17.’ +zs+’f}|’ # сначала сформируем строку форматного выводаprint (format_s.format(j, x[j], sums, i, Func, abs(sums-Func)) # и приме# ним к ней метод str.format()использовано: [1]. “A Byte of Python” Автор – Swaroop Chitlur, перевод – В. Смоляр1Использованы свойства: 1) log10 10−4 = −4; 2) log =log ⁄log .18Воробьева И.А.

«Информатика. Язык Питон».

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

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

Список файлов лекций

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