当前位置:
文档之家› 通信原理教程(第二版)樊昌信
通信原理教程(第二版)樊昌信
2. 任意精度的数学运算
在symbolic中有三种不同的算术运算:
1. 数值类型
matlab的浮点算术运算
2. 有理数类型 maple的精确符号运算
3. vpa类型
maple的任意精度算术
运算
• 浮点算术运算
1/2+1/3 --(定义输出格式format long)
ans =
0.83333333333333
4.符号矩阵的创建
数值矩阵A=[1,2;3,4] A=[a,b;c,d] —— 不识别
用matlab函数sym创建矩阵(symbolic
的缩写)
命令格式:A=sym('[ ※ 需用sym指'标识
例如:A = sym('[a , 2*b ; 3*a , 0]') A= [ a, 2*b] 0] [3*a,
将符号矩阵转化为数值矩阵
函数调用格式: numeric(A) A= [ 1/3, 5/2] [10/7, 2/5]
numeric(A) ans = 0.3333 2.5000 1.4286 0.4000
二、符号运算
1. 符号矩阵运算
符号运算的四则运算符和数值运算的运 算符相同。例如1: syms a b c d A=sym (‘[a b;c d]’); B=sym (‘[a+b,a-b;c+d,c-d]’) ; A+B=[2*a+b, a] [2*c+d, c]
a=sym('[1/4,exp(1);log(3),3/7]') a= [ 1/4,exp(1)] [log(3), 3/7] vpa(a,10) ans = [.2500000000, 2.718281828] [1.098612289, .4285714286]
3. 符号微积分与积分变换
• diff(f) — 对缺省变量求微分 • diff(f,v) — 对指定变量v求微分 • diff(f,v,n) —对指定变量v求n阶微分 • int(f) — 对f表达式的缺省变量求积分
• 特点:
运算对象可以是没赋值的符号变量 可以获得任意精度的解
• Symbolic Math Toolbox——符号运算
工具包通过调用Maple软件实现符号 计算的。
• maple软件——主要功能是符号运算,
它占据符号软件的主导地位。
2. 符号变量与符号表达式
f = 'sin(x)+5x' f —— 符号变量名 sin(x)+5x—— 符号表达式 ' '—— 符号标识 符号表达式一定要用' ' 单引 号括起来matlab才能识别。
3.符号变量的创建 a. sym函数定义符号变量
x=sym(‘x’) %建立符号变量x syms x y z … %等价于 x=sym(‘x’) , y=sym(‘y’) , z=sym(‘z’) … b. 直接法 f=‘a*x^2+b*x+c’ %建立符号表达式
f=‘a*x^2+b*x+c=0’ %建立符号方程
这就完成了一个符号矩阵的创建。 注意:符号矩阵的每一行的两端都有方 括号,这是与 matlab数值矩阵的
一个重要区别。
符号矩阵与数值矩阵的转换
将数值矩阵转化为符号矩阵
函数调用格式:sym(A) A=[1/3,2.5;1/0.7,2/5] A= 0.3333 2.5000 1.4286 0.4000 sym(A) ans = [ 1/3, 5/2] [10/7, 2/5]
• 符号运算
sym(1/2)+(1/3) ans = 5/6 --精确解
• 任意精度算术运算
digits(n) —— 设置可变精度,缺省16位
vpa(x,n) —— 显示可变精度计算
digits(25)
vpa(1/2+1/3)
ans =
.8333333333333333333333333
vpa(5/6,40) ans = .8333333333333333333333333333333333333333
符号运算函数:
symsize —— 求符号矩阵维数 charploy —— 特征多项式 determ —— 符号矩阵行列式的值 eigensys —— 特征值和特征向量 inverse —— 逆矩阵 transpose —— 矩阵的转置 jordan —— 约当标准型
simple —— 符号矩阵简化
• int(f,v) — 对f表达式的v变量求积分
• int(f,v,a,b) — 对f表达式的v变量在(a,b)
区间求定积分
int('被积表达式','积分变量','积分上限', '积分下限')—— 定积分 ——缺省时为不定积分 例1.计算二重不定积分
F=int(int('x*exp(-x*y)','x'),'y') F= 1/y*exp(-x*y) 例2.计算 f='x*exp(-x*10)'的Z变换 F=ztrans(f) F= z*exp(-10)/(z-exp(-10))^2
符号运算的功能
• 符号表达式、符号矩阵 • • • • •
的创建 符号线性代数 因式分解、展开和简化 符号代数方程求解 符号微积分 符号微分方程
一、符号运算的基本操作
1. 什么是符号运算 • 与数值运算的区别
※ 数值运算中必须先对变量赋值, 然后才能参与运算。 ※ 符号运算无须事先对独立变量 赋值,运算结果以标准的符号形式 表达。
例2:f= 2*x^2+3*x-5; g= x^2+x-7;
>> syms x >> f=2*x^2+3*x-5; g= x^2+x-7; >> h=f+g h = 3*x^2+4*x-12 例3:f=cos(x);g= sin(2*x); >> syms x >> f=cos(x);g=sin(2*x); >> f/g+f*g ans = cos(x)/sin(x)+cos(x)*sin(x)
A*B=[ a*(a+b)+b*(c+d), a*(a-b)+b*(c-d)]
[ c*(a+b)+d*(c+d), c*(a-b)+d*(c-d)]
A.*B=[a*(a+b), b*(a-b)]
[c*(c+d), d*(c-d)]
A./B=[a/(a+b), b/(a-b)]
[c/(c+d), d/(c-d)] A^2=[a^2+b*c, a*b+b*d] [a*c+c*d, b*c+d^2]