Решите следующее тригонометрическое уравнение с помощью ReturnConditions
опция решателя, чтобы получить полное решение. Решатель возвращает решение, параметры, используемые в решении и условиях на тех параметрах.
syms x eqn = sin(2*x) + cos(x) == 0; [solx, params, conds] = solve(eqn, x, 'ReturnConditions', true)
solx = pi/2 + pi*k 2*pi*k - pi/6 (7*pi)/6 + 2*pi*k params = k conds = in(k, 'integer') in(k, 'integer') in(k, 'integer')
Замените параметр k
с новой символьной переменной a
. Во-первых, создайте символьные переменные k
и a
. (Решатель не создает переменную k
в рабочей области MATLAB®.)
syms k a
Теперь используйте subs
функционируйте, чтобы заменить k
a
в векторе решения solx
, параметры params
, и условия conds
.
solx = subs(solx, k, a) params = subs(params, k, a) conds = subs(conds, k, a)
solx = pi/2 + pi*a 2*pi*a - pi/6 (7*pi)/6 + 2*pi*a params = a conds = in(a, 'integer') in(a, 'integer') in(a, 'integer')
Предположим, вы знаете что значение параметра a
2
. Замените a
с 2
в векторе решения solx
.
subs(solx, a, 2)
ans = (5*pi)/2 (23*pi)/6 (31*pi)/6
В качестве альтернативы замените params
с 2
. Этот подход возвращает тот же результат.
subs(solx, params, 2)
ans = (5*pi)/2 (23*pi)/6 (31*pi)/6
Замените параметром a
с числом с плавающей запятой. Тулбокс преобразует числа в значения с плавающей точкой, но он сохраняет в целости символьные выражения, такие как sym(pi)
, exp(sym(1))
, и так далее.
subs(solx, params, vpa(2))
ans = 2.5*pi 3.8333333333333333333333333333333*pi 5.1666666666666666666666666666667*pi
Аппроксимируйте результат замены со значениями с плавающей точкой при помощи vpa
на результате, возвращенном subs
.
vpa(subs(solx, params, 2))
ans = 7.8539816339744830961566084581988 12.042771838760874080773466302571 16.231562043547265065390324146944