matlab学习笔记:符号运算

来源:互联网 发布:代挂网主站接口源码 编辑:程序博客网 时间:2024/05/12 23:48

批量产生符号变量

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]


0 0
原创粉丝点击