WWW.DOC.KNIGI-X.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Различные документы
 


«Мокрова Н.В. М75 Основы численных методов: Учебное пособие /Н.В. Мокрова, Л.Е. Суркова. Под редакцией В.М. Володина; Федеральное ...»

УДК 518.6

ББК 22.193

М75

кафедра кибернетики химико-технологических

Рецензенты:

процессов РХТУ им. Д.И. Менделеева;

С.М. Шпакова, Российская международная академия

туризма

Допущено редакционно-издательским советом МГУИЭ

Мокрова Н.В.

М75 Основы численных методов: Учебное пособие /Н.В.

Мокрова, Л.Е. Суркова. Под редакцией В.М. Володина;

Федеральное агентство по образованию; Моск. гос. ун-–т

инж. экологии, ф–т АИТ, кафедра “Прикладная математика и информатика.” –М.: МГУИЭ, 2006. - 90с.

ISBN 5-9513-0112-2 В учебном пособии рассматриваются методы и алгоритмы, наиболее часто используемые в инженерных приложениях при математическом моделировании технических объектов. Дано описание методов для решения нелинейных уравнений, систем линейных уравнений, методов интегрирования и методов оптимизации функции одной переменной. Включен раздел, касающийся обработки массивов данных. Приведены варианты заданий для контроля и проверки знаний, программы на Turbo Pascal.

Предназначено для студентов I курса инженерных специальностей МГУИЭ, изучающих дисциплину “Информатика”.

УДК 518.6 ББК 22.193 Н.В. Мокрова, Л.Е. Суркова, 2006 МГУИЭ, 2006 ISBN 5-9513-0112-2 Цель расчетов - не числа, а понимание.

Р.В. Хемминг

ВВЕДЕНИЕ

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

Многие численные методы известны давно, но лишь с появлением вычислительной техники начался период их бурного развития и внедрения в практику. Применение компьютеров позволяет существенно сократить трудоемкость решения многих современных задач.

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

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

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

Курс лекций по дисциплине “Информатика” читается студентам I курса на протяжении ряда лет в течение двух семестров. Для большинства студентов этот материал является первым изложением численных методов, поэтому он будет полезным при изучении последующих лекционных курсов и для самостоятельной работы. В заключительной части каждой главы приведены задачи, предназначенные для решения на компьютере. В приложениях даны программы на языке программирования Turbo Pascal.

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

ГЛАВА 1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ

НЕЛИНЕЙНЫХ УРАВНЕНИЙ

Задача нахождения корней нелинейных алгебраических уравнений вида f (x) = 0 (1.1) встречается в различных областях научных исследований (здесь f (x) - некоторая дифференцируемая функция). Нелинейные уравнения можно разделить на два класса – алгебраические и трансцендентные. Алгебраическими уравнениями называются уравнения, содержащие только алгебраические функции переменных (целых, рациональных, иррациональных). Уравнения, содержащие другие типы функций (тригонометрические, показательные, логарифмические), называются трансцендентными.

Методы решения нелинейных уравнений делят на прямые и итерационные. Прямые (точные) методы позволяют записать корни в виде некоторого конечного соотношения или формулы.

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

Однако встречающиеся на практике уравнения не всегда удается решить такими простыми способами. Для их решения используются численные методы, методы последовательных приближений.

Геометрически задача нахождения корней состоит в определении точек пересечения графика функции f (x) с осью Ох.

Процесс поиска корней уравнения с помощью численного метода состоит из двух этапов: локализации и уточнения значения корня.

На первом этапе проводят грубую оценку приближенного значения корня – начального приближения х0. Теоретической основой этапа локализации является теорема Больцано-Коши.

На заданной области поиска находят две близко расположенные точки a и b, в которых непрерывная функция f (x) принимает значения разных знаков, т.е. f (a)f (b)0. В этом случае между точками a и b есть по крайней мере одна точка, в которой f (x) = 0. Если при этом функция f (x) имеет первую производную, не изменяющую знака, то этот корень единственный.

Второй этап решения состоит в последовательном уточнении начального приближения х0 до получения истинного значения х*. Каждый шаг поиска называют итерацией. В результате итераций находится последовательность приближенных значений корня х0, х1, х2, …, хn. Если эти значения с ростом n приближаются к истинному значению корня, то говорят, что итерационный процесс сходится.

( x * xi ) (1.2) lim x* i Далее рассматриваются некоторые итерационные методы решения нелинейных уравнений с одной неизвестной.

1.1.Локализация корней Постановка задачи. Пусть задана некоторая функция f (x), которая определена на отрезке [a; b]. Необходимо определить корни уравнения (1.1), находящиеся на заданном участке с заданным шагом сканирования h.

f(x)

–  –  –

0 a x1 b xi-1 xi x f(xj) Рис. 1.1. Иллюстрация процесса локализации корней (h – шаг сканирования).

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

Для того чтобы выделить такие участки, выбирают количество разбиений n, и всю заданную область поиска [a; b] разбивают на отрезки точками хi, расположенными на расстоянии h=(b-a)/n одна от другой. Вычислив значения f (x) во всех точках, сравнивают их со значениями в соседних точках, т.е. проверяют, выполняется ли на отрезке [xi-1; xi] условие f (xi-1) f (xi) 0 (см. рис.1.1). В случае выполнения указанного условия значения границ выделенных подынтервалов фиксируются и в дальнейшем могут быть использованы на этапе уточнения локализованных корней.

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

Алгоритм метода сканирования с постоянным шагом представлен на рис. 1.2.

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

Сформулируем общую задачу уточнения корня для второго этапа решения нелинейных уравнений.

Постановка задачи Пусть нужно найти корень уравнения f (x) = 0 на отрезке [a, b], если известно, что:

1. Функция f (x) непрерывна вместе со своими производными первого и второго порядка.

2. Значения f (x) на концах интервала [a, b] имеют разные знаки, т.е. f (a) f (b) 0.

–  –  –

Конец Рис. 1.2. Блок-схема алгоритма метода сканирования с постоянным шагом (h – шаг сканирования; a, b – границы области поиска)

1.2. Модифицированный метод сканирования Методом сканирования с переменным шагом проводится сужение интервала, на котором находится корень.

Итерационный процесс рассматриваемого метода заключается в следующем (рис.1.3). Движение начинается от левой границы отрезка [a, b] с шагом h до тех пор, пока не выполнится условие f ( xi ) f ( xi 1 ) 0, (1.3) т.е. пока не будет достигнута область пересечения графика функции и оси Ох.

Затем шаг сканирования уменьшается, и движение (сканирование) продолжается в противоположном направлении с меньшим шагом. Для этого значение шага умножается на (-1) и делится на коэффициент дробления шага, который обозначим p.

–  –  –

Достоинством метода является его простая реализация. Но методом сканирования для уточнения корней уравнения пользуются редко, так как он имеет медленную скорость сходимости по сравнению с другими методами.

