Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cur_inf_v1.doc
Скачиваний:
15
Добавлен:
15.03.2016
Размер:
189.44 Кб
Скачать

Алгоритм выполнения задания:

1. Задали функцию f(x), отрезок [а, b], вычислили значение f(a)значение функции f в точке а(Рисунок 1).

Рисунок 1. Функция, отрезок, значение f(a).

2. Построили график функции f(x), на отрезке [а, b](Рисунок 2):

Рисунок 2.График функции f(x).

3. Решили уравнение f(x)=0 (Рисунок 3):

Рисунок 3. Решение уравнения f(x)=0.

4. Результат с допустимой погрешностью совпадает с решением в табличном процессоре MS Exel

5. Сделали выводы об особенностях выполненной работы.

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

В среде разработки Visual Basic for Applications MS Word создали программу для решения уравнения f(x)=0 на отрезке [а, b].

Алгоритм выполнения задания:

1. Разработали алгоритм:

А) разделим отрезок [а, b] на две равные половины - [а, c] и [c, b];

Б) определили, на какой половине отрезка [а, b] находится корень: если корень находится между точками a и c, то b = c, иначе a = c;

С) проверили

2.Создали интерфейс программы(Рисунок 1):

Рисунок 1. Создание интерфейса программы.

3. Исходный код:

Function f(x)

f = Sin(Log(x)) - Cos(Log(x)) + 2 * Log(x)

End Function

Private Sub btn_K_Click()

a = txt_a

b = txt_b

txt_faK = f(a)

Do

c = (b + a) / 2

If f(a) * f(c) > 0 Then a = c Else b = c

Loop While b - a > 0.001

txt_xK = Round((b + a) / 2, 7)

End Sub

Private Sub txt_a_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

Private Sub txt_b_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

Private Sub txt_fa_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]