Лекция: Пример вычисления корня нелинейного уравнения с использованием объектной модели MS Excel.

метод GoalSeek() позволяет применить автоподбор значений для функции Excel программным способом. На графическом экране то же самое можно сделать при помощи меню Сервис -> Подбор параметра.

Подбирает значение параметра (неизвестной величины), являющееся решением уравнения (ур-я) с одной переменной. Предполагается, что правая часть явл-ся постоянной, не зависящей от парамета, кот. Входит только в лев.часть ур-я. Имеет два параметра: goal – значение правой части ур-я; changingcell содержит ссылку на ячейку с изменяющимся значением (приближение к искомому корню).

Пример. (С помощью метода «Подбор параметра» определить корень нелинейного уравнения.)

Private Sub Command1_Click()

Dim Eque As String, bool As String, Approx As Double

Dim ObjExcel As Object

'Создаем объект OLE Automation

Set ObjExcel = CreateObject(«Excel.Application»)

'Задаем свойства рабочей книги и листа

With ObjExcel

.WorkBooks.Add

.ActiveSheet.Name = «Решение нелинейных уравнений»

.Visible = False

.DisplayAlerts = False 'Запретить промежуточные диалоги

.MaxIterations = 10000 'Число итераций

.MaxChange = 0.00001 'Точность вычисления

End With

'Считываем уравнение из поля Text1 и помещаем его в ячейку A2

Eque = "=" & Text1

ObjExcel.Range(«A2»).Value = Eque

'Считываем начальное приближение к корню и помещаем его в A1

Approx = CDbl(Text2)

ObjExcel.Range(«A1»).Value = Approx

'Присваиваем имя «X» ячейке A1, иначе в уравнении необходимо

'использовать полную ссылку. Например, =0.5*A1^2-5*A1+8,

'вместо общепринятой формы: =0.5*X^2-5*X+8

ObjExcel.Range(«A1»).Name = «X»

'Объект GoalSeek вычисляет корень уравнения

'Он возвращает True, если решение найдено.

bool = ObjExcel.Range(«A2»).GoalSeek(Goal:=0, _

ChangingCell:=ObjExcel.Range(«X»))

' Вывод результата в текстовое поле

Text3 = ObjExcel.Range(«A1»).Value

ObjExcel.Quit 'Закрываем Excel без сохранения

Set ObjExcel = Nothing 'Удаление объекта

End Sub

Private Sub Form_Load()

Caption = «Пример на OLE Automation»

Command1.Caption = «Найти корень»

Text1 = ""

Text2 = ""

Text3 = ""

Text1.TabIndex = 0

End Sub


еще рефераты
Еще работы по информатике