laba_po_infe_3 моя
.docНижегородский государственный архитектурно-строительный университет
Кафедра информационных систем и технологий
ОТЧЕТ
по лабораторной работе №3
Табулирование функции. Применение табулирования к решению уравнения f(x)=0.
Преподаватель: Храмов Н.И.
Студентка группы 1101: Бояринова И.И.
Вариант 3
2012 г.
Цель работы: составление программы табулирования функции f(x)=y и ее использование для нахождения корня уравнения f(x)=0 с заданной точностью.
Задание (3 уровень)
-
Графически получить приближённое решение уравнения f(x) = 0.
-
Составить блок-схему и программу, реализующие алгоритм вычисления корня уравнения f(x)=0 на интервале [a, b] с заданной точностью е. Для нахождения корня использовать алгоритм табулирования функции f(x), последовательно уменьшая в 10 раз интервал поиска [ai, bi] где f ai *f bi < 0 пока не выполнится условие: bi — ai < =е.
Замечания:
а) на каждом отрезке ai, bi проводить не более 10 вычислений значений функции f(x);
б) приближенным решением уравнения считать середину последнего отрезка x1 = (a i + bi)/2.
3. Ввести программу, выполнить её и получить результат. На экран вывести границы каждого нового интервала поиска корня, корень уравнения, заданную точность и значение функции в корне.
Порядок выполнения работы третьего уровня
1. Решение уравнения графическим методом.
1.1. Проверим графически, что на заданном отрезке [a, b] есть корень уравнения f(x) = 0, т.е. (x-2)^2=0,5e^x
2. Блок-схема:
H=(B-A)/10
y1=2^(-x)-x^(1/2)
y2=2^(-(x-H))-(x-H)^(1/2)
A=X
B=X+H
X=(A+B)/2
Y= (X -
1) ^ 2 - 0.5 * Math.Exp(X)
3. Выполнить программу.
Dim A, B, H, Y, X, Y1, Y2 As Single
Console.WriteLine("введите начальное значение отрезка")
A = Val(Console.ReadLine())
Console.WriteLine("введите конечное значение отрезка")
B = Val(Console.ReadLine())
1: H = (B - A) / 10
For X = A To B - H Step H
Y1 = (X - 1) ^ 2 - 0.5 * Math.Exp(X)
Y2 = (X + H - 1) ^ 2 - 0.5 * Math.Exp(X + H)
If Y1 * Y2 <= 0 Then
A = X
B = X + H
End If
Next X
Console.WriteLine("A={0} B={1} h={2}", A, B, H)
If B - A > 0.005 Then
GoTo 1
Else
X = (A + B) / 2
Y = (X - 1) ^ 2 - 0.5 * Math.Exp(X)
Console.WriteLine("X0={0} Y0={1} с точностью {2}", X, Y, 0.005)
End If
Console.ReadLine()
Ответ:
введите начальное значение отрезка
0
введите конечное значение отрезка
1
A=0,2 B=0,3 h=0,1
A=0,21 B=0,22 h=0,01
A=0,213 B=0,214 h=0,001000001
X0=0,2135 Y0=-0,0004195493 с точностью 0,005
Вывод: Я составила программу табулирования функции f(x)=y и ее использование для нахождения корня уравнения f(x)=0 с заданной точностью.