06 - Matlab符号计算

Download Report

Transcript 06 - Matlab符号计算

Matlab 符号计算
一、符号计算基础
二、符号微积分
三、符号表达式的化简与替换
四、求解符号方程(组)
五、绘制符号函数的图形
一、符号计算基础
•
•
•
•
•
•
•
1、什么是符号计算
2、创建符号量 sym / syms
3、替换符号量 subs
4、符号计算的运算符
5、符号计算的基本函数
6、符号计算的精度控制
7、符号量与数值量之间的转换
1、什么是符号计算?
• 符号计算以推理解析的方式进行,不受计算误差积累问题困
扰;
• 符号计算给出解析解,当解析解不存在时,会给出数值解;
• 符号计算指令的调用比较简单,与教科书上的公式相近;
• 计算所需时间比数值计算要多很多;
• 常用的符号计算软件有Maple、Mathmatica、MathCAD等。
• Matlab 的符号计算功能是建立在 Maple 的基础上的, 通过
Symbolic Math Toolbox(符号数学工具箱)和Extended
Symbolic Math Toolbox(扩展符号数学工具箱)实现。
数值运算的误差
1 1
3 1 4
 ?
  ?
2 3
10 2 5
1 4 3
 
?
2 5 10
2、创建符号量
(1) sym()
每次只能创建 一个 符号量。
S = sym(A)
x = sym('x')
x = sym('x','real')
x = sym('x','positive')
x = sym('x','unreal')
S = sym(A,flag)
设x为实数
设x为正实数
去除x的“实”、“正”属性
flag为'r', 'd', 'e', 或 'f'
a=sym('a')
a是符号变量
b=sym(1/3)
b是符号常量
f=sym('[1,ab;c,d]')
f是符号矩阵
b = sym('1/3+sqrt(2)')
用单引号括起来,是以最精确的
形式存储符号常数
b=
1/3+sqrt(2)
a = sym(1/3 + sqrt(2))
a=
7870251548315938*2^(-52)
p
p
p, q为正整数时, ,  ,
q
q
称为“ 有理” 表示。
不用单引号,则是以最
接近的“有理”表示的
形式存储符号常数
p ,2q , 10q
(2) syms
可以同时建立 多个 符号变量
syms arg1 arg2 ...
syms arg1 arg2 ... real
syms arg1 arg2 ... unreal
syms arg1 arg2 ... positive
syms a b c
a=sym('a');
b=sym('b');
c=sym('c');
a b c中间一定要用空格隔开,不能用逗号
syms不能用来创建符号常量
(3)创建符号表达式
 用 sym 命令创建符号表达式:
>> f = sym('a*x+b')
f=
a*x+b
 先定义符号变量,再按普通书写形式创建符号表达式:
>> syms a x b
>> f = a*x + b
f=
a*x+b
(4)创建符号数组
 将数值矩阵转化成符号数组:
B = [2/3,sqrt(2);5.2,log(3)];
C = sym(B)
 使用 sym 函数直接生成:
A=sym('[1+x,sin(x); 5,exp(x)]')
 先定义符号变量,再按普通书写 形式创建符号数组:
