版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章MATLAB软件的基本操作
1.1矩阵的建立和基本运算
一、实验目的
熟悉MATLAB软件中关于矩阵的建立以及矩阵运算的各种名
命令。
二、实验内容与要求
1.启动与退出
双击MATLAB图标,进入MATLAB命令窗口,即可输入命令,开始
运算。
单击File菜单中Exit,或使用MATLAB的Exit命令退出。
2.数、数组、矩阵的输入
(1)数的输入
>>a=5
回车:
SL—
5
输入复数2-5i
»b=2-5i
b二
2-5i
(2)数组的输入
»b=[1,3,5,7,9,H]
b=
1357911
»c=l:2:lU
c=
1357911
>>d=linspace(l,11,6)
d=
1357911
问题:体会以上输入方法有什么区别和联系。若b为在0~2万(乃
用pi表示)之间均匀分布的22个数据,
c=(l.3,2.5,7.6,2,-3),d=(23,20,17,14,11,8,5,2),b>c、d各
用何种方法输入较简单
(3)矩阵的输入
»A=[2,3,5;1,3,5;6,9,4]外行之间要用分号隔开
A=
235
135
694
3.矩阵大小的测试和定位
»A=[3,5,6;2,5,8;3,5,9;3,7,9]
A=
2
356
258
359
379
>>d=numel(A)%测试定矩阵A的元素数
d=
12
>>[n,midsize(A)%测试人的行(n)、列(m)数
n=
4
m=
3
»[i,j]=find(A>3)%找出A中大于3的元素的行列数
4.矩阵的块操作
»A(2,:)%取出A的第2行的所有元素
ans=
258
»A([l,3],:)%取出A的第1、3行的所有元素
ans=
356
359
»A(2:3,1:2)%取出A的2、3行与1、2列交叉的元素
3
ans=
25
35
»A([l,3],:)=A([3,1],:)%将A的第1行和第3行互换
问题:如何将A的2、3列互换?
»A(2,:)=4%将A的第2行的所有元素用4取代
»A(find(A==3))=-3%将A中等于3的所有元素换为-3
»A(2,:)=[]%删除A的第2行
>>reshape(A,2,6)%返回以A的元素重新构造的2x6
维矩阵
ans=
335596
434749
»A(4,5)=3%扩充人的维数,A成为4x5维矩阵,
未定义元素为3
注意:“:”表示全部
5.矩阵的翻转操作
>>flipud(A)%A进行上下翻转
»fliplr(A)%A进行左右翻转
>>rot(A)%A逆时针旋转90。
问题:尝试操作>>rot90(A,2)和〉〉rot90(A,-2),结果有区别
吗?
4
6.特殊矩阵的产生
>>A=eye(n)%产生n维单位矩阵
>>A=ones(n,m)%产生nxm维1矩阵
>>A=zeros(n,m)%产生nxm维0矩阵
>>A=rand(n,m)%产生nxm维随机矩阵(元素在0~1之间)
7.数的运算
»4+2
>>4*2
»4/2痢右除2,等于2
»4\2%4左除2,等于0.5
»4"3%4的3次方
»sqrt(4)刎的算术平方根
>>exp(3)%e的三次方,不能输成>3
»log(4)%4的自然对数,logl0(4)是以10为底,log2(4)
是以2为底
8.矩阵的运算
»/%A的转置
»det(A)%A的行列式,A必须是方阵
»rank(A)%A的秩
>>3*A%常数与矩阵相乘
»A+B%A、B必须是同维矩阵,和3+A进行比较
5
»A-B%A、B必须是同维矩阵,和3-A进行比较
>>A*B%和4.*8进行比较
»A/B%(和A./B进行比较)
»A\B%(和A.\B进行比较)
»A^2%A~2相当于A*A(和A."2进行比较)
三、练习与思考
(1)熟悉MATLAB的启动和退出
(2)自找2〜3个例子,熟悉数和数组的各种运算,以及它
们的各种函数值。
(3)自找2~3个例子,熟悉矩阵的加减乘除及其它运算,
注意和点运算的区别。
(4)输入一个矩阵A,取出A的第2行第1列的元素;取
出A的第1,3,4列的所有元素;让A的第1列和第3列互换;
删除A的第2列。
(5)产生3x4的1矩阵,产生4x2的随机矩阵,产生4
维的单位矩阵。
(6)将A的第2行元素扩大2倍,再增加3后作为A的第
3行元素。
6
1.2多项式和线性方程组的求解
一、实验目的
学会用MATLAB软件求解多项式和线性方程组
二、实验内容与要求
1.多项式的表达方式
(1)用降嘉排列的多项式的数向量表示
例1对多项式p=X,+2/-5x+6和s=x?+2x+3,用多项式的系数表不
为
»p=[l,2,0,-5,6]
»s=[l,2,3]
(2)由根创建多项式
»L[1,4,8]/已知多项式的根为(1,4,8)
>>p=poly(r)
P=
1-1344-32
»p=poly2sym(p)%将多项式的向量表示转变为符号形式
P二
x"3-13*x,'2+44*x-32
2.多项式的加减乘除
例2求例1中多项式p,s的和、差、积、商。
»p=[l,2,0,-5,6]
»s=[0,0,1,2,3]
7
»p+s%多项式加法,向量p,S必须同维,S扩维
成s=[0,0,1,2,3]
ans=
121-39
»p-s%多项式减法,向量p,s必须同维
»conv(p,s)%求多项式p和s的乘积,也是向量p,s的
卷积
问题:向量的除法,除数不能为零,这里s的第一个元素为零,
怎么办?
解决方法有两种,当s=[0,0,1,2,3]时,输入
[q,r]=deconv(p,s(3:5)),或把s仍输为s=[l,2,3]
,贝[q,r]:deconv(p,s)
»p=[l,2,0,-5,6];s=[l,2,3]
>>[q,r]=deconv(p,s)%求多项式p除以s的商q和余项r
q=
10-3
r=
000115
3.求多项式的根
»r=roots(p)%求多项式p的根,即方程p(x)=0的解。
>>pc=compan(p)%求多项式p的伴随矩阵。
例3求多项式p=/+2x+6的根
8
解:
»p=[l,2,6]
>>r=roots(p)
4.多项式的微分和赋值运算
>>d=polyder(p)%求多项式p的一阶微分
>>d=polyder(p,s)%求多项式p,s乘积的一阶微分
»[q,d]=polyder(p,s)%求多项式p,s商p/s的一阶微分,q
为分子,d为分母
>>y=polyval(p,a)%计算x=a时多项式p的值
例4求例1中多项式p的一阶导数,求x=l,3,5时多项式p(x)
的值。
解:
»p=[l,2,0,-5,6]
>>d=polyder(p)
结果为:
d=
460-5
»x=l:2:5权取3个值
>>y=polyval(p,x)%计算对应x的多项式p的3个值
结果为
y=
4126856
9
5.非齐次线性方程组求解
»X=A\b%用矩阵左除法求线性方程组AX=b的解
»C=[A,b]%由系数矩阵A和常数列向量b构成增广矩阵
C
»D=rref(C)%将C化成行最简行,则D的最后一列元素就
是所求的解
例5用矩阵左除法求解
»A=[2,3,5;3,6,8;6,5,4]
»b=[12;34;43]
»R=rank(A)
»X=A\b
结果为:
R=
3
X=
0.2759
12.3793
-5.1379
注意:b是列向量,求解前先检验A是否为满秩方阵
解二:用函数rref求解
»C=[A,b]
>>D=rref(C)
10
结果为:
D=
1.0000000.2759
01.0000012.3793
001.0000-5.1379
则D的最后一列元素就是所求的解,同解一结果相同
6.线性齐次方程组的求解
x[+2X2+2X3+x4=0
例6求解方程组的通解:2X,+X2-2X3-2X4=0
-x2-4X3-3X4=0
解:
2,2,1;2,1,一2,~2;1,-1,~4,-3]
>>forinatrat%指定有理式格式输出
>>B=null(A,'/)%求解空间的有理基
B=
25/3
-2-4/3
10
01
注意:formatrat是有理格式输出,小数用最接近的分数表示;
若输入formatlong则输出格式是长格式,显示15位数;缺省
格式是formatshort(短格式),显示到小数点后面4位。
7.利用矩阵的LU,QR和Cholesky分解求方程组的解
11
(1)LU分解
LU分解又称为Gauss消去分解,可把任意方阵A分解为下三角
矩阵L和上三角矩阵U的乘积,即A二LU,命令[L,U]=lu(A)可
求得L与U。
则方程AX=b变成LUX=b
所以,X=U\(L\b)
(2)Cholesky分解
若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三
角矩阵和其转置的乘积,即A=RxR,其中,R为上三角阵,命令
R=cho1(A)可求得R。
则方程AX=b变成R'xRxX=》
所以,x=R\(R\b)
(3)QR分解
对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,
R为上三角矩阵的初等变换形式,即A二QR,命令[Q,R]=qr(A)
可求得QR
则方程AX=b变形QRX=b
所以,X=R\(Q\b)
说明:这3种分解,在求解大型方程组时很有用,其优点是运算
速度快、可以节省磁盘空间、节省内存。
例7用上述(1)(3)两种方法求解例5中的线性方程组。
解一:
12
»[L,U]=lu(A)
L=
1/38/211
1/210
100
U=
654
07/26
0029/21
»X=U\(L\b)
X=
8/29
359/29
-149/29
解二:
〉>[Q,R]=qr(A)
Q二
-2/7-361/1469-1495/1614
-3/7-351/422271/768
-6/71127/2264341/2577
R=
-7-54/7-58/7
13
0-4625/1428-4130/701
00-1361/1064
»X=R\(Q\b)
X=
8/29
359/29
-149/29
三、练习和思考
(1)输入任意两个多项式,并进行加减乘除运算,注意它们
的结果
(2)求上面的两个多项式的根,并进行逆运算
(3)求上面的两个多项式的一阶导数,并求x:0:0.2:2对应
多项式的值。
(4)求解下列线性方程组
+/+3升一工4二-2
x}-4X2+2X3=0
x,-x3+x4=l
V2X2-x3=0
玉+/+2X+2X=4
34-%1+2%—W=0
-x2+x3-x4=0
14
1.3符号运算
一、实验目的
学会MATLAB符号运算的基本功能
二、实验内容与要求
1.字符型变量、符号变量、符号表达式、符号方程的建立
用单引号设定字符串变量的方法如下:
例1
»a='u+4'%定义a为字符型变量
a=
u+4
创建字符型变量有如下两种方法。
方法一:用命令sym(一)创建单个符号变量、符号表达式、符
号方程。
15
例2
>>x=sym('m+n+i')%定义x为符号型变量
x=
m+n+i
>>y=sym('d*x2+x-4')%定义y为符号表达式
y=
d*x~2+x-4
>>e=sym(,a*x"2+b*x+c=0,)%定义e为符号方程
e=
a*x"2+b*x+c=0
问题:继续输入a⑵,x⑵,dot加e(a),dowb/e(x)(命令是将符号变量
或字符变量转换为数值变量),找出字符型变量和符号型变量之
间的区别和联系。
方法二:用命令syms创建多个符号变量、符号表达式。
例3
>>symsabxy%定义a,b,x,y为符号变量,
>>s=a*x~4+b*cos(y)-x*y%定义s为符号表达式
s=
a*x-4+b*cos(y)-x*y
注意:sym(")中的单引号不要漏,syms后的符号变量之间不
能用逗号,用syms不能建立符号方程。
2.合并同类项
16
格式:collect(S)%是对S中的每一函数,按缺省变量x的
次数合并系数。
collect(S,v)%是对制定的变量v计算,操作同上。
例4
»symsxy%定义x,y为符号变量
>>Rl=collect((exp(x)+x)*(x+2));%结果为
x2+(exp(x)+2)*x+2*exp(x)
>>R2=collect((x+y)*(x"2+y2+1),y);%结果为
y^3+x*y^2+(x^2+l)*y+x*(x12+l)
3.复合函数计算
格式:compose(f,g,x,y)%返回复合函数/[g(y)],其中,/=/(x),g=g(y)
例5
>>symsxy
»f=l/(l+x"2*y);g=sin(y);
»C=compose(f,g,x,y)%结果为1/(1+sin(y)-2*y)
问题:例1.19中若C=compose(/,g,y,x),结果如何?
C=compose^,g,y,x,t),结果又如何?
4.符号表达式的展开
格式:R二expand(S)%展开符号表达式S中每个因式的乘积。
例6
>>symsxyt
>>E=expand((x-2)*(x-4)*(y-t))%结果为
17
x-2*y-x2*t-6*x*y+6*x*t+8*y-8*t
5.符号因式分解
格式:factor(S)%S可以是正整数、符号表达式或符号
整数。
例7
>>symsxy
>>Fl=factor(x4-y4)%结果为(x-y)*(x+y)*(x°2+y-2)
问题:若F2=factor(sym('12345678901234567890')),结果
如何?
F2=(2)*(3厂2*(5)*(101)*(3803)*(3607)*(27961)*(3541),分
解为质因数之积。
6.符号表达式的通分
格式:[N,D]:numden(S)%将符号表达式S中的每一元素进行
通分,其中N为分子的表达式,D为分母的表达式。
例8
>>symsxy
>>[N,D]=numden(x/y+y/x)%结果为N=x2+y"2,D=x*y
6.符号表达式的化简
7.格式:R=simplify(S)%运用多种恒等式转换对符
号表达式S进行综合化简。
例9
>>symsxabc
18
>>R=simplify(exp(c*log(sqrt(a+b))))%结果为
(a+b)"(l/2*c)
8.搜索符号表达式的最简形式
格式:r=simple(S)%运用包括simplify在内的各种指令找
出符号表达式S的代数上的最简短形式,多次使用,可找到最少
字母的简化式。
例io化简A=A+4+-+8
Vxxx
>>symsx
»f=(l/x"3+6/x"2+12/x+8)(1/3);
>>fl=simple(f),f2=simple(f1)
fl=
(2*x+l)/x
f2=
2+1/x
问题:分别用simple,simplify命令两次化简加=cosx+口liK,
试比较命令simple,simplify命令之间的区别和联系。
9.将复杂的符号表达式显示成我们习惯的数学书写形式
格式:pretty(S)%用缺省的线型宽度79显示符号矩阵S中的
每一元素。
例11
»y=sym(,log(x)/sqrt(x)J;
19
>>dy=diff(y)
>>pretty(dy)
计算结果为:
1/x"(3/2)-l/2*log(x)/x"(3/2)
10.函数的反函数
格式:g=finverse(/)%返回函数F的反函数,其中F为单值
的一元数学函数,如/=/(x)。若/'的反函数存在,设为g,则有
g"(x)]=x。
例12
»f=sym(,l+3*x,);
>>v=finverse(f)%结果为T/3+l/3*x
n.符号表达式求和
格式:r=匕a,b)%对S中制定的符号变量y从a到。求和。
例13
>>symsn
>>r=symsum(n"2,1,n)%结果为
l/3*(n+lL3T/2*(n+l厂2+l/6*n+l/6
>>simple(r)%上式化简为l/6*n*(n+1)*(2*n+l)
问题:若4=1,3,5,7;5,8,3,6;2,0,9,7]s“m(A)结果如何(按列求和)?
12.确定符号表达式中或矩阵中的符号变量
格式:r=findsym^%以字母表的顺序返回表达式S中所有符
20
号变量(除了,•与/)。若S中没有任
何的符号变量,则findsym返回一空
字符串。
r=findsym(S,n)%从S中返回靠x最近的n个符号变量,若〃
大于S中符号变量的个数,则按字母
表的顺序返回符号变量。
例14
>>symsaxyzt
>>sl=findsym(x+i*y-j*z+eps-nan)
>>s2=findsym(a+t-y,2)
>>s3=findsym(a+t-y,4)
si=
NaN,x,y,z
s2二y,t
s3=
a,t,y
13.置换符号变量
格式:subs(S,old,new)%用〃evv置换S中的o/d°
例15
>>symsaxyt
>>S=a*sin(x)+y;
>>Sl=subs(S,x,t)
21
>>S2=subs(S,x,pi/3)
结果为:
SI=
a*sin(t)+y
S2=
l/2*a*3«l/2)+y
14.字符变量、符号变量和数值变量之间的转换
格式:doubled%若S是字符变量,转换为S中相应字符的ASCII
值;若S是符号变量,转化为数值形式,若
有非数字符号(除m,n,i,j),则给出错误信息。
"2nu似S)%将字符变量转换为数值变量
num2str(x)%将数值变量转换为变量字符
sym(f)%将/转换为符号变量
digits^%设置返回有效数字个数为d的近似解精度
vpa(S,d)%求符号表达式S在精度预加⑷下的数值解
eval(S)%执行符号表达式S的功能
例16
>>symsx
>>t=l+x;x=l/3
>>s=eval(t)%结果为1.3333
>>vpa(s,7)%结果为1.333333,vpa(t,7)结果为
1.+x
22
>>sym('0,3,)%结果为0.3
>>sym(0.3)%结果为3/10
>>double(s)%结果为1.3333,double(t)是不合法
的
三、练习与思考
(1)化间:sin2acos«sina/(I+cos2a)/(I+cos«)/(I-cosa)
(2)求证:cos4a-4cos2a+3=8sin4a
(3)求(3x+2/3)6展开式中系数最大的项
(4)因式分解:asin2x-(2a2-fz+l)sinx+2a-l
(5)求心ink乃,》,£一
k=0k=0k=0卜"
1.4二维绘图
23
一、实验目的
学习MATLAB软件中二维绘图的方法。
二、实验内容与要求
1.基本命令
格式1:plot(X,Y)
潮:以X,y对应元素为坐标绘二维图,注意,x,Y的维数要匹配。
例1
>>x=0:pi/18:2*pi;%给出横坐标
>>y=sin(x);%计算出纵坐标
»Plot(x,y)%绘制图形,如图1.1所示
图1.1二维绘图
I咽:当X=[1,5,3,7;3,6,8,4;9,6,1,5],Y=[2,5,7,4;6,8,4,1;8,0,4,2]时,命令plot(X,Y)画
出几条线,如何画出的?当X=[1,5,3,7],丫=[2,5,7,4;6,8,4,1;8,0,4,2]时,有何
规律?当X=1,5,3卜=[2,5,7,4;6,8,4,1;8,0,4,2]时,又有何规律?
格式2:p.(y)%若N为m维向量,则等价于p.(x,y),其中,X
—1:mo
格式3:〃/“的,丫"加6印"1,*2,丫2,乙加6即6,2・・,)%将按顺序分别回出由3
24
个参数定乂Xj,匕,LinespeCj的线条,其中,参数Linespec,指明了线条的
类型,标记符号,和画线用的颜色。
说明:(1)线型,有实线,虚线,划线,点划线,例如,'-'就
表示画实线。
(2)线条宽度LineWidth,取值为整数,例如,
'LineWidth',2就表示线宽为两个像素。
(3)线条颜色,常用8种颜色,例如,'b—,就表示画蓝
色划线。
(4)标记类型,表示数据点标记的类型,常见13种,例
如就表示红色星号。
(5)标记大小MarkerSize制定标记符号的大小尺寸,取
值为整数(单位为像素).
(6)标记面填充颜色'MarkerFaceColor'制定用于填充
标记符面的颜色,颜色配比方案见表L10,例如,
'MarkerFaceColor',[o,i,o]就表示标记面填绿色。
(7)标记周边颜色,例如,"MarkerFaceColor?,'k'表
示周边用黑色,以上参数意义详见表1.6〜1.10
例2
>>t=0:pi/20:2*pi;
>>plot(t,t.Mos(t),'r*')
>>holdon
>>plot(exp(t/100).*sin(t-pi/2),'-mo')
25
»holdoff图形结果如图1.2所示,注意holdon表示继续在
当前图形上画图。
图1.2例1.49图形结果
2.函数绘图
格式:function',limits)%在制定的范围limits内ifi]出函数名为
function的一兀函数图形,其中,
lim加是一个制定X轴范围的向
量[xmin,xmax]或者是X轴和y轴
的范围的向量
[xmin,xmax,ymin,ymax]
例3
»fplot('sin(3*x)',[0,pi])%画出x在0~pi
之间的y=sin3x的图形
»fplot('[sin(x),cos(x)[-2*pi,2*pi])%在同一张图
上绘制正弦曲线
3.符号函数的绘图
格式:ezplot(f,[a,b])%绘出符号函数/从a到人区间的图形。
26
例4
»y=sym('cos(x)));
>>ezplot(y,[-2*pi,2*pi])%画出x在-2],2乃之间的y=cosx的
图形。
4.对数图形
格式:loglog(X,y)%对苫轴乃,y轴的刻度用常用对数值(以
10M)o
semilogx(X,Y)%对x轴的刻度用常用对数值,而y轴为线
性刻度。
semilogy(X,Y)%对y轴的刻度用常用对数值,而x轴为线
性刻度。
例5
>>x=logspace(-1,2);
>>loglog(x,10*exp(x),'-s')
>>gridon
图形结果见图1.
27
图1.3例1.52图形结果
5.图形修饰与控制
>>axissquare%将图形设置为正方
形
>>axisequal%x,y轴单位刻度
相等
»title('字符串')%图形标题
>>axis([xmin,xmax,ymin,ymax])%x轴范围在
xmin~xmax,y轴在ymin~ymax
»xlabelC字符串')%x轴标注
»ylabelC字符串’)%y轴标注
»text(x,y,'字符串')%在(x,)1)处标注说
明文字
>>gridon%加网格线
>>gridoff%消除网格线
>>holdon%保持当前图形
»holdoff%解除holdon命令
>>legend('First','Second,,n)%对一个坐标
系上的两幅图形做出图例注解
>>subplot(m,n,p)%将当前窗口分成m行
n列区域,并指定在p区绘图
例6
28
>>subplot(2,2,1);x=0:pi/60:2*pi;plot(x,exp(-i*x))
>>subplot(2,2,2);fplot(,log(x)J,[10,2e3])
>>subplot(2,1,2);plot(x,sin(x),':b',x,cos(x),'-r')
>>legend('sin(x)','cos(x)’,1)
图形结果如图1.4所示。
注意:第一句exp(-i*x)中虚部被忽略;第二句中2e3表示2x103,不
能用2*e3表示;Q不能用而表示,而用k5表示。第三句中
subplot(2,1,2)巧妙的将第二行整个区域画一个图;第四句的参
数〃表示注解视窗的位置,详见表1.9
图1.4例1.53图形结果
例7将正弦曲线0~乃/2部分与轴包围的封闭图形填充为蓝色。
>>x=0:pi/60:2*pi;
>>y=sin(x);
>>xl=0:pi/60:pi/2
>>yl=sin(xl);
»plot(x,y,'-r')
29
>>holdon
»fill([xl,pi/2],[yl,0],'b')
11-------------,上•=---------------------------1-------------,---->----
081
0.6L
0.41
0.21
\/
-0.2\/
“\/■
.06
@8\/
结果如图1.5所示-,01234567
图1.5例1.54图形结果
问题:将上面最后一句分别改为
创(修,必,力’),川(3/2,匹,3*pi/2],[0,月,0],‘尸),
fill。+pi/2,yj加)情况有何变化?
问题:在图1.5中画出红色的直角坐标系,表示颜色的向量含义
见表1.10
三、练习与思考
(1)输入x=[2,4,1,6,8]W”(x,体会图形特点。
(2)在一幅图上画出两个周期的正弦曲线和余弦曲线,画
出坐标轴,加上各种图注,并在正弦曲线(05/2)和横轴之间填
充红色。
(3)在个窗口回出四幅图,分别绘制sin2x,tanx,Inx,10”的图
形,并加上适当的图形修饰。
附录:
30
表1.6线型
——一.
定•
义符
线型实线(缺省双划线虚线点划线
值)
表1.7线条颜色
定义符R(red)G(green)B(blue)C(cyan)
颜色红色绿色蓝色青色
定义符M(nagenta)Y(yelloe)K(black)W(white)
颜色品红黄色里便白色
表1.8标记类型
定义符+0字母)*•X
标记类加号小圆圈星号实卢八、、交叉号
型
定义符dV><
标记类棱型向上三向下三向右三向左三
型角形角形角形角形
定义符ShP
标记类正方形正六角正五角
型形星
表1.9legend参数中n的意
义
31
参数n意义参数n意义
0自动放在最3图形的左下
佳位置角
1图形的右上4图形的右下
方角
2图形的左上-1图形外右边
方
表1.10典型颜色配比方案
[R,G,B]
原色调配颜色
R(红色)G(绿色)B(蓝色)
111白色(white)
0.50.50.5灰色(gray)
000黑色(black)
100红色(red)
010绿色(green)
001蓝色(blue)
110黄色(yellow)
101洋红色
(magenta)
011青色(cyan)
0.500暗红色(dark
32
red)
10.620.4红铜色
(copper)
0.4910.83碧绿色
(aquamarine)
33
1.5微积分基本运算
一、实验目的
学会用MATLAB软件求高等数学中函数的极值、微分、积分的
方法。
二、实验内容与要求
1.函数的极限
格式:limit(F,x,a)%计算符号表达式F=F(x)的极
限值,当无一4时。
1imit(F,x,a,'right')%计算符号函数尸的右极限,当尤
1时。
limit(F,x,a,'left')%计算符号函数尸的左极限,当
x~*a~时‘°
【例1】
34
>>symsxathn;
»Ll=limit((cos(x)-l)/x)%在缺省状态下,计算当x
—0时的极限值
>>L2=limit(l/x3,x,0,'right')
>>L3=limit(1/x,x,0,'left')
>>L4=limit((log(x+h)-log(x))/h,h,0)
»v=[(1+a/x)"x,exp(~x)];
»L5=limit(v,x,inf,,left')
»L6=limit((1+2/n)"(3*n),n,inf)
计算结果为:
LI=
0
L2=
inf
L3=
-inf
L4=
1/x
L5=
[exp(a),0]
L6=
exp(6)
35
2、求单变量函数的极值
格式:x+fmin(F,a,/?)%计算在区间”6上函数尸取最小值时
的x值。
湖:在5.3及以上版本命令fmin已改为fminbnd,常用格式
如下:
X=fminbnd(F,a,&)%计算在区间4-6上函数/取最小
值时的x值。
[x,fval]=fminbnd(F,a,b)%计算在区间a-6上函数尸取
最小值加H和对应的X值。
例2求函数/(%)=2/一6/-18%+7在区间(—2,4)的极小值,并
作图。
>>f=inline(,2*x,3-6*x,2-18*x+7,);%建立内联
函数f(x),
»[x,fval]=fminbnd(f,-2,4);%求函数f的最小值
和对应的x值,
»fplot(f,[-2,4])
结果为:
x=
3.0000
fval=
—47.0000
如图1.12所示:
36
图1.12例1.62图形结果
注意用inline建立的函数f,在funbnd和fplot命令中
不用加单引号,而用M函数文件建立的函数则要加单
引号。
问题:如何求函数f的最大值?
3.函数的微分
格式:diff(s,'/,〃)%对符号表达式s中指定的符号
变量丫计算s的〃阶导数,在缺省状态
下,v=findsym(s),n=l
例3
>>symsxyt
>>Di=diff(sin(x"2)*y"2,2)%计算与Vsin/
dx
»D2=diff(Dby)外计算斗乂/布金
为[dr)
»D3=diff(d6,6)
计算结果为:
37
Di二
-4*sin(x2)*x-2*yC2+2*cos(x"2)*y"2
D2=
-8*sin(x"2)*xI2*y+4*cos(x°2)*y
D3=
720
问题1.26:试一下输入diff(”3*xA3-力*x\a,2),有什么错
误?为什么1.63中的diff(DI,y),y不可以
加单引号?(因为在'symsxyt'中已经
定义了符号变量y.)如果A是一个造成矩阵,
diff(A)有何意义(求每一列元素的差分)?
4.函数的积分
(1)quad法数值积分
格式:s=%近似地从a到b计算函数加1的数值
积分,误差为10-6
s=quad(fun,a,b,tol)%用指定的绝对误差tol代替缺省
误差。
s=qnad8(fim,a,b,…)%用图精度进行计算,效率可能比
quad更好。
说明:quad8命令在6.x版本用quadl代替。
s=quad(fun,a,b,…)
例4
38
>>fun=inline('3*x,2,/(x,-2*x,…2+3);%
构造一函数fun(x)=3*2—
>>SI=quad(fun,0,2)
>>S2=quadl(fun,0,2)
计算结果为:
SI=
3.7224
S2=
3.7224
注意:用inline构造函数比用function构造函数更简单;
命令quadl最后是字母1,不是数字lo
(2)梯形法数值积分
格式:T=trapz(x,y)%用梯形法计算丫在x点上
例5
>>x=-1:.1:1;
»r=l./(l+25*x/2);%注意这里用点计算。
»T=trapz(x,r);%计算函数y从T至U1的积
分。
计算结果为:
T=
0.5492
注意:步长取短,结果较精确。
39
(3)符号函数的积分
格式:R=int(S,v)%对符号表达式S中指定的符号变
量丫计算不定积分。
R=int⑸匕“⑼%对表达式S中指定的符号变量v计算
从a至心的定积分。
例6
»symsxztalpha
»11=int(-2*x/(l+x-3)-2)
>>I2=int(x/(l+z^2),z)
»I3=int(12,x,'a','b')%这里积分区
间a,b由于没有定义,所以要加单引号
>>I4=int(x*log(l+x),0,1)
>>I5=int([exp(t),exp(alpha*t)])
计算结果为:I1=
-2/9/(x+1)+2/9*lo晨x+1)T/9*log(x-2-x+1)-2/9*3]/2)*ata
n(1/3*(2*x-l)*3^(1/2))-2*9(2*x-l)/(x"2-x+l)
I2-x*atan(z)
I3=l/2*atan(z)*(b2-a"2)
I4=1/4
I5=[exp(t),l/alpha*exp(alpha*t)]
问题:输入/6=intCexp㈠人2)+log(”,l,10),结果较复杂,怎么办?
(这时常用eval命令进一步求数值解)
40
»I6=l/2*pi(1/2)*erf(10)+10*log(2)+
10*log(5)-9-l/2*pi"(l/2)*erf(1)
»I61=eval(16)
I61=
14.1653
5.泰勒级数展开
格式:taylor(/)%求出符号函数/在处的5阶麦克
劳林型泰勒展开式。
taylor(fn,v,,a)%求出符号函数/在V=a点的”-1阶麦
克劳林型泰勒展开式。
例7
>>symsax
>>f=a/(x-10);
>>yl=taylor(f,x,3)%求f在x=0处的2阶泰
勒展开式。
>>y2=taylor(f,3,x,4)%求f在x=4处的2
阶泰勒展开式。
计算结果为:
>>yl=
-l/10*a-l/100*a*x-l/1000*a*x"2
>>y2=
T/6*aT/36*a*(x-4)T/216*a*(x-4)-"2
41
6.傅里叶级数展开
MATLAB中没有专门用际傅里叶级数展开的命令,可编一个
M函数文件实现。
function[ao,an,bn]=mfourier(f)
sysmnx
aO=int(f,-pi,pi)/pi;
an=int(f*cos(n*x),-pi,pi)/pi;
bn=int(f*sin(n*x),-pi,pi)/pi;
例8
>>symsx
>>f=x"2+x;
>>[aO,an,bn]=mfourier(f)
计算结果为:
>>aO;
2/3*p/2
>>an=
2*(n2*pi2*sin(pi*n)-2*sin(pi*n)+2*
pi*n*cos(pi*n))/rT3/pi
>>bn=
-2*(-sin(pi*n)+pi*n*cos(pi*n))/n2/pi
进一步化简:
>>an=simple(an)结果为2/n*pi*
42
sin(pi*n)-4/pi/n'3sin(pi*n)+4/n2*cos(pi*n)
>>bn=simple(bn)%结果为2/pi/n"2*
sin(pi*n)-2/n*cos(pi*n)
再经手_L化间不难得到an=4*(-l)An/nA2,bn=2*(-l)A(n-l)/n
三、练习和思考
(1)求下列函数的极限:
y=(l+x)“在x=0处的极限值;y=In'x/x'在x趋向于正
无穷的极限值。
(2)求下列函数导数:
y=X3+4XJ+8,y=ax'+blogx,f=ma5-na2+mn(对
a求2阶导数)。
(3)用多种方法求下列积分,比较它们的结果:
£e""sin(r+f71-sin2xdx
1--222
i——edx\x\nxdx
后kJ
(4)求下列函数的泰勒展开式:
y=e%x=0处6阶麦克劳林型泰勒展开式。
y=x/sinxx=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论