1.3. Метод половинного деления Метод половинного деления применяется для уточнения корня на выделенном участке, где этот корень является единственным. Это один из простых методов нахождения корней нелинейных уравнений.

Метод заключается в следующем. Отрезок [a, b], на котором существует точка пересечения графика функции f (x) с осью Ох, делят пополам (рис 1.5.). Полученное значение х1= (a + b)/2 f(x1) f(x)

–  –  –

Рис. 1.5. Геометрическая иллюстрация метода половинного деления принимают в качестве начального приближения, и вычисляют значение функции f (x1), при этом, если f(x1) 0, то выбирают тот из подынтервалов [a, x1 ] или [x1, b], на концах которого функция f (x) имеет противоположные знаки. На рис. 1.5. этим отрезком будет [a,x1].

Полученный отрезок переименовывают в [a, b] и снова делят пополам, затем проводят тот же анализ, что и при первоначальном делении. Деления сужающего отрезка, проверку и выбор повторяют до тех пор, пока длина отрезка, на концах которого функция имеет противоположные знаки, не станет меньше заданной точности вычислений. Проверку условия противоположности знаков функций выполняют посредством неравенства f (a) f (x) 0, а условия остановки вычислений – путем проверки неравенства b – а.

Начало

–  –  –

Рис.1.6. Блок-схема алгоритма метода половинного деления Можно также проводить оценку значений функции f (x) после каждой i-й итерации, пока одно из них по модулю не станет меньше заданного числа, т.е. f (xi).

Блок-схема алгоритма метода половинного деления изображена на рис. 1.6. Здесь сужение отрезка проводится путем замены границы a или b на текущее приближенное значение корня х.

Метод половинного деления прост и очень надежен. Он сходится для любых непрерывных функций.

Недостатком метода половинного деления является медленная сходимость вычислительного процесса.

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

1.4. Метод хорд При решении уравнений методом хорд исходят из предположения, что на достаточно малом отрезке [a, b] функция изменяется линейно и имеет разные знаки на его концах, следовательно, некоторый малый участок кривой у = f (х) может быть заменен хордой. Отсюда следует, что в качестве приближенного значения корня уравнения может быть принята точка пересечения этой хорды с осью абсцисс. Поскольку выявление достаточно малого участка [a, b] является затруднительным, то точка пересечения хорды х0 (рис.1.7.) может быть принята в качестве начального приближения. Уточненное значение может быть получено при выполнении последующих операций. На каждом шаге вычисляют значение f (хi) и проводят новую хорду, получая i-е приближение. Это приводит к постепенному перемещению точки пересечения хорды хi по Ох в направлении к точке пересечения заданной функции с осью абсцисс, т.е. к сужению интервала [a, b]. Аналитическое выражение для вычисления первого приближенного значения корня может быть получено, исходя из подобия треугольников Аах0 и Ввх0 (см. рис.1.7).

– (от греч. chorde - струна), отрезок прямой, соединяюХорда щий две какие-либо точки кривой.

f(x)

–  –  –

Рис. 1.8. Блок-схема алгоритма метода хорд

1.5. Метод касательных Применение метода касательных или метода Ньютона основано на возможности замены графика функции (1.1) некоторым участком прямой линии, если интервал [a; b] достаточно мал.

Графическая интерпретация метода касательных сводится к следующему (рис.1.9.): пусть уже найдено первое приближенное значение х0 корня уравнения y = f (x). Проведем из этой точки вертикальную прямую до пересечения с графиком функции и обозначим эту точку А, если теперь провести в этой точке касательную до пересечения с осью Ох, то найденная точка х1 будет ближе к точке пересечения кривой y = f (x), чем точка х0. Значит, чтобы найти следующее приближение необходимо определить значение абсциссы х1. Из треугольника х1х0А следует, что катет х0А является значением функции y = f (x) в точке х0.

–  –  –

1.8. Примеры заданий для самостоятельной работы

1.Оформить программу поиска корней уравнений (1) – (3) из табл. 1.2. методом сканирования с переменным шагом.

2.Оформить программу поиска корней уравнений (4), (5) из табл. 1.2. методом сканирования и уточнения значения корней методом хорд.

3.Оформить программу поиска корней уравнений (6), (7) из табл. 1.2. методом сканирования и уточнения значения корней методом половинного деления.

4.Оформить программу поиска корней уравнений (3), (6), (12) из табл. 1.2. методом сканирования и уточнения значения корней методом Ньютона.

5.Сравнить количество итераций при решении заданного уравнения методами половинного деления и хорд.

6.Сравнить количество итераций при решении заданного уравнения методами половинного деления и Ньютона.

7.Описать метод простых итераций. Для заданной функции отделить корни на заданном интервале методом сканирования с шагом 0.1. Уточнить значение кореня методом итераций с точностью 0.001. Алгоритм метода итераций оформить в виде процедуры. Решение показать на графике.

8.Сравнить количество итераций при решении уравнений из табл.1.2. методами половинного деления и хорд с заданной точностью вычислений.

9.Сравнить количество итераций при решении уравнения из табл.1.2. методами хорд и Ньютона с заданной точностью вычислений.

–  –  –

a массива Вычисление суммы элементов S=а1+а2+…+аn = i i =1 А=(а1,а2,…,аn) размерностью n приведено на рис.2.2а в виде блок-схемы алгоритма. Здесь до начала цикла полагаем, что искомая величина суммы S равна нулю. В цикле происходит накопление суммы: к предыдущему его значению добавляется новый элемент массива аi.

Вычисление произведения элементов P=а1•а2•…•аn массива А=(а1,а2,…,аn) размерностью n приведено на рис.2.2б в виде блок-схемы алгоритма. Здесь до начала цикла полагаем, что произведение элементов Р равно единице.

Упорядочивание элементов массива А=(а1,а2,…,аn) размерностью n по возрастанию (убыванию) может быть осуществлено одним из двух способов: методом пузырька [2] либо методом перестановки.

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

Такое сравнение происходит (n-1)2 раз. Блок-схема алгоритма метода пузырька для расположения элементов по возрастанию приведена на рис.2.3а. Здесь j – номер текущего цикла сравнения, j=1..n-1. За каждый такой цикл происходит (n-1) операция сравнения. Для перестановки элементов вводится дополнительная переменная st, позволяющая запомнить значение одной переменной, а затем присвоить это значение другой переменной. В последнем цикле по i происходит вывод преобразованного массива.

Метод перестановки заключается в следующем: сначала определяется минимальный элемент и ставится на первое место, затем из оставшихся (n-1) элементов вновь определяется минимальный и ставится на второе место, потом из оставшихся (n-2) элементов опять определяется минимальный и ставится на третье место и так далее.

j:=1, n-1 j:=1, n-1

–  –  –

а б Рис.2.3. Блок-схемы алгоритмов сортировки элементов по возрастанию а – методом пузырька; б – методом перестановки Блок-схема алгоритма этого метода расположения элементов по возрастанию приведена на рис.2.3б. Здесь j –номер цикла, в котором определяется минимальный элемент и ставится на j-е место. Таких циклов (n-1).