syms a b x y
C = [a,b;x,y]
(5) findsym( )
找出符号表达式/数组中的符号变量
findsym(S)
findsym(S,n)
按字母顺序列出 S 中的所有符号变量
列出 S 中离 x 最近的 n 个符号变量
若表达式中有两个符号变量与
则ASCII 码大者优先。
x 的距离相等,
>> f = sym('2*w-3*y+z^2+5*a')
f=
2*w-3*y+z^2+5*a
>> findsym(f,3)
ans =
y,w,z
>> findsym(f)
ans =
a, w, y, z
>> findsym(f,1)
ans =
y
3、替换符号量
subs( ) 用给定的数据替换符号表达式中的指定的符号变量
R = subs(S)
R = subs(S, new)
R = subs(S,old,new)
若
则
替换 S 中的所有变量
用 new 替换 S 中的缺省变量
用 new 替换 S 中的 old
new 是一个由多个符号变量组成的数组,
old 应该具有与 new 相同的形状的数组。
syms a x b
f = a*x+b
a=1
b=2
c = subs(f)
syms a x b
f = a*x+b
c = subs(f,5)
c =x+2
缺省变量:
c = 5*a+b
syms a x b
f = a*x+b
c = subs(f,[a,b],[1,2])
c = x+2
findsym(S,1)的返回结果
syms a x b
syms a x b
f = a*x+b
f = a*x+b
c = subs(f,1:5)
c = subs(f,[1,2;3,4])
c=
[ a+b, 2*a+b, 3*a+b, 4*a+b, 5*a+b]
c=
[ a+b, 2*a+b]
[ 3*a+b, 4*a+b]
syms a x b
syms a x b
f = a*x+b
f = a*x+b
c = subs(f,{a,b},{[1,2],[3,4]})
c = subs(f,{a,b},{[1,2;3,4],5})
c=
[ x+3, 2*x+4]
c=
[ x+5, 2*x+5]
[ 3*x+5, 4*x+5]
练习:指出下面各条语句的输出结果
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
f=sym('2*u');
subs(f,'u',2)
f2=subs(f,'u','u+2')
a=3;
subs(f2,'u',a+2)
subs(f2,'u','a+2')
syms x y
f3=subs(f,'u',x+y)
subs(f3,[x,y],[1,2])
subs(f3,[x,y],[x+y,x+y])
4、符号计算的运算符
Matlab 符号计算中采用的运算符,在名称和使用上,
都与数值计算中的运算符完全相同。
 矩阵运算:+
-
*
\
/
^
 数组运算:+
-
.*
.\
./
.^
 矩阵转置:'
.'
X=sym('[a,b;c,d]')
Y=sym('[a,1;b,0]')
Z1=X*Y
Z2=X.'.*Y
Z2 =
Z1 =
[ a^2+b^2,
[ c*a+d*b,
a]
c]
[ a^2, c]
[ b^2, 0]
5、符号计算的基本函数
Matlab 符号计算中,一些基本的函数,在名称和使用
上,与数值计算中的函数基本相同。
三角函数,双曲函数及它们的反函数,无论在数值计算还是在
符号计算中,使用方法相同。但是没有 atan2函数。
指数、对数函数:与数值计算一样
复数函数:符号计算中,没有angle函数(求相角)
矩阵代数函数:与数值计算一样
与数组相关的函数,如size,length,括号[ ]、( )的作用等等,
都与数值计算一样
练习:计算下列行列式
x
y
x y
y
x y
x y
x
x
y
a 1 0
1 b 1
0 1 c
0 0 1
0
0
1
d
6、符号计算的精度控制
digits(n) 设置符号数值计算以n位相对精度进行,默认为32位
xs = vpa(x) 在digits指定的精度下,给出x的数值型符号结果xs
xs = vpa(x,n) 在n位相对精度下,给出x的数值型符号结果xs
a = sym(pi)
digits(20)
b = vpa(a*a)
a = pi
b = 9.8696044010893586191
c = 9.8696044010893586188344909998761
d = 9.869604401089358618834490999876151135313
digits(32)
c = vpa(a*a)
d = vpa(a*a,40)
7、符号量与数值量之间的转换
double(x)
把符号常数转化为16位相对精度的浮点数值对象。
a = sym('1/123') + sym(sqrt(2)) + sym('pi')
b = double(a)
a = 1/123+2^(1/2)+pi
b=
4.5639
s = poly2sym(p) 把多项式转化相应的符号表达式
p = sym2poly(s)
syms x
p1 = [1,2,3]
s1 = x + 2*x^3 - 6
s2 = poly2sym(p1,x)
p2 = sym2poly(s1)
把多项式的符号表达式转换为数值多项式
s2 =
x^2+2*x+3
p2 =
2
0
1
-6
二、符号微积分
•
•
•
•
•
1、极限
2、微分
3、积分
4、级数求和
5、函数的泰勒级数展开
1、极限
limit(F)
limit(F,a)
limit(F,v,a)
limit(F,v,a,’right’)
limit(F,v,a,’left’)
求默认变量→0时F的极限
求默认变量→a时F的极限
求v →a时F的极限
求v →a+时F的右极限
求v →a-时F的左极限
F为符号表达式,没有指定变量时,由 findsym 确定默认变量
1 lim
h 0
sin  x  h   sin  x 
h
 a
