主要内容

在符号表达式中替换变量

使用以下三角方程返回条件求解器的选项以获取完整的解决方案。求解器返回解决方案,解决方案中使用的参数以及这些参数的条件。

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一种。(求解器不会创建变量k在matlab中®工作区。)

SYMS K A

现在,使用潜艇替换功能k经过一种在溶液矢量中Solx, 参数参数和条件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')在(a,'整数')中

假设,您知道参数的值一种2。代替一种2在溶液矢量中Solx

SUBS(SOLX,A,2)
ans =(5*pi)/2(23*pi)/6(31*pi)/6

或者,替代参数2。此方法返回相同的结果。

subs(solx,params,2)
ans =(5*pi)/2(23*pi)/6(31*pi)/6

替代参数一种带有浮点数。工具箱将数字转换为浮点值,但它保持完整的符号表达式,例如SYM(PI),,,,exp(sym(1)), 等等。

subs(solx,params,vpa(2))
ANS = 2.5*PI 3.8333333333333333333333333333333333*PI 5.1666666666666666666666666666666666666666667*PI

近似使用浮点数的替换结果VPA在返回的结果潜艇

VPA(subs(Solx,params,2))
ANS = 7.85398163397448309615666084581988 12.0427718376087408740807777777466302571