Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.42
Демидова л. а., Пылькин а. Н. Программирование в среде Visual Basic for Applications стр.42

В следующей программе методом Ньютона решается уравнение jc2 = 2 ([2]). За начальное приближение к корню взято число 3, а корень вычисляется с точностью до 0,00001. Найденное значение корня с помощью метода ActiveCell выводится в активную ячейку.

Option Explicit

Function F(x As Double) As Double

F = x л 2 - 2 л Уравнение f(x)= x2-2=0

End Function

Function DF(x As Double) As Double

DF = 2 * x л Производная функции f(x)

End Function

Sub MN ( )

Const Eps = 0.00001 л Точность определения корня Dim xO, х As Double

x = 3

Do

xO = x

x = x - F(x)/DF(x)

Loop While Abs(x - xO) > Eps ActiveCeLl.Value = x End Sub

Примером использования цикла Do-Loop Until может служить следующая программа нахождения корня уравнения fix) - 0 методом деления отрезка пополам ([2]). В этой программе находится корень уравнения х2 = 2 с точностью до £ = 0,00001. За отрезок начальной локализации корня берется отрезок (0, 2).

Function F (х)

F = х л 2 - 2 л уравнение f(x)= х2-2=0 End Function

Sub ВМ ( )

Dim с, FC As Double

Dim a, b, Eps, BM As Double

10. Операторы цикла

а = 0: b = 2: Eps = 0.00001 If F(a) * F(b) >= 0 Then MsgBox "Функция не меняет знак" & _ "на концах отрезка локализации корня" Exit Sub End If Do

с = (a + b)/2 FC = F(c) * F(a)

If FC < 0 Then b = с Else a = с Loop Until b -a < Eps

BM = с

ActiveCell.Offset(rowOffset :=-1, columnOffset :=0) .Value = "Корень"

ActiveCell.Value = BM

ActiveCell.Offset(rowOffset;=-1, colurnnOffset :Л1) .Value = "Значение функции"

ActiveCell.Offset(rowOffset:=0, columnOffset :=1).Value = FC End Sub

В процедуре BM использовался метод Offset. Метод Offset возвращает диапазон, сдвинутый на указанное число строк и столбцов по отношению к данному диапазону.

Этот метод имеет следующий синтаксис:

Offset(rowOffset, columnOffset),

где rowOf fset - число строк, на которое будет сдвигаться диапазон; с о lumnO f f s e t - число столбцов, на которое будет сдвигаться диапазон.

Использование метода Offset позволяет в процедуре ВМ в активную ячейку вводить найденное приближенное значение корня, а в ячейку, находящуюся справа от активной, - соответствующее значение функции. В ячейки, расположенные над этими двумя, вводятся текстовые строки Корень и Значение функции.


⇐ Предыдущая Следующая ⇒
 
 
 
Powered by Exponenta