1 
 2 f  x   xlim


x

x
syms x a h
F = (sin(x+h) - sin(x))/h
f = (1 + a/x)^x
lim_1 = limit(F,h,0)
lim_2 = limit(f,inf)
x
lim
x 0 x
syms x
limit(x/abs(x), x, 0, 'left')
ans = -1
x
lim
x 0 x
syms x
limit(x/abs(x), x, 0, 'right')
ans = 1
syms x
limit(x/abs(x), x, 0)
ans = NaN
2、微分
diff(S)
diff(S,n)
diff(S,v)
diff(S,v,n)
求 S 对默认变量的一阶导数
求 S 对默认变量的 n 阶导数
求 S 对变量 v 的一阶导数
求 S 对变量 v 的 n 阶导数,也可写成 diff(f,n,v)
x
1
求
f
x

e
 x sin x 的导数
  
2
2

z

z
ax
 2  设z  e cos by,求 2 ,
y xy
syms x y a b
f = sqrt(exp(x)+x*sin(x))
df = diff(f)
z = exp(a*x)*cos(b*y)
yy = diff(z,y,2)
xy = diff(diff(z,x),y)
3、积分
int(S)
int(S,v)
int(S,a,b)
int(S,v,a,b)
求 S 对默认变量的不定积分
求 S 对变量 v 的不定积分
求 S 对默认变量的定积分
求 S 对变量 v 的定积分
a:积分下限,b:积分上限。
当 a 或 b 取 inf(或 -inf)时,计算的就是广义积分。
1  sin  xy  dy
syms x y

 2 06  sin x  2  dx

1
3
  1 2 dx
x

1
dx
 4   2
x  2x  3
A1 = int(sin(x*y),y)
A2 = int(sin(x)+2,0,pi/6)
A3 = int(1/x^2,1,inf)
A4 = int(1/(x^2-2*x+3),-inf,inf)
练习:求下面的积分,给出50位精度的数值
2
x2
x2 y
x
xy
 
1
( x  y  z )dzdydx
2
先对 z 变量的积分
然后对 y 变量的积分
最后对 x 变量的积分
2
2
4、级数求和
symsum(s,v) 求s的前v项的和,变量为 v = 0,1,2,…,v-1
symsum(s)
功能同上,对默认变量求和
symsum(s,v,a,b)
变量v = a,a+1,…,b,求这些项的和
symsum(s,a,b)
默认变量 = a,a+1,…,b,求这些项的和
求:
100
1  k ,
k 1

1
 2  2;
k 1 k
syms k
a = symsum(k,1,100)
b = symsum(1/k^2,1,inf)
n 1
求 q
n
n 0
syms q n
s1 = symsum(q^n,n,0,n-1)
s2 = symsum(q^n,n)
s1 =
√√√
q^n/(q-1)-1/(q-1)
s2 =
???
q^n/(q-1)
按照symsum函数的说明,这里s2应
该与s1相同,但结果却并不一致,
故建议使用symsum函数时使用下面
的完整的形式:
symsum(s,v,a,b)
5、函数的泰勒级数展开
在x  a处展开式:f  x   f  a  
在x  0处展开:f  x   f  0  
taylor(f)
taylor(f,n)
taylor(f,a)
taylor(f,n,a)
taylor(f,n,v)
taylor(f,n,v,a)
f 'a
1!
f '  0
1!


f ''  a 
2!
f ''  0 
2!



  x  a
n
n 0

f  n  0 
n 0
n!
  xn
