matlab符号对象,MATLAB学习笔记(二):符号计算(创建符号对象)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值