Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример вычисления корня нелинейного уравнения с использованием объектной модели 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






Дата публикования: 2014-12-28; Прочитано: 242 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...