f  n  a 
n!
求 f 在默认变量 = 0 处的 5 阶泰勒展开式
求 f 在默认变量 = 0 处的 n-1 阶泰勒展开式
求 f 在默认变量 = a 处的 5 阶泰勒展开式
求 f 在默认变量 = a 处 n-1 阶泰勒展开式
求 f 在变量 v = 0 处的 n-1 阶泰勒展开式
求 f 在变量 v = a 处的 n-1 阶泰勒展开式
当 a 为正整数时,请指定 n 的值。例如: a = 4时,
taylor(f,4) : 返回的是f 在 0 处的 3阶泰勒展开式
taylor(f,7,4):返回的是f 在 4 处的 6阶泰勒展开式
求x  0的7阶泰勒展开式:
sin x
1 f  x  
x
 2 f  x   ex
 3 f  x   sin x
 4  f  x   cos x
syms x
f = sin(x)/x
t1 = taylor(f,8)
t2 = taylor(exp(x), 8)
t3 = taylor(sin(x), 8)
t4 = taylor(cos(x), 8)
三、符号表达式的化简
1、factor
2、expand
3、collect
4、simplify
5、simple
6、horner
7、numden
1、factor
factor(f)
对 f 进行因式分解,也可用于正整数的分解
ans =
syms x y
factor(x^3 - y^3)
(x-y)*(x^2+x*y+y^2)
a = 1234567890
b1 = factor(a)
b2 = factor(sym(a))
输入数值量,返回一个行数组
输入符号量,返回符号表达式
b1 =
2
3
3
b2 =
(2)*(3)^2*(5)*(3803)*(3607)
5
3607
3803
1
a
a2
4
a
1
b
b2
4
b
1
c
c2
4
c
1
d
?
2
d
4
d
syms a b c d
r = [a,b,c,d]
A = [r.^0;r;r.^2;r.^4]
B = det(A)
C = factor(B)
2、expand
expand(S)
把 S 展开为多项式形式,也可展开复合的
三角函数、指数函数
syms x
ans =
expand((x-2)*(x-4))
x^2-6*x+8
syms x y;
expand(cos(x+y))
ans =
syms a b
expand(exp((a + b)^2))
ans =
cos(x)*cos(y)-sin(x)*sin(y)
exp(a^2)*exp(a*b)^2*exp(b^2)
3、collect
collect(S)
collect(S,v)
按 默认变量 对 S 合并同类项
按指定变量 v 对 S 合并同类项
syms x y;
f = (x+y)*(x^2+y^2+1)
f1 = collect(f)
f2 = collect(f,y)
f1 =
x^3+y*x^2+(y^2+1)*x+y*(y^2+1)
f2 =
y^3+x*y^2+(x^2+1)*y+x*(x^2+1)
4、simplify
simplify(S): 用内置的化简规则对 S 进行化简
syms x;
f = sin(x)^2 + cos(x)^2 ;
f1 = simplify(f)
syms a b c;
g = exp(c*log(sqrt(a+b)));
g1 = simplify(g)
f1 =
1
g1 =
(a+b)^(1/2*c)
5、simple
simple(S) 对 S 尝试多种不同的算法(包括simplify)进行简
化,并显示相应的结果,最后返回其中最简短的形式并赋值给
默认变量ans
r = simple(S) 对 S 尝试多种不同的算法(包括simplify)进
行简化,但不显示相应的结果,只是返回其中最简短的形式并
赋值给变量 r
[r, How] = simple(S)
对 S 尝试多种不同的算法(包括
simplify)进行简化,但不显示相应的结果,只是返回其中最简
短的形式并赋值给变量 r,同时返回字符串How ,记录得到 r 所
使用的化简方法。
化简: f ( x) 
3
1
6 12
 2  8
