码迷,mamicode.com
首页 > 其他好文 > 详细

MATLAB学习笔记(二):符号计算_-_1

时间:2015-01-17 13:56:57      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

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

MATLAB学习笔记(二):符号计算_-_1

标签:

原文地址:http://blog.csdn.net/qq_16255321/article/details/42804837

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!