При работе с двумерными массивами используются те же основные алгоритмы, дополненные циклом, позволяющим перебирать элементы не одной строки (столбца) как у одномерных массивов, а последовательно строку за строкой.

2.2. Примеры заданий для самостоятельной работы

1. Задан массив случайных чисел А(12). Вычислить среднее арифметическое отрицательных элементов.

2. Задан массив случайных чисел А(10). Определить максимальный элемент, затем все положительные элементы заменить этим максимальным.

3. Для массива случайных чисел М(12), найти максимальный элемент и поменять его местами с первым элементом.

4. В массиве случайных чисел А(15) найти минимальный элемент и поставить его на последнее место.

5. Задан массив случайных чисел А(100). Найти сумму элементов, находящихся между первым и последним отрицательными элементами.

6. Задан массив случайных чисел А(100). Найти сумму элементов, стоящих на нечетных местах.

7. Задан массив случайных чисел А(100). Четные элементы расположить в порядке возрастания с сохранением их мест в массиве.

8. Описать массив К(25). Ввести элементы массива. Поменять местами 1- и 2-й, 3- и 4-й, 5- и 6-й и т.д. элементы. Результат распечатать.

9. Описать массив В(25). Ввести элементы массива. Найти максимальный элемент массива и прибавить его к каждому элементу массива.

10. Заданы два массива случайных чисел X(20), A(20). Сформировать массив В(20) по правилу Вi = min(Xi,Aj).

11. Для массива случайных чисел М(12) найти максимальный и минимальный элементы и поменять их местами.

12. В массиве целых чисел В(4,5) найти сумму элементов каждой строки.

13. Для матрицы случайных чисел С(5,5) найти среднее арифметическое элементов, лежащих ниже главной диагонали.

14. Для матрицы Р(4,4) произвести транспонирование (поменять местами элементы, симметрично расположенные относительно главной диагонали).

15. Для матрицы случайных чисел К(5,5) найти сумму отрицательных элементов, лежащих выше главной диагонали.

16. В матрице случайных чисел А(3,3) найти максимальный элемент, лежащий на главной диагонали.

17. Для матрицы С(4,4) вычислить сумму элементов, лежащих на побочной диагонали.

18. Для матрицы случайных чисел В(5,5) найти количество нулевых элементов, стоящих в К-м столбце. Значение К ввести.

19. Для матрицы случайных чисел М(6,6) найти максимальный и минимальный элементы, лежащие на побочной диагонали.

20. Для матрицы М(4,4) найти максимальный и минимальный элементы, лежащие на главной диагонали.

21. Для матрицы С(5,5) вычислить среднее арифметическое положительных элементов, расположенных на побочной диагонали.

22. Задан массив случайных чисел А(5,5). Образовать одномерный массив, элементы которого являются элементами главной диагонали исходного массива.

23. В массиве случайных чисел С(5,5) определить максимальный элемент, не лежащий на главной диагонали.

24. В матрице случайных чисел А(3,3) заменить элементы побочной диагонали нулями.

25. В матрице случайных чисел Д(4,4) заменить элементы главной и побочной диагонали единицами.

26. В матрице случайных чисел А(3,3) найти сумму положительных элементов главной диагонали.

27. Для массива М(3,4) найти сумму элементов каждого столбца.

28. Для массива М(5,4) определить количество положительных элементов каждого столбца.

29. Для массива М(4,3) вычислить сумму четных элементов.

30. Для массива М(4,3) вычислить среднее арифметическое положительных элементов.

31. Для массива А(5,6) найти столбец, содержащий минимальный элемент и заменить нулями все элементы этого столбца.

32. Для массива М(3,4) определить количество элементов, значение которых больше нуля и меньше четырех.

33. Задан массив А(5,5). Максимальный элемент каждой строки этого массива поставить на последнее место в соответствующей строке.

34. Описать массив В(6,6), ввести его и распечатать. Сумму четных элементов вычесть из каждого элемента побочной диагонали. Результат напечатать.

35. Описать и ввести массив В(5,5). Суммы элементов каждой строки поставить в главную диагональ. Результат распечатать.

36. Описать и ввести массив В(5,5). Минимальные элементы каждой строки поставить в главную диагональ. Результат распечатать.

37. Описать и ввести массив А(5,5). К элементам, расположенным на главной диагонали, прибавить максимальное из отрицательных членов массива.

38. Описать и ввести массив С(5,5), распечатать его. К элементам четных столбцов прибавить минимальный элемент массива.

Результат распечатать.

39. В массиве случайных чисел А(6,6) элементы каждого столбца расположить в порядке возрастания.

40. В массиве случайных чисел В(4,4) найти сумму элементов, прибавить это значение к элементам главной диагонали.

41. В массиве случайных чисел В(5,5) элементы главной диагонали расположить в порядке возрастания.

42. В массиве случайных чисел С(5,5) определить и распечатать строку с максимальным элементом. Просуммировать эту строку с последней строкой (поэлементно). Результат распечатать.

43. В массиве случайных чисел В(5,5) к элементам побочной диагонали прибавить элементы строки, содержащей максимальный элемент (к каждому элементу).

–  –  –

Теперь из третьего уравнения системы (3.8) нужно исключить x2. Для этого умножим второе уравнение системы (3.8) на ( a32 a22 ) и прибавим результат к третьему. Получим / /

–  –  –

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

n a aii i = 1, n, (3.19) ij j =1 i j При этом хотя бы для одного уравнения неравенство должно выполняться строго. Эти условия достаточны для сходимости метода, но они не являются необходимыми, для некоторых систем итерации сходятся и при нарушении условий (3.19).

Блок-схема алгоритма решения системы n линейных уравнений методом Гаусса-Зейделя представлена на рис. 3.3. В качестве исходных данных вводятся матрицы коэффициентов левых и правых частей уравнений системы (матрицы A и B), погрешность, начальные приближения переменных xi (i=1,2, …,n).

Отметим, что начальные приближения можно не вводить в компьютер, а полагать их равными некоторым значениям, например, нулю или значениям, определяемым выражением (3.14).

Для отладки программы можно ввести также допустимое число итераций М.

Для удобства чтения блок-схемы поясним некоторые обозначения: k – порядковый номер итерации; i – номер уравнения, а также номер переменной, которая вычисляется в данном цикле;

j – номер слагаемого, стоящего под знаком в выражении (3.16). Итерации прекращаются либо после выполнения условия (3.17), либо при k=M. В последнем случае итерации не сходятся, и после М итераций счет прекращается без выдачи результатов.

В этом случае предусматривается вывод на печать значений промежуточных вычислений.

–  –  –

ГЛАВА 4. ЧИСЛЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ

ОПРЕДЕЛЕННОГО ИНТЕГРАЛА