3
x
x
x
syms x;
f = (1/x^3+6/x^2+12/x+8)^(1/3);
f1 = simple(f)
f2 = simple(f1)
f3 = simple(f2)
f1 = (2*x+1)/x
f2 = 2+1/x
f3 = 2+1/x
多次使用 simple ,直到结果与前一次相同,以达到
最简单的表示形式。
6、horner
horner(P) 将多项式 P 改写为horner形式(这种形式可以快
速计算多项式的值)
syms x;
f = x^4+2*x^3+4*x^2+x+1;
g = horner(f)
g=
1+(1+(4+(x+2)*x)*x)*x
7、numden
[N,D] = numden(f)
返回值: N 为 f 的分子,D 为 f 的分母
syms x y;
f = x/y + y/x;
[N,D] = numden(f)
N=
D=
x^2+y^2
y*x
四、求解符号方程
• 1、线性方程组的符号解
• 2、符号方程(组)求解
• 3、常微分方程(组)的求解
1、线性方程组的符号解
x  y  z  a

3 x  y  6 z  7
 y  3z  4

clc;
clear all;
A = sym('[1,1,1;3,-1,6;0,1,3]')
b = sym('[a;7;4]')
s = A\b
s=
-14/15+3/5*a
-3/5+3/5*a
23/15-1/5*a
2、符号方程(组)求解
求方程指定变量var的解
s = solve(eq,var)
s = solve(eq)
求方程默认自变量的解
eq 是用字符串表示的方程,或符号表达式。
如何求方程 ax  bx  c  d 的解?
2
(1)用 字符串 创建方程
eq1 = 'a*x^2+b*x+c=d'
sx = solve(eq1)
sa = solve(eq1,'a')
eq1 = 'a*x^2+b*x+c-d'
sx = solve(eq1)
sa = solve(eq1,'a')
若方程 eq 中不含等号,则表示解方程 eq = 0
sx =
-1/2*(b-(b^2-4*a*c+4*a*d)^(1/2))/a
-1/2*(b+(b^2-4*a*c+4*a*d)^(1/2))/a
sa =
-(b*x+c-d)/x^2
sx是2行1列
的符号数组
以a为方程的变量求出的解
(2)用符号表达式创建方程
syms a b c d x
eq1 = a*x^2+b*x+c-d;
sx = solve(eq1)
sa = solve(eq1,a)
符号表达式不能写成:
eq = a*x^2+b*x+c=d
解方程
x  3x  1  0
3
syms x;
f = x^3-3*x+1;
s = solve(f,x)
s = solve('x^3-3*x+1','x')
s = solve('x^3-3*x+1=0','x')
上面的三种方法都可以求得方程的解。
solve 也可以解方程组
s = solve( f1 , f2 , ... , fn , v1 , v2 , ... , vn)
求解由 f1 , f2 , ... , fn 确定的方程组关于 v1 , v2 , ... , vn 的解
若不提供v1 , v2 , ... , vN ,Matlab会自动确定默认变量。
返回值 s 是一个架构数组,如果要显示(引用)每个解,
使用 s.v1,s.v2
x  y  z  1

解方程组:  x  z  2
 x3  y  2

eq1 = 'x + y - z = 1'
eq2 = 'x + z = 2'
eq3 = 'x^3 + y = 2'
s = solve(eq1,eq2,eq3)
x = s.x
y = s.y
z = s.z
s=
x: [3x1 sym]
y: [3x1 sym]
z: [3x1 sym]
x=
y=
z=
1
1
1
1/2*5^(1/2)-1/2
-5^(1/2)+4
-1/2*5^(1/2)+5/2
-1/2*5^(1/2)-1/2
5^(1/2)+4
1/2*5^(1/2)+5/2
x(1),y(1),z(1)是方程组的第 1 组解
x(2),y(2),z(2)是方程组的第 2 组解
x(3),y(3),z(3)是方程组的第 3 组解
uy 2  vz  w  0  y  ?


z  ?
y  z  w  0
clc;
clear all;
syms u v w y z
eq1 = u*y^2 + v*z + w;
eq2 = y + z + w;
s = solve(eq1,eq2,y,z)
求范德瓦尔斯气体的三个临界参量
 2P 
a 

 P 
 P  2  V  b   RT , 
  0, 2   0
V 

 V T
 V T
