|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[9] "оператор" Repeat "операторы" В цикле While. . . "оператор" выполняется если условие верно (True), если условие ложно (False), то цикл заканчивается, т. е. цикл While. . . повторяется пока выполняется условие. Цикл While. . . начинается проверкой условия, поэтому, если начальное условие ложно, то "оператор" не выполняется ни разу. Для включения в тело цикла нескольких операторов применяется составной оператор: Begin "операторы" end. Цикл Repeat. . . повторяется, если условие ложно (False), и заканчивается, если условие верно (True), т. е. цикл Repeat. . . повторяется до выполнения условия. Цикл Repeat. . . заканчивается проверкой условия, поэтому "операторы" выполняются не менее одного раза. В теле цикла может записываться более одного оператора. Циклы с условием обычно используются в тех случаях, если количество повторений блока операторов заранее не известно, например, при расчете суммы членов бесконечного ряда с заданной погрешностью. Сумма членов бесконечной последовательности ai, a2, a3, . . . , aN, . . . называется бесконечным рядом и записывается в виде: a1 + a2 + a3 +. . . + aN+. . . . Здесь aN - общий член ряда. Сумма конечного числа членов ряда называется частичной суммой и обозначается " SN ". Если сумма членов бесконечного ряда имеет конечный предел "S", то ряд называется сходящимся. Для некоторых рядов получены формулы расчета суммы членов ряда. Например, сумма членов числового ряда: 1 + 1/32 + 1/52 + . . . + 1/(2*N-1)2 + . . . имеет предел S = Pi2/8; и общий член aN= 1/(2*N-1)2, где N = 1, 2, 3, . Для сходящегося ряда вычисляется последовательность частичных сумм с заданной погрешностью. Абсолютная погрешность расчетов определяется по формуле Eps=abs(S-SN), либо Eps=abs(aN), если значение S неизвестно. Относительная погрешность расчетов определяется по формуле Eps o=abs((S-SN)/S), либо Eps o=abs(aN/SN). Частичные суммы вычисляются по формуле: SN = SN-1 + aN; Для знакопеременного ряда следует добавить k1=-1, а в цикле: k1:=-k1, aN=k1*aN. В некоторых случаях "N-ый член ряда выражается через "N-Г-ый, например, для ряда: 1 + 1/2! + 1/4! + 1/6! + . . . + 1/(2*N)! + . . . ; N = 0, 1, 2, . . . общий член ряда вычисляется по формуле: aN = aN-1*k; Параметр k = aN/aN-1; - коэффициент роста вычисляется предварительно (до написания программы). Для данного ряда aN = 1/(2* N )! = 1/( 1*2*. . . * (2*N-2)*(2*N-1)*2*N); aN-i = 1/(2*(N-1))!= 1/((2*N-2))!= 1/(1*2*. . . *(2*N-2)); k = aN/aN-1 = 1/((2*N-1)*2*N). Здесь N! = 1*2*3*. . . *N; - вычисление факториала числа "N", причем 0! = 1. Расчет частичных сумм производится в цикле с условием, например, для данного ряда операторами: N:= 0; a:= 1; SN:= 1; e:= 2. 7182828; S:= (e2 + 1)/e; repeat N:= N+1; k:= 1/((2*N-1)*2*N); a:= a*k; SN:= SN+a; Writeln(Частичная сумма Sn=, Sn:-11:6, n=, n:2); until abs(S-Sn) < eps;{ eps - допустимая погрешность расчетов} Writeln( Сумма ряда S =, S :-11:6); Практическое задание N 1. 15 Определить число членов ряда, необходимых для расчета с заданной погрешностью суммы членов ряда:
Если члены ряда являются функциями аргумента "x", то ряд называется функциональным. Расчет многих функций производится разложением функции в степенной ряд. Приведем пример расчета значения функции y=sin(x) при некотором значении "х" с использованием представления функции в виде ряда: y1 = x - x3/3! + ... + (-1)(N+1) * x(2*N+1)/(2*N+1)! + ... где a0= x, aN= k * aN-1, k= (-x2)/(2*N*(2*N+1)), N= 0, 1, 2, ... Каждый член ряда а>) при N>0 можно получить умножением предыдущего члена ряда aN-1 на коэффициент k. Приближенное значение функции y=sin(x) находится как частичная сумма "N" членов ряда. Погрешность вычисления значения функции "у" при некотором значении "х" зависит от количества членов ряда и значения "х", поэтому расчет заканчивается при aN < eps, где eps - допустимая погрешность расчетов. В программе используем цикл с условием, например: PROGRAM SIN R; Var y, yl, x, eps, a, k: real; n: Word; Begin Writeln(Вычисление y=sin(x) с использованием ряда !); Write(Введите значение аргумента x=); readln(x); Write(Введите значение погрешности еps=); readln(eps); Writeln;y:= sin(x); n:= 0; a:= x;{ a - первый член ряда } y1:= a;{ yl - первая частичная сумма ряда } While abs(a) > eps do begin n:= n+1; k:= -x*x/(2*n*(2*n+1)); a:= a*k; y1:= y1+a; Writeln(Приближенное значение функции y1=, y1:-11:8, при n=, n Writeln(Контрольное значение функции y=sin(x)= , y:-11:8); Writeln(Нажмите Enter); readln; Применение оператора Repeat. . . в данном примере имеет вид: Repeat "операторы" Until abs(a) < eps; Операторы цикла с условием могут применяться для анализа правильности вводимых данных. Контроль входных данных обязателен для рядов, сходящихся не во всей области "X", например, X<1 при разложении функции arctg(x) в степенной ряд. В этом случае можно использовать "защиту от дурака", например: Repeat Write(введите значение х<1; x=); readln(x) until abs(x)<1; Практическое задание N 1. 16 1. Рассчитать значение функции y=f(x) при некотором значении "х" с использованием представления функции в виде ряда:
|
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||