Под определенным интегралом функции f(x) на отрезке [a, b] чаще всего понимают площадь криволинейной фигуры под графиком функции f(x) (рис 4.1). Предполагается, что отрезок от a до b разбит на множество маленьких интервалов величиной h, и вычислены площади i-х столбцов Si=f(xi). h, тогда можно с заданной точностью определить значение площади криволинейной трапеции, ограниченной графиком функции f(x) и равной сумме площадей элементарных интервалов.

–  –  –

Рис. 4.2. Иллюстрация методов вычисления интегральных сумм Замена реальной функции f(x) уравнением прямой на участках интегрирования вносит определенную погрешность в вычисление интеграла. Погрешность будет уменьшаться при увеличении количества разбиений интервала за счет более точной аппроксимации подынтегральной функции.

Начало

–  –  –

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

Погрешность вычисления определенного интеграла методом прямоугольников пропорциональна шагу интегрирования h.

Блок-схема программы вычисления определенного интеграла методом правых прямоугольников приведена на рис. 4.3.

4.2. Метод трапеций Более точное вычисление определенного интеграла обеспечивает метод трапеций. Подынтегральная функция f(x) разбивается на n равных участков, которые заменяются прямыми, соединяющими точки со значениями функции на границах каждого элементарного участка аппроксимации f(xk), f(xk+1). Сумма площадей образованных таким образом трапеций (рис. 4.2) при том же значении n точнее приближает значение интеграла к истинному, по сравнению с методами прямоугольников.

Интегральная сумма метода трапеции может быть рассчитана по одной из равносильных формул:

f ( a ) + f (b ) n

–  –  –

С увеличением длины промежутка интегрирования точность расчетов по (4.7) быстро падает. Для повышения точности применяют составную формулу Симпсона.

Отрезок [a, b] разбивают на четное n=2.m число отрезков длиной h=(b-a)/ 2.m. Пусть xi=a+i.h, yi=f(xi), i=0,1,2,…, 2.m.

Применим простую формулу Симпсона к каждому из отрезков [x0, x2], [x2, x4],…, [x2m-2, x2m] длиной 2.h.

После суммирования интегралов по всем отрезкам получаем составную формулу Симпсона b

–  –  –

Рис. 4.4. Блок-схема программы вычисления интеграла методом Симпсона Блок-схема вычисления интеграла приведена на рис. 4.4.Согласно алгоритму вычисления проводят по формуле (4.8), чередование коэффициентов осуществляют при помощи смены знаков соответствующей переменной.

Погрешность метода Симпсона пропорциональна h4.

–  –  –

Конец Рис. 4.4. Блок-схема алгоритма метода двойного пересчета Описанный метод называют также методом двойного пересчета. Блок-схема этого метода приведена на рис. 4.5. Остановка расчетов происходит при выполнении условия (4.9), т.е., если последовательно вычисленные два значения интеграла с удвоенным шагом различаются незначительно.

4.5. Вычисление сумм числовых рядов Математический анализ изучает бесконечные множества чисел, бесконечные суммы и произведения, отношения бесконечно малых и бесконечно больших величин. Натуральный ряд чисел 1,2,3, 4,..., обозначает бесконечное множество. С помощью натурального ряда описывают и другие бесконечные объекты, в частности числовые последовательности.

Допустим, указано правило, согласно которому каждому натуральному числу 1, 2, 3,..., n,... поставлен в соответствие элемент an некоторого множества A. Тогда говорят, что задана последовательность элементов an A.

Если взять любую последовательность an и формально поставить между её членами знаки сложения

–  –  –

Рис. 4.5. Блок-схема алгоритма вычисления значения синуса В знакопеременных рядах, при помощи которых можно вычислить значения тригонометрических функций (табл.4.1), абсолютные величины членов ряда монотонно убывают, такие ряды сходятся.

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

4.6. Примеры заданий для самостоятельной работы

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

2. Сравнить результаты вычисления площади заданной фигуры методами правых, левых и средних прямоугольников.

3. Вычислить площадь, ограниченную графиком заданной функции, методом трапеции. Результат сравнить с значением, полученным при расчете методом прямоугольников.

4. Оформить программу вычисления площади заданной фигуры методом двойного пересчета с использованием формулы трапеции.

5. Вычислить площадь, ограниченную графиком заданной функции, методом Симпсона.

6. Найти площадь фигуры, ограниченной функциями f1(x) и f2(x) Вариант 1 f1 ( x) := ( 3 x) 7 f2 ( x) := ( x 5) + 10, методом правых прямоугольников с точностью =0.001.

Указания к выполнению:

1) Найти точки пересечения двух графиков f1(x) и f2(x) c использованием метода сканирования решения нелинейного уравнения с шагом h=0.1 и дальнейшего уточнения найденных корней методом половинного деления с точностью =0.001.

2) Нахождение площади фигуры путем интегрирования оформить в виде процедуры.

3) Результат работы должен содержать значения точек пересечения двух графиков функций f1(x) и f2(x), как значения пределов интегрирования a и b, значение интеграла I (с учетом знака), значение площади фигуры S и отражение результатов расчетов на графике.

7. Найти площадь фигуры, ограниченной функциями f1(x) и f2(x) x f1 ( x) := ( 5 x) + 5 f2 ( x) := ( x 4) + 1, методом трапеций с точностью =0.001.

Указания к выполнению:

1) Найти точки пересечения двух графиков f1(x) и f2(x) c использованием метода сканирования решения нелинейного уравнения с шагом h=0.1 и дальнейшего уточнения найденных корней методом половинного деления с точностью =0.001.

2) Нахождение площади фигуры путем интегрирования оформить в виде процедуры.

3) Результат работы должен содержать значения точек пересечения двух графиков функций f1(x) и f2(x), как значения пределов интегрирования a и b, значение интеграла I (с учетом знака), значение площади фигуры S и отражение результатов расчетов на графике.

8. Найти площадь фигуры, ограниченной функциями f1(x) и f2(x) x f1 ( x) := ( 3 x) + 5 f2 ( x) := ( x 4) + 7, методом Симпсона с точностью =0.001.

Указания к выполнению:

1) Найти точки пересечения двух графиков f1(x) и f2(x) c использованием метода сканирования решения нелинейного уравнения с шагом h=0.1 и дальнейшего уточнения найденных корней методом касательных с точностью =0.001.

2) Нахождение площади фигуры путем интегрирования оформить в виде процедуры.

3) Результат работы должен содержать значения точек пересечения двух графиков функций f1(x) и f2(x), как значения пределов интегрирования a и b, значение интеграла I (с учетом знака), значение площади фигуры S и отражение результатов расчетов на графике.

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

10. Составить программу накопления сумм сходящихся рядов, приведенных в табл.4.1.

–  –  –

ГЛАВА 5. ЗАДАЧИ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ

