Решите параметрические уравнения в режиме ReturnConditions

Этот пример показывает вам, как решить параметризованные алгебраические уравнения с помощью Symbolic Math Toolbox.

Чтобы решить алгебраические уравнения символически, используйте функцию solve. Решить функция может предоставить полную информацию обо всех решениях уравнения, даже если существуют бесконечно многие путем представления параметризации. Это может также предоставить информацию, под которой обусловливает эти решения, допустимы. Чтобы получить эту информацию, установите опцию ReturnConditions на истину.

Решите уравнение sin(C*x) = 1. Задайте x как переменную, чтобы решить для. Указатели на функцию solve C как константа. Обеспечьте три выходных переменные для решения, недавно сгенерированных параметров в решении и условий на решении.

syms C x
eq = sin(C*x) == 1;
[solx, params, conds] = solve(eq, x, 'ReturnConditions', true)
solx = 

2πk+π2C

params = k
conds = C0kZ

Чтобы проверить решение, замените решением в уравнение с помощью subs. Чтобы продолжить работать под предположениями в conds для остальной части этого примера, используйте assume. Протестируйте решение с помощью isAlways. Функция isAlways возвращает логический 1 (true), указывающий, что решение всегда содержит под данными предположениями.

SolutionCorrect = subs(eq, x, solx)
SolutionCorrect = 

sin(2πk+π2)=1

assume(conds)
isAlways(SolutionCorrect)
ans = logical
   1

Чтобы получить одно решение из бесконечно многих решений, найдите значение параметров params путем решения условий conds для параметров; не задавайте опцию ReturnConditions. Замените этим значением k в решение с помощью subs, чтобы получить решение из набора решения.

k0 = solve(conds, params)
k0 = 0
subs(solx, params, k0)
ans = 

π2C

Чтобы получить значение параметров, которое удовлетворяет определенное условие, добавьте условие во вход к solve. Найдите значение параметра больше, чем 99/4 и замена в найти решение.

k1 = solve([conds, params > 99/4], params)
k1 = 26
subs(solx, params, k1)
ans = 

105π2C

Чтобы найти решение в заданном интервале, можно решить исходное уравнение с неравенствами, которые задают интервал.

[solx1, params1, conds1] = solve([eq, x > 2, x < 7], x, 'ReturnConditions', true)
solx1 = 

4πk+π2C

params1 = k
conds1 = 0<C4C<4πk+π4πk+π<14CC<04πk+π<4C14C<4πk+π

Также можно также использовать существующее решение и ограничить его с дополнительными условиями. Обратите внимание на то, что, в то время как условие изменяется, решение остается то же самое. Функция solve выражает solx и solx1 с различной параметризацией, несмотря на то, что они эквивалентны.

[~, ~, conds2] = solve(x == solx, x < 7, x > 2, x, 'ReturnConditions', true)
conds2 = 

4π<4k+1C4k+1C<14π

Получите те значения параметров, которые удовлетворяют новое условие для особого значения постоянного C:

conds3 = subs(conds2, C, 5)
conds3 = 

4π<4k5+154k5+15<14π

solve(conds3, params)
ans = 

(2345)

Для просмотра документации необходимо авторизоваться на сайте