В этом примере показано, как решать параметризованные алгебраические уравнения с помощью инструментария символьной математики.
Чтобы решить алгебраические уравнения символически, используйте solve функция. Функция решения может предоставить полную информацию обо всех решениях уравнения, даже если их бесконечно много, введя параметризацию. Он также может предоставить информацию о том, при каких условиях эти решения являются действительными. Чтобы получить эту информацию, установите для параметра ReturnConditions значение true.
Решить уравнение sin(C*x) = 1. Определить x в качестве переменной для решения. solve дескрипторы функций C как константа. Укажите три выходные переменные для решения, новые параметры в решении и условия в решении.
syms C x eq = sin(C*x) == 1; [solx, params, conds] = solve(eq, x, 'ReturnConditions', true)
solx =
params =
conds =
Чтобы проверить решение, подставьте его в уравнение с помощью subs. Работа в соответствии с предположениями в conds для остальной части этого примера, используйте assume. Протестируйте решение с помощью isAlways. isAlways функция возвращает логические 1 (true) указывая, что решение всегда сохраняется при данных допущениях.
SolutionCorrect = subs(eq, x, solx)
SolutionCorrect =
assume(conds) isAlways(SolutionCorrect)
ans = logical
1
Чтобы получить одно решение из бесконечно большого числа решений, найдите значение параметров params путем решения условий conds для параметров; не указывайте параметр ReturnConditions. Заменить это значение на k в решение с использованием subs для получения раствора из набора растворов.
k0 = solve(conds, params)
k0 =
subs(solx, params, k0)
ans =
Для получения значения параметра, удовлетворяющего определенному условию, добавьте условие к входу в solve. Найти значение параметра, превышающее 99/4 и заменить его, чтобы найти решение.
k1 = solve([conds, params > 99/4], params)
k1 =
subs(solx, params, k1)
ans =
Чтобы найти решение в указанном интервале, можно решить исходное уравнение с неравенствами, задающими интервал.
[solx1, params1, conds1] = solve([eq, x > 2, x < 7], x, 'ReturnConditions', true)solx1 =
params1 =
conds1 =
Кроме того, можно использовать существующее решение и ограничить его дополнительными условиями. Следует отметить, что при изменении условия решение остается прежним. solve функция выражает solx и solx1 с различными параметризациями, хотя они эквивалентны.
[~, ~, conds2] = solve(x == solx, x < 7, x > 2, x, 'ReturnConditions', true)conds2 =
Получите те значения параметров, которые удовлетворяют новому условию, для определенного значения константы C:
conds3 = subs(conds2, C, 5)
conds3 =
solve(conds3, params)
ans =