Задачи на поиск максимумов и минимумов функций очень часто встречаются в технических расчетах. Начнем с одной из простых задач математики: требуется найти наибольшую площадь прямоугольного треугольника с заданной суммой длин катетов. Это задача о максимуме. Во многих случаях ищут минимум — наименьшее значение чего-либо. Оба понятия, максимум и минимум, объединяются термином экстремум (от лат. extremum — «крайнее»). Задачи на отыскание максимума и минимума называются экстремальными. Почти тот же смысл вкладывается в термин «задачи оптимизации».

Первый аналитический прием решения экстремальных задач был найдем Пьером Ферма. Он сводится к следующему: если функция у = f(x) достигает своего экстремума в точке х*, то в данной точке производная функции должна обратиться в нуль, т. е. должно иметь место равенство f'(x0) = 0.

Пусть функция f(x) определена на некотором интервале [a, b], содержащем точку x0. Говорят, что x0 —локальный минимум (максимум) функции f(x), если найдётся такой подынтервал [a0,b0], принадлежащий [a, b] и также содержащий x0, что f(x) f(x0) (f(x) f(x0)) для всех х из этого подынтервала [a0,b0]. Другими словами, в пределах подынтервала [a0,b0] функция f(x) в

y f(x)

x xmin x2 xmax x1 Рис. 5.1. Экстремальная функция точке x0 достигает своего минимального (максимального) значения. На рис.5.1 точка x1 — локальный минимум, а точка x2 — локальный максимум. Локальный минимум и локальный максимум объединяются термином локальный экстремум.

Локальные экстремумы f(x) находятся среди корней уравнения f'(x)=0. Корни этого уравнения называют стационарными точками функции f(x).

Когда у функции f(x) есть вторая производная в стационарной точке, то достаточные условия локального экстремума можно сформулировать короче: если x0 – стационарная точка функции f(x) и f''(x)0, то x0 – локальный минимум, а если f''(x)0, то x0 – локальный максимум.

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

Общая формулировка задачи оптимизации выглядит следующим образом:

f 0 ( x) max(min), (5.1) x где f0 – целевая функция, позволяющая оценить качество искомого решения; x – переменная оптимизации, определяемая в [] процессе решения задачи; x a, b – интервал поиска.

Алгоритм поиска экстремума функции одной переменной можно сформулировать следующим образом.

Пусть исследуемая функция f(x) определена, непрерывна и дифференцируема на отрезке [a, b] и имеет единственную точку x*, в которой принимает экстремальное значение [5]. Для поиска минимума, если x1x2x*, то f(x1)f(x2) и, аналогично, x* x1x2, то f(x1)f(x2).

Задача поиска состоит в построении такой последовательности {xn}, чтобы на некотором i–м шаге экстремальное значение функции достигалось бы на интервале xi-1x*xi.

Этот интервал принято называть интервалом неопределенности. При этом должно выполняться условие x i 1 x *. В этом случае говорят, что функция f(x) имеет минимум в конечной – окрестности на элементе x*.

Алгоритм выбора {xn} называют стратегией поиска. Оптимальной стратегией считается та, которая при заданном количестве вычислений приводит к наименьшему интервалу неопределенности.

Приведем некоторые из методов поиска экстремума.

5.1. Метод сканирования Метод сканирования в разных формулировках можно применять как для поиска оптимума одноэкстремальной функции, так и для функции, имеющей несколько максимумов и минимумов. Задача метода сканирования – сужение интервала, на котором находится экстремум (рис 5.2).

–  –  –

на 2-м шаге x1 x2=x1 b=x2 x 0 a x1 x2 b Рис. 5.4. Иллюстрация метода золотого сечения С учетом (5.3) можно доказать, что положение точек x1 и x2 может быть найдено из двух соотношений:

x1 := a + (b a ) (5.5) x2 := b – (x1- a) (5.6) Заметим, что точка x1 в свою очередь производит золотое сечение отрезка [a, x2], а точка x2 – золотое сечение отрезка [x1, b].

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

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

Заданный отрезок [a, b] разделяют точками x1 и x2 по методу золотого сечения [3] на три сегмента, и в этих точках вычисляют значения функции f(x1) и f(x2). Сравнивают эти значения. В случае f(x1) f(x2) из рассмотрения исключают сегмент [a, x1] и проводят коррекцию интервала, полагая a=x1. Если f(x1) f(x2), то отбрасывают сегмент [x2, b] и полагают b= x2.

Полученный новый суженный интервал неопределенности вновь разделяют по методу золотого сечения, используя уже имеющуюся точку в данном случае x1 (рис.5.4), и вновь вычисляют и сравнивают значения f(x1) и f(x2).

Процесс поиска экстремума функции продолжают до тех пор, пока интервал неопределенности не станет меньше некоторого заданного числа.

Блок-схема алгоритма метода золотого сечения приведена на рис.5.5.

Задачу поиска экстремума одноэкстремальной функции можно также решить методом половинного деления. Алгоритм метода аналогичен алгоритму метода золотого сечения, только вместо деления отрезка по правилу (5.5) деление проводят пополам (рис. 5.6). Для большинства тестовых функций скорость сходимости в этом случае снижается.

Начало

–  –  –

5.3. Метод Фибоначчи Многим поколениям европейцев Леонардо Пизанский (Фибоначчи) был известен как автор «Книги абака» (1202 г.), где приведена десятичная система счисления. Теперь его имя чаще всего упоминают в связи с последовательностью чисел {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89...}, которую он рассмотрел при решении задачи о размножении кроликов. В последовательности первые два числа — единицы, а каждое последующее равно сумме двух предыдущих. Эта последовательность задаётся следующим рекуррентным соотношением:

a1=1, a2=1, an+2=an+1+an (n1). (5.7) Числа Фибоначчи встречаются во многих разделах математики: в комбинаторике, геометрии, теории чисел, в задачах на максимум и минимум. Поиск экстремума функции f(x) на заданном отрезке [a, b] по методу Фибоначчи связан с понятиями последовательности Фибоначчи.

В теории поиска экстремума одномерных функций числа Фибоначчи используют в стратегии выбора положения точек x1 и x2 на оси Оx. Последние вычисляют по формулам un x1 = a + (b a ) (5.8) un+ 2 u x2 = a + n +1 (b a), (5.9) un+ 2 в которых отношения un/un+2 и un+1/un+2 – есть отношения чисел Фибоначчи, выбираемые из последовательности в зависимости от установленного числа испытаний n. Таким образом, требуется, чтобы число испытаний n для поиска экстремума функции было заранее задано. Так, например, если планируется пять вычислений значений f(x), то отношения un/un+2 и un+1/un+2 в выражениях (5.8) и (5.9) принимают равными 5/13 и 8/13 соответственно.

Последующие операции в поиске экстремума f(x) заключаются в вычислении значений функции f(x1) и f(x2), их сравнении и коррекции исследуемого интервала [а, b], в выборе новых точек x1 и x2 на суженном интервале по методу Фибоначчи и т.д.

Эти действия повторяют до тех пор, пока не будут получены значения x и f(х) для всех запланированных испытаний.

