Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Alexander Kirdyashev от 06.09.2017, 10:43

Название: Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое
Отправлено: Alexander Kirdyashev от 06.09.2017, 10:43
Необходима помощь в одном моменте с Solver в VBA.
Имеется цикл в программе, результатом которого является вызов Solver'а для поиска решений с условиями.
addr_c = opened.Sheets("Decl.coeff").Cells(4, b).Address
        addr_cc = opened.Sheets("Decl.coeff").Cells(3, b).Address
        SolverLoad (Decl.coeff!A10)
        SolverOk SetCell:=addr_c, MaxMinVal:=3, ValueOf:=0, ByChange:=addr_cc
        x1 = "1"
        x2 = "0"
        SolverAdd CellRef:=addr_cc, Relation:=3, FormulaText:=x2
        SolverAdd CellRef:=addr_cc, Relation:=1, FormulaText:=x1
        SolverSolve True
        SolverReset


Программа ищет ответ на уравнение вида: qt=qi/(1+b*t*Di)^(1/b), где Di является изменяемым числом и лежит между 0 и 1.

Проблема заключается в следующем. Программа при b=1 отлично находит Di в заданных пределах, а при b=0.7, к примеру, выдает отрицательно значение Di, т.е. не выполняет условия. Не могу разобраться в чем проблема, потому что, если сделать поиск решения вручную, то решение будет верным.
Название: Solver VBA не решает гиперболическое уравнение, но при этом решает гармоническое
Отправлено: KennethSaf от 05.02.2022, 20:36
.