matlab学习笔记:符号运算

批量产生符号变量

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

        例如要求解该方程组:

matlab学习笔记:符号运算_第1张图片

        

 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]


你可能感兴趣的:(matlab学习笔记:符号运算)