2013第二章matlab攻略.doc
文本预览下载声明
符号计算
所谓符号计算是指:解算数学表达式、方程不是在离散化的数值点上进行,而是凭借一系列恒等式,数学定理,通过推理和演绎,力求获得解析结果。这种计算建立在数值完全准确表达和推演严格解析的基础之上,因此所得结果是完全准确的。
本书之所以把符号计算内容放在第2章,是出于以下考虑:一,相对于MATLAB的数值计算“引擎”和“函数库”而言,符号计算的“引擎”和“函数库”是独立的。二,在相当一些场合,符号计算解算问题的指令和过程,显得比数值计算更自然、更简明。三,大多数理工科的本科学生在学过高等数学和其他专业基础课以后,比较习惯符号计算的解题理念和模式。
在编写本章时,作者在充分考虑符号计算独立性的同时,还考虑了章节的自完整性。为此,本章不但全面地阐述符号计算,而且在最后一节还详细叙述了符号计算结果的可视化。 这样的安排,将使读者在阅读完本章后,就有可能运用MATLAB的符号计算能力去解决相当一些具体问题。
符号对象和符号表达式
符号对象的创建和衍生
生成符号对象的基本规则
符号数字
【例2.1-1】符号(类)数字与数值(类)数字之间的差异。
a=pi+sqrt(5)
sa=sym(pi+sqrt(5))
Ca=class(a)
Csa=class(sa)
vpa(sa-a)
a =
5.3777
sa =
pi+sqrt(5)
Ca =
double
Csa =
sym
ans =
.138223758410852e-16
符号参数
符号变量
【例2.1-2】用符号计算研究方程的解。
(1)
syms u v w z
Eq=u*z^2+v*z+w;
result_1=solve(Eq)
%
findsym(Eq,1)
result_1 =
-u*z^2-v*z
ans =
w
(2)
result_2=solve(Eq,z)
result_2 =
1/2/u*(-v+(v^2-4*u*w)^(1/2))
1/2/u*(-v-(v^2-4*u*w)^(1/2))
【例2.1-3】对独立自由符号变量的自动辨认。
(1)
syms a b x X Y
k=sym(3);
z=sym(c*sqrt(delta)+y*sin(theta));
EXPR=a*z*X+(b*x^2+k)*Y;
(2)
findsym(EXPR)
ans =
X, Y, a, b, c, delta, theta, x, y
(3)
findsym(EXPR,1)
ans =
x
(4)
findsym(EXPR,2),findsym(EXPR,3)
ans =
x,y
ans =
x,y,theta
【例2.1-4】findsym确定自由变量是对整个矩阵进行的。
syms a b t u v x y
A=[a+b*x,sin(t)+u;x*exp(-t),log(y)+v]
findsym(A,1)
A =
[ a+b*x, sin(t)+u]
[ x*exp(-t), log(y)+v]
ans =
x
符号计算中的算符
符号计算中的函数指令
符号对象的识别
【例2.1-5】数据对象及其识别指令的使用。
(1)
clear
a=1;b=2;c=3;d=4;
Mn=[a,b;c,d]
Mc=[a,b;c,d]
Ms=sym(Mc)
Mn =
1 2
3 4
Mc =
[a,b;c,d]
Ms =
[ a, b]
[ c, d]
(2)
SizeMn=size(Mn)
SizeMc=size(Mc)
SizeMs=size(Ms)
SizeMn =
2 2
SizeMc =
1 9
SizeMs =
2 2
(3)
CMn=class(Mn)
CMc=class(Mc)
CMs=class(Ms)
CMn =
double
CMc =
char
CMs =
sym
(4)
isa(Mn,double)
isa(Mc,char)
isa(Ms,sym)
ans =
1
ans =
1
ans =
1
(5)
whos Mn Mc Ms
Name Size Bytes Class
Mc
显示全部