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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值