Pc , Vc , Tc  ?
clc;
clear all;
syms a b R T V
P = R*T/(V-b) - a/V^2
PV = diff(P,V)
PV2 = diff(PV,V)
S = solve(PV,PV2,V,T)
Vc = S.V
Tc = S.T
Pc = subs(P,{V,T},{S.V,S.T})
clc;
clear all;
F = '(P+a/V^2)*(V-b)-R*T'
FV = diff(F,'V');
FV2 = diff(FV,'V');
S = solve(F,FV,FV2,'P','T','V');
Pc = S.P
Vc = S.V
Tc = S.T
先定义隐函数,然后对隐函数求偏导数,
再解方程组,也可得到正确的结果,但要
注意:FV 并不等于左边的PV,
FV2 也不等于左边的PV2。
标准解法
为什么结果相同呢?问题的关键
在于题中的两个边界条件都为0,具体请参
见下一张ppt中的说明。
设函数F  x, y, z  在点P  x0 , y0 , z0 的某一邻域内有连续的偏导数,且F  x0 , y0 , z0   0, Fz  x0 , y0 , z0   0,
则方程F  x, y, z  =0在点P  x0 , y0 , z0 的某一邻域内恒能确定一个单值连续且具有连续偏导数的函数
Fy
Fx z
z
z  f  x, y  , 它满足条件z0  f  x0 , y0 ,并有:   ,  
x
Fz y
Fz
 2 P 
a 

 P 
对于具体问题:
 P  2  V  b   RT , 
  0,  2   0

V
V 


T
 V T
a 

定义隐函数: F V , T , P    P  2  V  b   RT ,
V 

F 对P的偏导数 FP  V  b  0,
对应显函数P  P V , T 
a 2ab
2a 6ab


P
,
注
意:
matlab
中
diff
F
,
'
V
'

F

 4
 V  VV
2
3
3
V
V
V
V
FV
 P 
 P 
因为
=

所
以


 =0 这个条件等价于 FV  0
FP
 V T
 V T
FP
P 

F

F

F
V
 VV
 P
FV V FP  2 FV
 2 P 
  FV 
V 
V

又


   
2 
2

V
F

V
F
FP 2

T
 P
P
F 对V 的偏导数 FV  
 2 P 
所以  2  =0 这个条件等价于 FV V FP  2 FV =0,
 V T
考虑到第一个条件,因此第二个条件等价于FV V  0
solve 在得不到解析解时,会给出数值解
解方程  x  2   2
x
s = solve('(x+2)^x = 2')
s=
.69829942170241042826920133106081
解方程 x  cos x
s = solve('x = cos(x)')
s=
.73908513321516064165531208767387
y =
3、常微分方程(组)的求解
dsolve('eq1','eq2', ... ,'cond1','cond2', ... ,'v')
y 为输出,
eq1、eq2、...为微分方程,
cond1、cond2、...为初值条件,
v 为自变量。
只有很少一部分微分方程(组)能求出解析解。
大部分微分方程(组)只能利用数值方法求数值解。
dsolve 的使用
 微分方程中用 D 表示对 自变量 的导数,如:
