- •Глава 2
- •2.1. Введение
- •Относительные и абсолютные ошибки
- •2.3. Ошибки, содержащиеся в исходной информации
- •2.4. Ошибки ограничения
- •2.5. Ошибки округления
- •2.6. Распространение ошибок
- •2 .7. Графы вычислительных процессов
- •Пример 1
- •2.9. Памятка программисту
- •Упражнения
- •Численное решение уравнений
- •5.1. Введение
- •5.2. Метод последовательных приближений
- •5.3.Усовершенствованный метод последовательных приближений
- •5.4. Метод ньютона — рафсона
- •5.5. Случай почти равных корней
- •5.6. Сравнение методов и их ошибок округления
- •5.7. Корни многочленов
- •5.8. Влияние неточности коэффициентов многочлена
- •5.9. Системы уравнений
- •5.10. Комплексные корни
- •5.11. Нахождение исходного приближения
- •Упражнения
- •Глава 8
- •8.1. Введение
- •8.3. Ошибки округления
- •8.5. Влияние погрешностей коэффициентов. Достижимая точность решения
- •8.6. Итерационные методы решения систем линейных уравнений
- •8.7. Сравнение методов
- •8.8. Практический пример 10: проведение кривой методом наименьших квадратов
- •Лекция №1 Численное интегрирование
- •Лекция №2
- •Правило Симпсона.
- •Метод Гаусса
- •Методы прогноза и коррекции
- •Анализ ошибок при использовании метода прогноза и коррекции
Упражнения
«Вычислительные» упражнения, приведенные ниже (а также в последующих главах), составлены так, что в случае необходимости они могут выполняться вручную или на клавишной вычислительной машине. Некоторые из них, однако, вполне могут быть решены с помощью ЭЦВМ, причем рекомендуется использовать приемы из упражнений 22—27. Решение этих упражнений с помощью ЭЦВМ, по-видимому, не приведет к существенной экономии времени, но может дать ценные практические навыки программирования итерационных методов.
*1. Вычислите отрицательный квадратный корень из 0.5, написав уравнение F (х)=х2 — 0.5 и решая уравнение х=х2 + х - 0.5 методом последовательных приближений. В качестве х0 возьмите — 0.6. Можно ли тем же методом найти положительный корень?
2. Найдите отрицательный квадратный корень из 0.25 тем же способом, что и в предыдущем упражнении. В качестве Х0 снова возьмите —0.6. Почему на этот раз метод сходится быстрее?
3. Используйте метод Ньютона — Рафсона для того, чтобы найти квадратный корень из 4 с точностью до четвертого знака. В качестве Х0 возьмите 1.5. Повторите вычисления, взяв в качестве Х0: 2.5, —1.5, 10.0.
*4. Выведите на основе метода Ньютона — Рафсона итерационную формулу для вычисления кубического корня из положительного числа с.
5. Выведите на основе метода Ньютона — Рафсона итерационную формулу для вычисления arcsin А, если задано А.
6. Используя результат упражнения 5, найдите arcsin 0.5 с точностью до третьего знака.
*7. Вычислите с точностью до третьего знака корень уравнения 0.1х2—x lnx = 0, лежащий между 1 и 2.
8. Найдите с точностью до третьего знака корень уравнения
ch x + cosx — 3 = 0.
*9. Используйте метод Ньютона—Рафсона для того, чтобы найти с точностью до третьего знака все корни уравнения
х3 — 1.473x2 — 5.738х + 6.763 = 0.
10. Используйте метод Ньютона — Рафсона для того, чтобы найти с точностью до третьего знака корни уравнения х2 — х — 6 = 0. В качестве Х0 возьмите 0, затем повторите для Х0=4. Итерационную формулу можно существенно упростить алгебраическими преобразованиями.
11. Уравнение 4х3—12.3x2—х + 16.2 = 0 имеет два корня в интервале между 1 и 2. Найдите их с точностью до четвертого знака.
*12. Найдите с точностью до третьего знака корень уравнения х3— 0.39x2—10.5x + 11.0 = 0, лежащий между 2 и 3. Если коэффициенты уравнения известны с точностью 2%, какова верхняя граница возможной ошибки при вычислении корня?
13. То же, что и в упражнении 12, но коэффициенты содержат погрешность 4%.
14. Покажите, что если каждый коэффициент полиномиального уравнения имеет погрешность Р%, то погрешность при вычислении корня будет линейной функцией от Р, если оправдываются допущения о малости этой погрешности (см. разд. 5.8).
15. Уравнение 2.0х2—5.0х + 2.0 = 0 имеет корни х1=0.5 и Х2=2.0. Если коэффициенты известны с погрешностью 20%, то верхняя граница возможной ошибки при вычислении x2 равна 1.33. Однако больший корень уравнения
1.6 х2— 6.0х+ 1.6 = 0, в котором коэффициенты изменились на 20% по сравнению с исходным, равен 3.47, т. е. ошибка составляет 1.47. Почему фактическая ошибка оказалась выше верхнего предела? С другой стороны, если взять уравнение 1.6х2—4.0х+ 1.6=0, то его больший корень равен 1.79, т. е. ошибка составляет всего 0.21; почему теперь ошибка гораздо меньше, чем в первом случае и гораздо меньше верхнего предела?
16. Рассмотрим уравнение
x4 - 26х3 + 131х2 —226х + 120 = 0.
Корни этого уравнения равны 1, 2, 3 и 20. Предположим, что в постоянном члене имеется малая погрешность, а все остальные коэффициенты заданы точно. Покажите, что эта погрешность оказывает вдвое большее влияние на верхнюю границу ошибки для корня, близкого к 3, нежели для корня, близкого к 1, и почти не влияет на корень, близкий к 20. Теперь предположите, что имеется малая погрешность в коэффициенте при х3, а все остальные коэффициенты заданы точно. Покажите, что верхняя граница ошибки для корня, близкого к 1, гораздо меньше этой погрешности и превосходит ее для корня, близкого к 3.
17. Примените метод Ньютона — Рафсона для решения уравнения х3—2х2—3х + 10 = 0, причем в качестве x0 возьмите 1.9 . Можете ли вы объяснить странное поведение значений корня?
18. Используйте метод Ньютона — Рафсона для решения уравнения х3 — 2х2 — Зх + 10 = 0, производя все вычисления с комплексными числами. В качестве Х0 возьмите 3 + i.
19. Уравнение
x5 + 8x4 + l7x3 — 8x2 — 14х + 20 = 0
имеет корни —1 и +2. Однако если использовать метод Ньютона — Рафсона, взяв в качестве Х0: —0.3, то процесс сойдется к корню, равному +5. Объясните, почему так получается.
20. Попытайтесь использовать метод Ньютона — Рафсона для решения уравнения
х4 — 7х3 + 12х2 + 4х — 16 = 0.
Что при этом получается?
*21. Напишите на ФОРТРАНе программу для вычисления квадратного корня из переменной А, которой предварительно присвоено некоторое значение. Назовите результат вычислений SQRT A.
22. Предположите, что задано уравнение вида
F(x) = a6x6 + a5x5+a4x4+aзx3+...+a0 = 0.
Так как любой из коэффициентов может оказаться равным нулю, то это уравнение может быть шестого порядка или ниже. Предположите, кроме того, что имеется перфокарта с числами, пробитыми в следующем формате:
Колонки: 1—10
1 - 10 |
x0 |
11- 20 |
A0 |
21 – 30 |
A1 |
31 – 40 |
A2 |
41 – 50 |
A3 |
51 – 60 |
A4 |
61 – 70 |
A5 |
71 – 80 |
A6 |
Все числа пробиты в формате F10.0. Напишите программу для считывания данных с этой карты, вычисления F (Х0) и печати коэффициентов, Х0 и F(Х0), используя для этого спецификацию F15.6.
23. В дополнение к перфокарте, описанной в упражнении 22, имеется вторая карта, которая содержит в колонках 1—10 значение переменной EPS в формате F10.0. Напишите программу для вычисления корня многочлена из упражнения 22, применяя метод Ньютона — Рафсона, полагая x0 в качестве исходного приближения и продолжая итерационный процесс до тех пор, пока два приближения не будут отличаться по абсолютной величине меньше, чем на EPS. Когда корень найден, напечатайте его и всю исходную информацию. Рекомендуется вначале ввести оператор PRINT в итерационный цикл, чтобы можно было следить за сходимостью.
24. В дополнение к информации, содержащейся в упражнениях 22 и 23, вторая перфокарта содержит также значение переменной Р, которая представляет собой максимальную ошибку коэффициентов в процентах. После нахождения корня вычислите верхнюю границу для его возможной ошибки и напечатайте это число наряду с прочей информацией.
25. Предположим, что имеются две перфокарты с входной информацией. Первая карта та же самая, что в упражнении 22, но значение Х0 не используется. (При том расположении чисел, которое описано в упражнении 22, необходимо будет прочесть значение x0 , но не использовать его.) Вторая перфокарта содержит следующую информацию:
Колонки:
1—10 XF'
11—20 XL
21—30 DELTA
Напишите программу, где читаются эти перфокарты, и затем производятся следующие вычисления:
1. Присвоить переменной Х значение XF.
2. Вычислить F(X) и присвоить это значение переменной BEFORE.
3. Вычислить F (X + DELTA) и присвоить это значение переменной THIS.
4. Если BEFORE и THIS имеют разный знак, то напечатайте Х и Х+ DELTA. (Простейший способ определить, одинаковы или различны знаки двух чисел, заключается в анализе знака их произведения.)
5. Увеличьте значение переменной Х на величину DELTA.
6. Если Х стало больше XL, прекратите вычисления; в противном случае переходите к следующей операции.
7. Присвоить переменной BEFORE значение THIS.
8. Перейти к операции 3.
26. Используя методику предыдущих упражнений, составьте программу, с помощью которой можно было бы прочесть коэффициенты XF, XL, DELTA и EPS (выберите сами подходящие форматы для входных перфокарт), найти места перемены знака функции и вычислить корни при каждой перемене знака. (Это будет очень ценное упражнение и очень полезная программа, но необходимо помнить о тех неожиданностях, с которыми пришлось столкнуться в упражнениях 17, 19 и 20. Полная программа для нахождения корней многочлена 6-го порядка будет значительно сложнее.)
27. Усовершенствуйте программу упражнения 26, введя в нее счетчик; он должен прекращать вычисления, если процесс не сходится после N итераций. N является целым числом, которое вводится с второй перфокарты. (Для N целесообразно принять значение порядка 15).
28. Пусть задано уравнение F (х) = 0 и два значения X, равные XL и ХН, причем XL < ХН и F (XL) и F (ХН) имеют разные знаки; можно утверждать, что уравнение F (х) = 0 имеет по крайней мере один корень между XL и ХН. Предположим, что в этом интервале имеется точно один корень и рассмотрим следующую вычислительную процедуру:
1
.
Вычислить
2. Если F(X L) и
имеют разные знаки, присвоить переменной ХН значение
о ставить XL неизменным и перейти к операции 3; если же F (X L) и
имеют одинаковые знаки, присвоить переменной XL значение (( XL+XH)/2); оставить ХН неизменными перейти к операции 3.
3. Если (ХН — XL) меньше, чем некоторый заданный допуск EPS, то прекратить вычисления, так как значение XL или ХН равно корню уравнения с точностью EPS. Если (ХН — XL) больше EPS, перейти к операции 1. Описанная процедура называется методом деления пополам. Он не столь элегантен, как те способы, которые рассматривались выше, и вообще не так быстро сходится, но его иногда применяют из-за простоты. Истолкуйте геометрически процесс вычислений, начертите блок-схему и напишите программу для нахождения корня уравнения
_ 0.486х3 — 5.792х2 + 0.486х + 4.792 = 0,
лежащего между 2 и 3. Используйте допуск 10-3.
29. Пусть в методе последовательных приближений т* является минимальным значением | f‘(х) | для всех х. Покажите, что если т* > 1, то процесс расходится.
30. Предположим, что имеются два значения x0 и x1, такие, что F (x0) < 0 и F (x1) > 0. Пусть х2 — точка пересечения оси х с прямой, соединяющей точки (x0, F (xо)) и (x1, F (x1)). Продемонстрируйте геометрически, что x2 является лучшим приближением к корню уравнения F (х) = 0, чем x0 и x1. Разработайте вычислительный алгоритм для нахождения корня уравнения F(x)=0, подобный алгоритму из упражнения 28.
31. Предположите, что функция F(x) разложена в ряд Тейлора в окрестности точки хn и ограничьте разложение двумя членами ряда
F(x) = F(Xn) + (x-xn) F'(Xn).
Покажите, что при этих условиях получается приближенная фомула
Ч
то
означает эта формула?
32. Ограничиваясь членами не выше первого порядка в разложении функций двух переменных в ряд Тейлора
покажите, что последующее приближение к корню уравнений
F (х, у) = О,
(х, у)=0
задается формулами
г
де
*
33.
Пусть F(x,y)=x2
+ y2 -
4,
G(x,y)=xy - l.
Примените метод, описанный в разд. 5.9, взяв Хo=2, уо=0. Имеет ли система другие решения?
34. Пусть
F(x,y) = x3 — х— 2х2— х + 2— у,
G(x, у) = х — у.
Примените метод, описанный в разд. 5.9, принимая xo = yо = 0. Объясните сходство между двумя итерационными формулами.
35. Обобщение метода последовательных приближений на случай системы двух уравнений
х = f (х, y),
y = g (х, y)
дается формулами
Xn+1 = f (xn,yn),
Yn+1 = g (xn,yn).
а. Покажите, что достаточные условия сходимости этого метода записываются в виде
и
(Указание: исследуйте верхнюю границу величины \х—xn|+\y-yп\.)
б. Являются ли условия, изложенные в пункте а, необходимыми для сходимости?
в. Рассмотрим линейные уравнения
a11x + a12y = b1 ,
a21x + a22y = b2 .
Если a11 0 и a22 0, то эту систему можно переписать в виде
К
ак.
аапишутся для данной системы достаточные
условия сходимости из пункта а? Какие
ограничения накладывают эти условия
на наклоны прямых, представленных
исходными уравнениями?
36. Рассмотрим кубическое уравнение
ро (х) = х + a2х2 + a1х + а0 = 0.
а. Если x1, х2 и x3—корни этого уравнения, то покажите, что
a2=-(x1+x2+x3),
a1=x1x2+x1x3+x2x3,
a0= - x1x2x3.
б. Покажите, что если x1, x2 и x3 вещественны и, кроме того, |x1| |x2| |x3|, то
x1 - a2
x2 -a1/a2,
x3 - a0/a1.
в. Докажите , что
p1(y) = - p0(-x)p0(x)=y3+(-a22+2a1)y2+(a21-2a0a2)y-a20 ,
где
y = x2.
г. Покажите, что корни уравнения p1(y) = 0 суть следующие
y1 = x21 ,
y2 = x22 ,
y3 = x23 .
д. Покажите, что корни
p2(z) = - p1(-y)p1(y)
имеют вид
z1 = x41 ,
z2 = x42 ,
z3 = 43 ,
где
z = y2 = x4 .
е. Что произойдет с корнями уравнения после многократного
повторения процесса, описанного в пунктах в и д? ж. Опишите, как бы вы нашли приближенные значения x1, x2 и x3 после того, как процесс, описанный в пунктах в и д, был проделан достаточное количество раз и корни раздвинулись. Этот процесс известен под названием алгоритма Греффе. Он обобщается на случай многочленов более высокого порядка и комплексных корней. Интересующимся читателям рекомендуем книгу Гильдебранда, § 10.11.
37. Следующая общеизвестная задача приводит к уравнению четвертого порядка.
Две лестницы, одна в 20 футов, другая в 30 футов длиной, поставлены поперек улицы, как показано на схеме, и опираются своими концами на противостоящие дома. Определить ширину улицы, если точка пересечения лестниц находится на высоте 8 футов над землей.
Покажите, что эта задача сводится к решению уравнения
У4—16у3 + 500y2 — 8000y + 32 000 = 0
и тогда