–  –  –

y := f(x) Вывод x, y Конец Рис. 5.7. Блок-схема алгоритма метода Фибоначчи Текстуальное описание алгоритма поиска минимума функции методом Фибоначчи достаточно объемное и полностью повторяет блок-схему алгоритма, приведенную на рис. 5.7.

5.4. Примеры заданий для самостоятельной работы

1.Оформить программы поиска интервалов неопределенности для функций из табл. 5.1 методом сканирования. Построить графики.

2.Составить программу определения экстремума тестовой функции f(x)=(x-5)2 методом золотого сечения.

3.Оформить программу определения экстремума функции методом золотого сечения на найденном интервале неопределенности для функций из табл. 5.1. Построить графики.

4.Составить программу определения экстремума тестовой функции f(x)=(x-3)2 методом Фибоначчи.

5.Оформить программу определения экстремума функции методом Фибоначчи на найденном интервале неопределенности для функций из табл. 5.1. Построить графики.

6.Сравнить количество итераций при вычислении экстремума методами золотого сечения и Фибоначчи.

Таблица 5.1

–  –  –

ПРИЛОЖЕНИЯ

Pascal программа решения нелинейного уравнения методом сканирования.

program scan;

var x,n,h,a,b,y,y1:real; i:integer;

function f(x:real):real;

begin f:=3*x-cos(x)-1 end;

begin writeln('a,b,n='); read(a,b,n);

h:=(b-a)/n; x:=a;

repeat y:=f(x); y1:=f(x+h);

if y*y10 then begin i:=i+1;writeln ('x=',x:7:5,' i=',i, 'f(x)=',y:7:5);

end;

x:=x+h;

until xb;

end.

Программа решения нелинейного уравнения методом половинного деления program poldel;

const e=0.001;

var a,b,y,y1,x: real;

function f(x:real):real; begin f:=ln(x)-x+1.8; end;

begin writeln('a,b='); read(a,b);

y:=f(a);

while abs(b-a)=e do begin x:=(b+a)/2; y1:=f(x);

if y*y10 then begin a:=x; y:=y1; end else b:=x;

end;

writeln('x=',x:7:5);

end.

Программа решения нелинейного уравнения методом хорд.

program hord;

const e=0.001;

var a,b,d,x: real;

function f(x:real):real; begin f:=-8*ln(x)+5*x-8; end;

begin writeln('a,b='); read(a,b);

repeat x:=(a*f(b)-b*f(a))/(f(b)-f(a));

if f(x)*f(a)0 then begin d:=abs(b-x); b:=x; end else begin d:=abs(a-x); a:=x end;

until de;

write('x=',x:7:5);

end.

Программа решения нелинейного уравнения методом касательных.

program hord;

const e=0.001;

var a,b,d,x,x0,x1: real;

function f(x:real):real;

begin f:=(x-3)*cos(x)-1; end;

function fdif(x:real):real;

begin fdif:=cos(x)-(x-3)*sin(x); end;

function f2dif(x:real):real;

begin f2dif:=-2*sin(x)-(x-3)*cos(x); end;

begin writeln('a,b='); read(a,b);

if f2dif(a)*f(a)0 then x0:=a else x0:=b;

repeat d:=f(x0)/fdif(x0); x1:=x0-d; x0:=x1;

until abs(d)e;

writeln('x= ',x:7:5);

end.

Программа решения нелинейного уравнения методом итераций.

program iter;

const e=0.001;

var a,y,x: real; j:integer;

function f(x:real):real;

begin f:=2+ln(x); end;

begin writeln(' a = '); readln(a); x:=a; j:=0; y:=f(x);

while abs(y-x)=e do begin x:=y; j:=j+1; y:=f(x);

end;

writeln(' Results x = ',x:8:4); writeln(' Number of iteration j = ',j);

end.

Программа решения нелинейного уравнения методом сканирования и уточнения значения корня методом итераций.

program iterscan;

const e=0.01; e1=0.001;

var x,n,h,a,b,y,y1:real;

function f(x:real):real; begin f:=x-sqrt(9+x)+x*x-4 end;

function f1(x:real):real; begin f1:=x-sqrt(9+x)+x*x-4+x end;

procedure iter(x0:real;var yy:real);

var xx:real;

begin xx:=x0; yy:=f(xx);

while abs(yy-xx)=e1 do begin xx:=yy; yy:=f(xx); end;

end;

begin writeln('a,b,n='); read(a,b,n); h:=(b-a)/n;

while abs(b-a)=e do begin y:=f1(a); y1:=f1(a+h);

if y*y10 then begin writeln('приближенное значение =',a:7:5);

iter(a,x);

end;

a:=a+h;

end; writeln ('уточненное значение=',x:7:5);

end.

Программа численного дифференцирования функции.

program difer (input,output);

{$F+} type tn=function(x:real) :real;

mas=array [1..3] of fn;

var i:integer;

x,h,dy:real;

a:mas;

function f1 (x:real):real;

begin f1:=x; end;

function f2 (x:real):real; begin f2:=x*x; end;

function f3 (x:real):real; begin f3:=sin(x); end;

procedure dif(f:fn; x:real; var dy:real);

begin dy:=(f(x+h)-f(x))/h;

end;

begin h:=0.5;

a[1]:=f1; a[2]:=f2; a[3]:=f3;

x:=-5;

while x5 do begin writeln;

writeln(' ',x:8:4);

for i:=1 to 3 do begin dif(a[i],x,dy);

writeln(' ',a[i](x):8:4, ' ',dy:8:4);

end;

writeln;

x:=x+h;

end;

end.

Программа вычисления суммы элементов матриц a и b и поиска максимального элемента массива x.

program massiv1;

const n=4; n1=10;

type mas=array[1..n,1..n] of real; mas1=array[1..n1] of real;

var a,b,с:mas; x:mas1; i,j,k:integer; m,s,max,s1,s2:real;

procedure sum(c:mas; n:integer; var s:real);

begin s:=0;

for i:=1 to n do for j:=1 to n do s:=s+c[i,j];

end;

begin for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=random(13);

write(a[i,j]:7:5, ' ');

b[i,j]:=random(34);

end;

writeln;

end;

for i:=1 to n do begin for j:=1 to n do write(b[i,j]:7:5, ' '); writeln;

end;

for i:=1 to n1 do read(x[i]);

max:=x[1]; k:=1;

for i:=2 to n1 do if x[i]max then begin max:=x[i]; k:=i;

end;

writeln('max элемент x[n1]=',max:8:4); writeln('номер=',k);

sum(a,n,s1);

sum(b,n,s2) writeln('сумма a=', s1:7:5); writeln('сумма b=', s2:7:5);

end.

Программа сортировки элементов одномерного и двумерного массивов.

–  –  –

Решение системы линейных уравнений методом Гаусса.

program gays;

const n=3;

type mas=array[1..n,1..n] of real;

mas1=array[1..n] of real;

