Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

laba_po_infe_3 моя

.doc
Скачиваний:
58
Добавлен:
08.04.2015
Размер:
50.69 Кб
Скачать

Нижегородский государственный архитектурно-строительный университет

Кафедра информационных систем и технологий

ОТЧЕТ

по лабораторной работе №3

Табулирование функции. Применение табулирования к решению уравнения f(x)=0.

Преподаватель: Храмов Н.И.

Студентка группы 1101: Бояринова И.И.

Вариант 3

2012 г.

Цель работы: составление программы табулирования функции f(x)=y и ее использование для нахождения корня уравнения f(x)=0 с заданной точностью.

Задание (3 уровень)

  1. Графически получить приближённое решение уравнения f(x) = 0.

  2. Составить блок-схему и программу, реализующие алгоритм вычисления корня уравнения f(x)=0 на интервале [a, b] с заданной точностью е. Для нахождения корня использовать алгоритм табулирования функции f(x), последовательно уменьшая в 10 раз интервал поиска [ai, bi] где f ai *f bi < 0 пока не выполнится условие: biai < =е.

Замечания:

а) на каждом отрезке 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 с заданной точностью.

4