2.1 符号对象和符号表达式
创建一个基本符号对象
syms a
创建一个基本的符号数字
sym('num') sc=sym('num')
符号类数字与数值类数字的差别
>> clear >> a=5+pi,b=sym('5+pi'),ca=class(a),cb=class(b),vpa(a-b) a = 8.1416 b = pi + 5 ca = double cb = sym ans = -0.00000000000000012246467991473531772260691423833
符号表达式
由符号变量构成的表达式叫符号表达式
如求方程 uz^2+vz+w=0的解
>> clear >> syms u v w z >> Eq=u*z^2+v*z+w; >> solve(Eq) ans = - u*z^2 - v*z >> findsym(Eq),findsym(Eq,1) ans = u,v,w,z ans = w
两个好玩的指令:solve() 解方程函数,默认离x绝对值最小的字母为未知数,也可以对指定变量解方程,如 solve(Eq,z);
findsym(Eq) 确认表达式Eq中所有的自由符号变量(表达式也可以是符号矩阵)
findsym(Eq,N) 从表达式中确认出距离x最近的N个自由符号变量
2.2 符号数字及表达式的操作
数值数字与符号数字之间的强制转换
>> clear >> a=88;b=sym('88'); >> class(sym(a)),class(double(b)) ans = sym ans = double
补:class(变量名) 返回该变量的数据类型
符号数字任意精度的计算
>> clear >> a=88; >> x=vpa(a) x = 88.0 >> class(x) ans = sym
一个指令: vpa(x) 将表达式x转换为32位(默认 可以改变,用 vpa(x,n))精度下的符号数字
符号运算中有许多操作指令,如collect(合并同类项) ,expand(对指定项展开),factor(进行因子分解) ,numden(提取公因式) ,pretty(习惯方式显示) 但其中最常用的是
simple(Eq) 把Eq化简成最简形式
如 简化 f=(1/x^3+6/x^2+12/x+8)^(1/3)
>> clear >> syms x >> f=(1/x^3+6/x^2+12/x+8)^(1/3); >> Eq=simple(f) Eq = ((2*x + 1)^3/x^3)^(1/3)
fuck 。。。其实还是能继续化简成 2+1/x 的,不知道怎么回事多次化简也没能解决这个问题,难道是版本问题?
先到这。。第二章还有很多看来今天写不完了。。QAQ
时间: 2024-10-25 00:25:45