var a:mas; x,b:mas1; i,j,k:integer;

m,s:real;

begin writeln('a[i,i]');

for i:=1 to n do begin for j:=1 to n do read(a[i,j]);

end;

writeln('b[i]');

for i:=1 to n do read(b[i]);

for k:=1 to n-1 do begin for i:=k+1 to n do begin m:=a[i,k]/a[k,k];

a[i,k]:=0;

for j:=k+1 to n do a[i,j]:=a[i,j]-m*a[k,j];

b[i]:=b[i]-m*b[k];

end;

end;

x[n]:=b[n]/a[n,n];

for i:=n-1 downto 1 do begin s:=0;

for j:=i+1 to n do s:=s+a[i,j]*x[j];

x[i]:=(b[i]-s)/a[i,j];

for i:=1 to n do writeln('x(',i,')= ',x[i]:5:3,);

end.

Решение системы линейных уравнений методом ГауссаЗейделя.

program GAYSseidel(inpyt,outpyt);

const n=3; eps=0.0001;

type p=array[1..n,1..n] of real;

q=array[1..n] of real;

var i,j,k,l,m:integer; max,s,x:real; a:p;b:q;x0:q;

procedure print1(n:integer; var z:p);

var i,j:integer;

begin for i:=1 to n do begin for j:=1 to n do write(z[i,j]:12:8); writeln;

end end;

procedure print2(n:integer; var z1:q);

var i,j:integer;

begin for i:=1 to n do write(z1[i]:12:8);

end;

begin writeln('input A');

for i:=1 to n do for j:=1 to n do read (a[i,j]); writeln('input b');

for i:=1 to n do read(b[i]);

print1(n,a);print2(n,b); writeln('input X0');

for i:=1 to n do read(x0[i]);

repeat max:=0.0;

for i:=1 to n do begin s:=0.0;

for j:=1 to n do s:=s+a[i,j]*x0[j];

s:=s-a[i,i]*x0[i]; x:=(b[i]-s)/a[i,i];

if abs(x0[i]-x)max then max:=abs(x0[i]-x);

x0[i]:=x end;

until maxeps;

for i:=1 to n do writeln(x0[i]:10:4);

end.

Программа вычисления интеграла методом левых прямоугольников.

program integral1;

e:=0.001;

var x,a,b,s,h:real; n,i:integer;

function f(x:real):real; begin f:=-sqr(x)+2; end;

begin writeln('a=,b=,n='); readln(a,b,n);

s:=0; x:=a; h:=(b-a)/n;

for i:=1 to n do begin s:=s+f(x)*h; x:=x+h;

end;

writeln('int=',s:8:4);

end.

Программа вычисления интеграла методом трапеций при помощи процедуры с заданной точностью.

program integral2;

var x,a,b,st,h,e,st1,st2:real; n,i:integer;

function f(x:real):real; begin f:=-sqr(x)+2; end;

procedure int(n:integer; var st:real);

begin st:=0; x:=a; h:=(b-a)/n;

for i:=1 to n do begin st:=st+(f(x)+f(x+h))/2*h; x:=x+h;

end;

end;

begin writeln('a=,b=,e=,n='); readln(a,b,e,n);

repeat int(n,st1); n:=n*2; int(n,st2);

until abs(st1-st2)e;

writeln('int=',st2:8:4);

end.

Программа вычисления интеграла методом Симпсона.

program intsim;

uses crt;

{$F+};

e:=0.001;

var x,a,b,s1,s2,y:real;

n,I,l,c:integer;

type UIF=function(x:real):real;

procedure sim(n:integer; f:UIF; var s:real);

var h:real; k,i:integer;

begin s:=0; k:=1; h:=(b-a)/n; n:=n-1;

for i:=1 to n do begin s:=s+(3+k)*f(a+i*h); k:=-k;

end;

s:=(s+f(a)+f(b))*(h/3);

end;

function f(x:real):real;

begin f:=-sqr(x)+2;

end;

begin clrscr;

writeln('a=,b='); readln(a,b);

n:=2;

sim(n,f,s1);

repeat writeln(' n=',n, ' int=',s1:8:4);

s2:=s1;

n:=n*2;

sim(n,f,s1);

until abs(s1-s2)=e;

writeln(' n=',n, ' int=',s1:8:4);

end.

Программы вычисления суммы ряда в виде процедуры и функции.

program roy1;

var n,s:integer;

procedure summa(n:integer; var sm:integer);

var i:integer;

begin sm:=0; for i:=1 to n do sm:=sm+i; end;

begin writeln(' n = '); readln(n);

summa(n,s); writeln(' s = ',s);

end.

program roy2;

var n,s:integer; y:real;

function sm(n:integer):integer;

var i,s:integer;

begin s:=0;

for i:=1 to n do s:=s+i;

sm:=s;

end;

begin writeln(' n = '); readln(n);

y:=sm(n)/sm(n*2); writeln(' sum = ',sm(n),' y = ',y:12:5;);

end.

Программа вычисления значения синуса.

program sinus;

const e=0.0001;

var p,i,k:integer; s,s1,x:real;

begin s:=0; p:=1; i:=1; k:=1;

writeln(' x = '); readln(x);

repeat s1:=exp(i*ln(x))/p; s:=s+s1*k;

i:=i+2; p:=p*i*(i-1); k:=-k;

until abs(s1)e;

writeln(' sin(x) = ',s);

end.

Программа локализации области экстремума методом сканирования и уточнения значения функции в точке экстремума методом золотого сечения.

program extremum;

const dx=0.5; a0=-5; b0=5;

var x,xt:real;

function f(x:real):real;

begin f:=-((x+5)*(x+3)) end;

procedure zol(a,b:real; var x:real);

const e=0.0001;

var x1,x2:real;

begin x:=(3-sqrt(5))/2;

x1:=a+x*(b-a);

x2:=b-x*(b-a);

repeat if f(x1)f(x2) then begin a:=x1; x1:=x2; x2:=b-(x1-a); x:=a;

end else begin b:=x2; x2:=x1; x1:=a+(b-x2); x:=b;

end;

until abs(b-a)=e;

end;

begin x:=a0;

repeat x:=x+dx if (f(x-dx)f(x))and(f(x)f(x+dx)) or (f(x-dx)f(x))and(f(x)f(x+dx)) then do begin zol(x-dx,x+dx,xt);

writeln('x=',x:6:3, ' xt=',xt:6:3,' f(xt)=',f(xt):6:3);

end until xb;

end.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах. –М.: Наука, 1972. – 367с.

2. Вирт Н. Алгоритмы и структуры данных. –СПб.: Невский диалект, 2001. –352с.

3. Турчак Л.И. Основы численных методов. –М.: Наука, 1987.

–320с.

4. Бутусов О.Б., Володин В.М. Информатика. Основные понятия и методы: Учебное пособие. – М.: МГАХМ, 1996. –122с.

