用符号表达式替换变量

用公式求解下列三角方程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使用一个新的符号变量一个。首先,创建符号变量k一个。(求解器不创建变量k在MATLAB®工作空间)。

信谊k一

现在,使用潜艇函数来代替k通过一个在解向量中solx、参数参数个数,和条件气孔导度

subs(conds, k, a) params = subs(params, k, a) conds = subs(conds, k, a)
solx = /2 + *a 2* a - /6 (7*)/6 + 2* *a params = a conds = in(a, 'integer') in(a, 'integer') in(a, 'integer') in(a, 'integer')

假设你知道参数的值一个2。替代一个2在解向量中solx

潜艇(solx, 2)
ans = (5*)/2 (23*)/6 (31*)/6

另外,替补参数个数2。此方法返回相同的结果。

潜艇(solx params, 2)
ans = (5*)/2 (23*)/6 (31*)/6

替代参数一个使用浮点数。工具箱将数字转换为浮点值,但它保持符号表达式不变,例如信谊(π),exp(信谊(1)),等等。

潜艇(solx params, vpa (2))
ans = 2.5*pi 3.8666666666666666666666666667 *pi

使用浮点值近似替换的结果vpa所返回的结果潜艇

vpa(潜艇(solx参数2))
ans = 7.85398163397448961566084581988 12.042771838760874080773466302571 16.231562043547265065390324146944