Метод половинного деленияРефераты >> Программирование и компьютеры >> Метод половинного деления
Задачи
1. Дано уравнение 2.2х-2х=0. Найти оба корня уравнения методом половинного деления и методом итераций.
Решение:
Интервал (а=0, b=4) на котором лежат корни находится из графика (рис.1.):
(метод половинного деления)
INPUT "Ведите погрешность"; e
a = 0: b = 2: k = 0: d = 0
start: z = 2.2 * a - 2 ^ a
div: x = (a + b) / 2
IF (b - a) / 2 <= e THEN GOTO yes
y = 2.2 * x - 2 ^ x: k = k + 1
IF z * y > 0 THEN a = x: z = y ELSE b = x
GOTO div
yes: PRINT "X="; x, "K="; k
IF d = 0 THEN a = b: b = 4: d = 1: GOTO start
Результаты вычислений:
Ведите погрешность? 0.001
X= .7802734 K= 10
X= 2.400841 K= 21
2. Составить алгоритм и программу на языке Turbo Basic, которая позволяет компьютеру угадать число, загаданное пользователем (от 1 до 64) не более, чем за 7 попыток.
3. Задана функция у(х) = x ×p × exp(-x) - x × 0.22.
а) Методом половинного деления опpеделить коpень уpавнения y(х) = 0 на интеpвале (0 , 10) с точностью до 0.001.
б) Методом половинного деления найти максимум функции на интервале (0 , 10) с точностью до 0.001 по аpгументу.
4. а) Для уравнения x3 – 3x + 3 = 0 определите два числа, образующие “вилку” для корня этого уравнения . сколько раз придется выполнить деление пополам для найденного вами отрезка, чтобы получить корень с точностью 0,01? А с точность 0,001?
б) Выполните задание а) для уравнения 2х=3х.
в) Выполните задание а) уравнения cos x=x.
Лабораторная работа
Компьютерным средством, с помощью которого мы будем решать задачу, служит электронная таблица. Подготовим ее заполнение.
A |
B |
C |
D |
Расстояние S |
3000 |
Точность |
0.001 |
Высота H |
1 |
C4-B4 | |
Начальная скорость |
200 |
B3^2 | |
Угол |
0 |
0 |
(B4+C4)/2 |
Отклонение от цели |
B2-B1*(D5-9.8*B1*(1+D5^2)/(2*D3)) |
tg(D4) |
В клетках B4 иС4 записаны значения угла (в радианах), составляющие «вилку»; в клетке D4 – значение угла, для которого будет вычисляться отклонение от цели. Кроме того, чтобы по нескольку раз не вычислялось одно и оже число (а на это уходит время), в клктке D5 записан тангенс очередного значения угла наклона пушки к горизонту, а в клетке D3 – квадрат начальной скорости (поскольку в электронной таблице все формулы записываются в «линейку», то и для показателя степени используется не верхний индекс, а специальный знак - ^). С той же целью – ускорение вычислений – мы в формуле оклонения заменили 1/cos2a на 1+tg2a. Заполнение остальных клеток понятно из таблицы. Значение g взято 9,8 м/с2, расстояние S=3 км, а высота Н=1 м. Точность вычисления равна 0,001.
Сначала проверим, правильно ли мы выбрали отрезок для корня. В таблице в клетках B4 и С4 записаны нули, поэтому отклонение подсчитывается для a=0. Как видите, на левом конце отрезка отклонение положительно.
Запишите теперь в клетках В4 и С4 число 0,75 (это – приближенное значение для p/4). Теперь отклонение оказалось отрицательным.
(1) Приступим к нахождению нужного угла a. Запишите в клетке В4 чило 0, и электронная таблица тут же вычислит значение отклонения в точке 0,75/2.
Это значение оказалось положительным. Следовательно, значением 0,75/2 надо заменить левый конец отрезка, записанный в клетке В4.
(2) Меняем 0 на значение клетки D4. Отклонение стало отрицательным.
Следовательно, надо поменять значение клетки С4 на значение клетки D4. Действуйте!
(3) Продолжайте поиск корня, пока не получится заданная точность (напоминаем, что индикатором точности служит клетка D2, в которой вычисляется длина текущего отрезка).
Другие варианты:
I.
A |
B |
C |
D |
Расстояние S |
4000 |
Точность |
0.001 |
Высота H |
1 |
C4-B4 | |
Начальная скорость |
220 |
B3^2 | |
Угол |
0 |
0 |
(B4+C4)/2 |
Отклонение от цели |
B2-B1*(D5-9.8*B1*(1+D5^2)/(2*D3)) |
tg(D4) |
II.
A |
B |
C |
D |
Расстояние S |
3000 |
Точность |
0.0001 |
Высота H |
2 |
C4-B4 | |
Начальная скорость |
220 |
B3^2 | |
Угол |
0 |
0 |
(B4+C4)/2 |
Отклонение от цели |
B2-B1*(D5-9.8*B1*(1+D5^2)/(2*D3)) |
tg(D4) |