5. Пономарев В.А., Сучков В.П. Вычислительная математика и прикладное программирование. –М.: МИХМ, 1984. –32с.

6. Реклейтис Г., Рейвиндран А., Рэгсдел К. Оптимизация в технике: В 2-х кн. Кн.1: Пер. с англ. –М.: Мир,1986. –350с.

7. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся втузов. – 13-е изд. исправленное. – М.: Наука, 1986. –544с.

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ

НЕЛИНЕЙНЫХ УРАВНЕНИЙ

1.1. Локализация корней

1.2. Модифицированный метод сканирования

1.3. Метод половинного деления

1.4. Метод хорд

1.5. Метод касательных

1.6. Аппроксимация первых и вторых производных через конечные разности

1.7. Метод простых итераций

1.8. Примеры заданий для самостоятельной работы..................26 ГЛАВА 2. ОБРАБОТКА МАССИВОВ

2.1. Типовые алгоритмы обработки одномерных массивов.......29

2.2. Примеры заданий для самостоятельной работы..................32

ГЛАВА 3. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ

АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

3.1. Метод Гаусса

3.2. Метод Гаусса– Зейделя

3.3. Примеры заданий для самостоятельной работы..................48

ГЛАВА 4. ЧИСЛЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ

ОПРЕДЕЛЕННОГО ИНТЕГРАЛА

4.1. Методы прямоугольников

4.2. Метод трапеций

4.3. Метод Симпсона

4.4. Вычисление интеграла с заданной точностью

4.5. Вычисление сумм числовых рядов

4.6. Примеры заданий для самостоятельной работы..................60 ГЛАВА 5. ЗАДАЧИ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ..........63

5.1. Метод сканирования

5.2. Метод золотого сечения

5.3. Метод Фибоначчи

5.4. Примеры заданий для самостоятельной работы..................73 ПРИЛОЖЕНИЯ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК



Похожие работы:

«Геоэкология ЧЕРНЫЕ ЗЕМЛИ КАЛМЫКИИ: КОМПЛЕКСНЫЕ ИССЛЕДОВАНИЯ И РАЗРАБОТКА ГИС Ташнинова Людмила Николаевна, кандидат биологических наук Институт аридных зон Южного научного центра РАН 358000, Российская Федерация, Республика Калмыкия, г. Элиста, ул. Илишкина, 8. E-mail: annatashninova@mail.ru Був...»

«СЕЛЬСКОХОЗЯЙСТВЕННАЯ БИОЛОГИЯ, 2009, 3 УДК: 634.11:631.52:631.541 СОЗДАНИЕ ИНТЕНСИВНЫХ САДОВ ЯБЛОНИ С ИСПОЛЬЗОВАНИЕМ КАРЛИКОВЫХ ВСТАВОЧНЫХ ПОДВОЕВ И ИММУННЫХ К ПАРШЕ СОРТОВ Г.А. ТУТКИН, Е.Н. СЕДОВ, А.А. МУРАВЬЁВ Изучали пригодность двух карлико...»

«Аннотация Рабочая программа по биологии для 8 класса построена на основе Федерального Государственного образовательного стандарта, учебного плана, примерной программы основного общего образования по биологии. Учебник 8 класса "Человек", Д.В. Колесов, Р.Д. Маш, И.Н. Беляев, М.: Дрофа, 2...»

«Березовиков Н.Н., Губин Б.М., Гуль И.Р., Ерохов С.Н., Карпов Ф.Ф., Коваленко А.В. Птицы пустыни Таукумы (юго-восточный Казахстан). Киев-Львов, 1999. – 117 стр. оригинал-макет; после печати – 117 стр.; данн...»

«Труды Никитского ботанического сада. 2011. Том 133 209 ИТОГИ ИНТРОДУКЦИИ И СЕЛЕКЦИИ ARTEMISIA BALCHANORUM KRASCH. В СТЕПНОЙ ЗОНЕ ЮГА УКРАИНЫ Л.В.СВИДЕНКО, кандидат биологических наук; Никитский ботанический сад – Национальный научный центр Введение При интродукции растений вскрывается потенциальная экологическая пласти...»

«Научный журнал КубГАУ, №96(02), 2014 года 1 УДК 635.621:[581.132.1+581.175.11 UDC 635.621:[581.132.1+581.175.11 BIOCHEMICAL ASPECTS OF THE БИОХИМИЧЕСКИЕ АСПЕКТЫ PRESERVATION OF VITAMIN VEGETABLE КОНСЕРВИРОВАНИЯ ВИТАМИННОГО RAW MATERIALS WITH MINERAL AND РАСТИТЕЛЬНОГО СЫРЬЯ BIOLOGICAL PRESERVATIVES МИНЕРАЛЬНЫМИ...»

«В.И. Коробко ЭКОЛОГИЧЕСКИЙ МЕНЕДЖМЕНТ Учебное пособие для бакалавров и магистров Москва – 2015 УДК 005(075.8) ББК 65.291.21 я73-1 К 68 Автор: Коробко Владимир Иванович доктор физико-математических наук, заведующий кафедрой экономики и управления в НОУ ВПО...»

«Н.К. Чертко, А.А. Карпиченко БИОГЕОХИМИЧЕСКИЙ КРУГОВОРОТ И БАЛАНС ХИМИЧЕСКИХ ЭЛЕМЕНТОВ В СИСТЕМЕ СЕВООБОРОТА В АГРОЛАНДШАФТЕ M.K. Chartko, A.A. Karpichenka The biogeochemical cycles and balance of chemical elements in crop rotation system in agricultural landscape Белорусский государственный университет, г...»

«Ученые записки Таврического национального университета им. В. И. Вернадского Серия "Биология, химия". Том 24 (63). 2011. № 4. С. 83-94. УДК 581.45:582.573.11(477.75) АНАТОМО-МОРФОЛОГИЧЕСКИЕ ОСОБЕННОСТИ ВИДОВ РОДА HOSTA TRATT КА...»

«Межрегиональная олимпиада Казанского федерального университета по предмету "Биология" 2010-2011 учебный год 10 класс КРИТЕРИИ ОЦЕНОК Вопрос 1. Выберите из предложенных признаков те, которые указывают на принадлежность человека к типу хордовых, подтипу позвоночных (ст. А),...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ УЛЬЯНОВСКАЯ ГОСУДАРСТВЕННАЯ СЕЛЬСКОХОЗЯЙСТВЕННАЯ АКАДЕМИЯ ИМЕНИ П.А. СТОЛЫПИНА ИНЖЕНЕРНЫЙ ФАКУЛЬТЕТ КАФЕДРА "СЕЛЬСКОХОЗЯЙСТВЕННЫЕ МАШИНЫ" РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ "МЕХАНИЗАЦИЯ СЕЛЬСКОХОЗЯЙСТВЕННОГО ПРОИЗВОДСТВА"...»







 
2017 www.doc.knigi-x.ru - «Бесплатная электронная библиотека - различные документы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.