批量产生符号变量
for m=1:3 syms (['x', num2str(m)]); end- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
符号运算的强大函数:g = subs(f,old,new)
可以将符号表达式f中的变量old替换为变量new。new可以是数值,从而进行数值运算。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
高精度运算:vpa
如计算黄金分割数的100位有效数字,用其公式(sqrt(5)-1)/2。
syms x; f = (sqrt(x)-1)/2; vpa(subs(f, 'x', '5'), 100)
可得:0.6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911375,注意结果是四舍五入的。
接下来还可以用char(syms),把结果变成字符串形式,方便进行其他操作分析。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
解方程组:solve
例如要求解该方程组:
s = solve('cos(x)-sin(x-y)=0','-sin(y)+sin(x-y)=0','x','y'); [s.x s.y]输出一共有三组解:
ans = [ pi/3, pi/6] [ -pi/3, (5*pi)/6] [ pi, -pi/2]