Dy
y'; D2y
y''; D3y
y'''
 如果省略初值条件,则表示求通解;
 如果省略自变量,则默认自变量为 t
dsolve('Dy=2*x','x');
dsolve('Dy=2*x');
dy/dx = 2x
dy/dt = 2x
例 :求微分方程
dy
 x2
的通解。
 2 xy  xe
dx
eq1 = 'Dy+2*x*y=x*exp(-x^2)'
y = dsolve(eq1,'x')
例 :求微分方程 xy ' y  e x  0 在初值条件 y(1)  2e
下的特解。
eq1 = 'x*Dy+y-exp(x)=0'
cond1 = 'y(1)=2*exp(1)'
y = dsolve(eq1,cond1,'x')
 dx
t

5
x

y

e
 x |t  0  1


dt
例:求微分方程组 
在初值条件 
y |t  0  0

dy

 x  3y  0

 dt
下的特解。
Eq1 = 'Dx+5*x+y=exp(t)'
Eq2 = 'Dy-x-3*y=0'
Cond1 = 'x(0)=1'
Cond2 = 'y(0)=0'
S = dsolve(Eq1,Eq2,Cond1,Cond2,'t')
S.x
%查看解函数 x(t)
S.Y
%查看解函数 y(t)
五、绘制符号函数的图形
•
•
•
•
•
•
1、fplot命令
2、ezplot命令
3、ezpolar命令
4、ezplot3命令
5、ezmesh命令
6、ezsurf命令
1、fplot
fplot(fun,limits) 绘制函数y=fun(x)的图形
limits可以是[xmin,xmax]形式
或[xmin,xmax,ymin,ymax]形式
sin x
y
, 20  x  20
x
fplot('sin(x)/x',[-20,20])
2、ezplot

ezplot(f,[a,b])
绘制 f  f(x) 在区间 a  x  b 上的图形

ezplot(f)
绘制 f  f(x) 在区间  2  x  2 上的图形

ezplot(f(x,y),[a,b,c,d]) f ( x, y) 在 a  x  b , c  y  d 上的图形

ezplot(f(x,y))
f ( x, y) 在  2  x,y  2 上的图形

ezplot(f,g,[a,b])
x  f (t ), y  g (t ) 在区间 a  t  b 上的图形

ezplot(f,g)
x  f (t ), y  g (t ) 在区间 0  t  2 上的图形
x  y 1
2
2
ezplot('x^2 - y^2 = 1')
3、ezpolar
在极坐标系中绘制符号函数的图形
  f  
ezpolar(f)
在 [0, 2pi] 区间绘制 f 的图形
ezpolar(f,[a,b]) 在 [a, b] 区间绘制 f 的图形
1


 1 3 
例: 
2  sin  7t   cos  30t   ,t    ,  
8 
2

 2 2 
1  

100   t 

 2 
100
f = '100/(100+(t-1/2*pi)^8)*(2-sin(7*t)-1/2*cos(30*t))‘
ezpolar(f,[-pi/2,3*pi/2])
4、ezplot3
绘制空间曲线
x = x(t), y = y(t), z = z(t)
t   0, 2 
ezplot3(x,y,z)
ezplot3(x,y,z,[tmin,tmax])
x = 't*cos(t)'
y = 't*sin(t)'
z = 't'
ezplot3(x,y,z,[0,10*pi])
5、ezmesh
绘制符号函数的三维网格图
(1)曲面由显函数f = f(x,y)确定
ezmesh(f)
x, y   2 , 2 
ezmesh(f,[xmin,xmax,ymin,ymax])
ezmesh(f,[a,b]) x, y   a, b
ezmesh('x*exp(-x^2-y^2)')
(2)曲面由参数方程x=x(s,t),y=y(s,t),z=z(s,t)确定
ezmesh(x,y,z) s, t   2 ,2 
ezmesh(x,y,z,[smin,smax,tmin,tmax])
ezmesh(x,y,z,[a,b]) s, t   a, b 
x = 's-sin(s)*cos(t)'
y = '(1-cos(s))*sin(t)'
z = 's'
ezmesh(x,y,z,pi*[-2,2])
6、ezsurf
绘制符号函数的彩色曲面图
(1)曲面由显函数 f = f(x,y) 确定
ezsurf(f) x, y   2 , 2 
ezsurf(f,[xmin,xmax,ymin,ymax])
ezsurf(f,[a,b]) x, y   a, b
ezsurf('x*(y^2)/(x^2+y^4)')
(2)曲面由参数方程 x = x(s,t), y = y(s,t), z = z(s,t)确定
ezsurf(x,y,z) s, t   2 ,2 
ezsurfh(x,y,z,[smin,smax,tmin,tmax])
ezsurf(x,y,z,[a,b]) s, t   a, b 
x = 'cos(s)*cos(t)'
y = 'cos(s)*sin(t)'
z = 'sin(s)'
ezsurf(x,y,z,[0,pi/2,0,3*pi/2])