Решите уравнения численно
численно решает уравнение S
= vpasolve(eqn
,var
,init_param
)eqn
для переменной var
использование начальной догадки или поисковой области значений init_param
.
численно решает систему уравнений Y
= vpasolve(eqns
,vars
)eqns
для переменных vars
. Этот синтаксис возвращает массив структур Y
который содержит решения. Поля в массиве структур соответствуют переменным, заданным vars
. Если вы не задаете vars
, vpasolve
решает для переменных по умолчанию, определяемых symvar
.
численно решает систему уравнений Y
= vpasolve(eqns
,vars
,init_param
)eqns
для переменных vars
использование начальной догадки или поисковой области значений init_param
.
[
численно решает систему уравнений y1,...,yN
] = vpasolve(eqns
,vars
,init_param
)eqns
для переменных vars
использование начальной догадки или поисковой области значений init_param
.
___ = vpasolve(___,
использует случайное начальное предположение для нахождения решений. Используйте этот вход, чтобы избежать повторного возврата того же решения для неполиномиальных уравнений. Если вы задаете начальные предположения для всех переменных, задайте 'Random'
,true)'Random'
на true
не имеет эффекта.
Если vpasolve
не удается найти решение, он возвращает пустой объект. Предоставьте начальное предположение, чтобы помочь решателю найти решение. Для получения примера смотрите Предоставить начальное предположение для поиска Решений.
Для полиномиальных уравнений vpasolve
возвращает все решения. Для неполиномиальных уравнений нет общего метода нахождения всех решений и vpasolve
возвращает только одно решение по умолчанию. Чтобы найти несколько различных решений для неполиномиальных, можно задать 'Random'
к true и использовать vpasolve
неоднократно.
Когда вы решаете систему уравнений с неоднородными решениями, поведение vpasolve
зависит от того, является ли система полиномиальной или неполиномиальной. Если полином, vpasolve
возвращает все решения путем введения произвольного параметра. Если неполином, возвращается одно числовое решение, если оно существует.
Когда вы решаете систему рациональных уравнений, vpasolve
преобразует рациональные уравнения в полиномы путем умножения знаменателей. vpasolve
возвращает все решения получившейся полиномиальной системы, которые также включают корни знаменателей.
vpasolve
игнорирует допущения, установленные для переменных. Можно ограничить возвращенные результаты конкретными областями значений, задав соответствующие области значений поиска с помощью аргумента init_param
.
Переменные выходы y1,...,yN
не задавать переменные, для которых vpasolve
решает уравнения или системы. Если y1,...,yN
являются ли переменные, которые появляются в eqns
, что не гарантирует, что vpasolve(eqns)
назначит решения y1,...,yN
использование правильного порядка. Таким образом, для вызова [a,b] = vpasolve(eqns)
, вы можете получить решения для a
назначено b
и наоборот.
Чтобы гарантировать порядок возвращенных решений, задайте переменные vars
. Для примера вызов [b,a] = vpasolve(eqns,[b,a])
назначает решения для a
назначено a
и решения для b
назначено b
.
Можно решить уравнения символически, используя solve
, а затем численно аппроксимируйте результаты с помощью vpa
. Используя этот подход, вы получаете числовые приближения всех решений, найденных символьным решателем. Однако это может уменьшить вычислительную скорость, поскольку решение символически и постобработка результатов занимает больше времени, чем непосредственно с помощью числового решателя vpasolve
.
Когда вы задаете 'Random'
на true
и задайте область значений поиска для переменной, случайные начальные предположения в область значений поиска выбираются с помощью внутреннего генератора случайных чисел (с равномерным распределением).
Когда вы задаете 'Random'
на true
и не задайте область значений поиска для переменной, случайные начальные предположения генерируются с помощью распределения Коши с половинной шириной 100
. Это означает, что начальные предположения являются реальными и имеют большое количество значений при повторных вызовах.