matlab习题解答.doc
上机练习题一
班级: 姓名: 学号:
1.建立起始值=3,增量值=,终止值=44的一维数组x 答案: x=(3::44)
2.写出计算 Sin(30o )的程序语句. 答案: sin(pi*30/180) 或 sin(pi/6)
>
3.矩阵
??
??
?
?????=187624323A ,矩阵
??
??
?
?????=333222111B ;分别求出B A ?及A 与B
中对应元素之间的乘积.
答案:A = [3,2,3; 4,2,6; 7,8,1]
B = [1,1,1; 2,2,2; 3,3,3] A*B ;A.*B
4计算行列式的值1
876
24323=A 。答案:det(A)
5对矩阵
??
??
?
?????=187624323A 进行下述操作。
(1)求秩。答案:rank(A) (2)求转置。答案:A'
(3) 对矩阵求逆,求伪逆。答案:inv(A) ,pinv(A) !
(4) 左右反转,上下反转。答案:fliplr(A),flipud(A)
(5) 求矩阵的特征值. 答案:[u,v]=eig(A) (6) 取出上三角和下三角. 答案:triu(a) tril(a)
(7)以A 为分块作一个3行2列的分块矩阵。答案:repmat(a)
6 计算矩阵
????
??????897473535与
????
?
?????638976242之和。
>> a=[5 3 5;3 7 4;7 9 8];
>> b=[2 4 2;6 7 9;8 3 6]; >> a+b 7 计算??
????=572
396
a 与??
????=864
142
b 的数组乘积。
>> a=[6 9 3;2 7 5];
,
>> b=[2 4 1;4 6 8];
>> a.*b ans =
12 36 3 8 42 40
8 已知:
??
??
?
?????=987654321a ,分别计算a 的数组平方和矩阵平
方,并观察其结果。 >> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans =
1 4 9 \
16 25 36
49 64 81 >> a^2 ans =
30 36 42 66 81 96 102 126 150
上机练习题二
¥
班级: 姓名: 学号:
1 对于B AX =,如果
??
??
?
?????=753467294A ,
????
?
?????=282637B ,求解X 。
>> A=[4 9 2;7 6 4;3 5 7];
>> B=[37 26 28]’;
>> X=A\B X =
)
2 角度[]604530=x ,求x 的正弦、余弦、正切和余切。 >> x=[30 45 60]; >> x1=x/180*pi; >> sin(x1) ans =
>> cos(x1) ans =
;
>> tan(x1)
ans =
>> cot(x1) ans =
3 将矩阵??
?
???=75
24
a 、??????=3817
b 和??
?
???=2695c 组合成两个新矩阵: (1)组合成一个43的矩阵,第一列为按列顺序
排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即
??
???
???????237
912685574
(2)按照a 、b 、c 的列顺序组合成一个行矢量,即
(
[]
296531877254
答案:a=[4 2;5 7]; b=[7 1;8 3]; c=[5 9;6 2]; % (1)
>> d=[a(:) b(:) c(:)] d =
4 7
5 5 8
6 2 1 9 &
7 3 2
% (2)
>> e=[a(:);b(:);c(:)]' e =
4 5 2 7 7 8 1 3 5 6 9 2
或利用(1)中产生的d >> e=reshape(d,1,12)
ans =
4 5 2 7 7 8 1 3 5 6 9 2
4求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。 \
>> p=poly([1 2 3 4]);
>> polyvalm(p,8) ans = 840
5求方程0
23973234
=-++x x x
的全部根。
p=[3,7,9,0,-23]; %建立多项式系数向量 x=roots(p) %求根
上机练习题三
班级: 姓名: 学号: 1、 设x 是数组,求均值和方差 @
解:函数文件如下:
function [xx,s]=func1(x)
n=length(x); xx=sum(x)/n;
s=sqrt((sum(x.^2)-n*xx^2)/(n-1)); 命令窗口:
>> x=[1 2 3 4 5];[xx,s]=func1(x) 2、求满足100)1ln(0
>+∑=m n n 的最小m 值
s=0; n=0; "
while(s<=100)
s=s+log(1+n);
n=n+1; end n,s
3、用循环语句形成
Fibonacci
数列
,....
4,3,,12121=+===--k F F F F F k k k 。并验证极限2
511
+→
-k k
F F
(提示:
计算至两边误差小于精度1e-8为止) 解: 求Fibonacci 数列的函数文件: function f=fun(n)
if n<=2 f=1;
】
else
f=fun(n-1)+fun(n-2); end
验证极限的函数文件:
function [k,a]=funTest(e) a=abs(1-(1+sqrt(5))/2); k=2;
while(a>e) k=k+1;
a=abs(fun(k)/fun(k-1)-(1+sqrt(5))/2); ~
end
命令行:
>> [k,a]=funTest(10^-8) k = 21 a =
或者M 文件如下:
clear; F(1)=1;F(2)=1;k=2;x=0; e=1e-8; a=(1+sqrt(5))/2; ,
while abs(x-a)>e
k=k+1; F(k)=F(k-1)+F(k-2); x=F(k)/F(k-1); end a,x,k 4、分别用for 和while 循环结构编写程序,求出∑==6
101
23i i
K ,
并考虑一种避免循环语句的程序设计,比较各种算法的运行时间。
解:for循环结构:M文件
k=0;
for i=1:10^6
k=k+sqrt(3)*2^-i;
end
~
k
while循环结构:M文件
k=0;i=1;
while i<=10^6
k=k+sqrt(3)*2^(-i);
i=i+1;
end
k
非循环结构:M文件
i=1:10^6;
》
x=sqrt(3)*(2.^-i);
k=sum(x)
速度比较:>>tic;loop;toc %循环结构的执行时间
k =
Elapsed time is seconds.
>> tic;nonLoop;toc %非循环结构的执行时间
k =
Elapsed time is seconds.
~
上机练习题四
班级:姓名:
学号:
1、作图描述气温变化 >> x=0:24;
>>
y=[15,14,14,14,14,15,16,18,20,22,23,25,28,31,32,31,29,27,25,24,22,20,18,17,16]; >> plot(x,y)
{
2、作出下列函数图形
(1))2sin(2
2
--=x x x y 22≤≤-x (分别使用plot 和fplot 完成) 解:>> fplot('x^2*sin(x^2-x-2)',[-2 2]) %fplot 方法 >>
x=-2::2;y=x.^2.*sin(x.^2-x-2);plot(x,y) %plot 方法 如图()
(2)1942
2=+y x (椭圆 提示:用参数方程)
解:>> r=-pi::pi;x=2*cos(r);y=3*sin(r);plot(x,y) %如图()
,
解法二
x=-2:1/100:2;
y1=3*sqrt(1-x.^2/4); y2=-3*sqrt(1-x.^2/4);
plot(x,y1,'r-',x,y2,'r-'); axis equal tight;
图()
图()
(3)2
2y
=(抛物面)3
x
z+
x
,3< 解:(错误)>> x=[-3::3];y=[-3::3];z=x.^2+y.^2; plot3(x,y,z) %如图() ' (正确)>> xa=-3::3;ya=-3::3;[x,y]=meshgrid(xa,ya); %如图() >> z=x.^2+y.^2;mesh(x,y,z); >> surf(x,y,z) 图()error 图() (4)曲面133,3,622232 2 2 4 <<-<+---++=y x y x y x y x x z 解: >> xa=linspace(-3,3,100);ya=linspace(-3,13,100); >> [x,y]=meshgrid(xa,ya); >> z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6; >> mesh(x,y,z) ! >> surf(x,y,z) (5)空间曲线20),2cos(,cos ,sin <<===t t z t y t x 解:>> t=linspace(0,2,50);x=sin(t);y=cos(t);z=cos(2*t); >> plot3(x,y,z) 《 (6)半球面 90 0,3600,cos 2,sin sin 2,cos sin 2≤≤≤≤===θφφθφθφz y x 解: >>a=linspace(0,2*pi,50);b=linspace(0,pi/2,50); >> [a,b]=meshgrid(a,b); >> x=2*sin(a).*cos(b);y=2*sin(a).*sin(b);z=2*cos(a); >> surf(x,y,z) (7)三条曲线合成图π<<-===x x y x t y x y 0,sin ),10sin(sin ,sin 3 21 解: >>x=linspace(0,pi,50);y1=sin(x); >> plot(x,y1);hold on; ' >> y2=sin(x).*sin(10*x); >> plot(x,y2); >> y3=-sin(x); >> plot(x,y3); >> hold off; 3、作下列分段函数图 ?? ? ??-<≤>-=1.11 .11.11.11.1x x x x y x=-5::5; for i=1:length(x) 、 if x(i)> y(i)=; elseif x(i)< y(i)=; else y(i)=x(i); end end plot(x,y); grid on; | 4、用MATLAB 函数表示下列函数,并作图。 ?? ? ??-≤++--≤+<--->+---=1),5.175.375.0ex p(5457.01 1),6ex p(7575.01),5.175.375.0ex p(5457.0),(222222y x x x y y x x y y x x x y y x p 解:建立M 文件pxy 如下: xa=-2::2;ya=xa; nx=length(xa);ny=length(ya); [x,y]=meshgrid(xa,ya); z=zeros(nx,ny); [a1,b1]=find(x+y>1); %第a1列b1行对应的x+y>1 (x对应列;y对应行) %第a1列对应的x值是xa(a1);第b1行对应的y 值是ya(b1) z((a1-1)*ny+b1)=*exp*ya(b1).^*xa(a1).^*xa(a1)); ! [a2,b2]=find(x+y<=1&x+y>-1); z((a2-1)*ny+b2)=*exp(-ya(b2).^2-6*xa(a2).^2); [a3,b3]=find(x+y<=-1); z((a3-1)*ny+b3)=*exp*ya(b3).^*xa(a3).^2+*xa(a3)); surf(x,y,z); 命令窗口: >> pxy 运行结果如右图: . 或者M文件如下: clear;close; xa=-2::2;ya=-2::2;[x,y]=meshgrid(xa,ya); z=zeros(size(x)); k1=find(x+y>1); z(k1)=*exp*y(k1).^*x(k1).^*x(k1)); k2=find(x+y<=1&x+y>-1); ! z(k2)=*exp(-y(k2).^2-6*x(k2).^2); k3=find(x+y<-1); z(k3)=*exp*y(k3).^*x(k3).^2+*x(k3)); mesh(x,y,z); 上机练习题五 班级:姓名:学号: 1、运行demo 解:>>demo 2、查询trapz的功能、用法、目录、程序结构、相同目录下其它文件 > 解:>> help trapz ――功能用法 >> type trapz――程序结构,源码 >> which trapz――所在目录 >> help C:\MATLAB6p5\toolbox\matlab\datafun――该目录下其它文件 3在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注“y=sin(x)”, “y=cos(x)”,x轴,y轴,标题为“正弦余弦函数图象”. x=linspace(0,4*pi,100); y=sin(x); plot(x,y); gtext('y = sin(x)');% 图形注解,注意要用鼠标定位 hold on; { y=cos(x); plot(x,y,'ro'); gtext ('y = cos(x)');% 图形注解 xlabel('x轴'); % x轴注解 ylabel('y轴'); % y轴注解 title('正弦余弦函数图象'); % 图形标题 4从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 sum=0; cnt=0; val=input('Enter a number (end in 0):'); 《 while (val~=0) sum=sum+val; cnt=cnt+1; val=input('Enter a number (end in 0):'); end if (cnt > 0) sum mean=sum/cnt end 5若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。 ~ for m=1:500 s=0; for k=1:m/2 if rem(m,k)==0 s=s+k; end end if m==s disp(m); end | end 上机练习题六 班级: 姓名: 学号: 1 假定数据点来源为:x e x x x f x sin )53()(52 -+-=,试根据生成的数据进行插值处理,得出较平滑的曲线。 x=0:.12:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,x,y,'o ') x1=0:.02:1;y0=(x1.^2-3*x1+5).*exp(-5*x1).*sin(x1); y1=interp1(x,y,x1); >> y2=interp1(x,y,x1,'cubic'); >> y3=interp1(x,y,x1,'spline'); >> y4=interp1(x,y,x1,'nearest'); ` >> plot(x1,[y1;y2;y3;y4],':',x,y,'o',x1,y0)或者plot(x1,[y1',y2',y3',y4'],':',x,y,'o',x1,y0) 2 用不同插值的方法计算sin(x)在pi/2的值 clear clc x=0::pi;%产生包含被插值点的采样点(做成一个向量) y=sin(x);%求出各采样点对应的样本值 y1=interp1(x,y,pi/2);%用默认的'linear'方法计算sin(pi/2) y2=interp1(x,y,pi/2,'nearest');%用默认的'linear'方法计算sin(pi/2) y3=interp1(x,y,pi/2,'cubic');%用三次多项式插值方法计算sin(pi/2) y4=interp1(x,y,pi/2,'spline');%用三次样条插值方法计算sin(pi/2) * y5=spline(x,y,pi/2);%直接用'spline'方法计算sin(pi/2),功能与y4相同 disp('各种方法的插值结果:') out=['y1=', num2str(y1) 'y2=',num2str(y2); 'y3=',num2str(y3)] out2=['y4=',num2str(y4) 'y5=',num2str(y5)] ~ 3求 ?????-=-=y x dt dy y x dt dx 224 的通解 [x,y]=dsolve('Dx=4*x-2*y','Dy=2*x-y', 't') %P149(3)的求解 [x,y]=dsolve('Dx=a*y','Dy=-b*x ', 'x(0)=x0', 'y(0)=y0', 't') y=dsolve('Dy=(b*x)/(a*y)', 'y(0)=y0','x'); 4 ] 相比较。的数值解,并与精确解求11)(2)0(10,)1(422'++=?????=≤≤+--=t t y y t t t y y 方法一: %微分方程的M 函数文件 function y=funt(t,y) y=(y^2-t-2)/4/(t+1); %以下是求解的脚本m 函数,可自由取名,然后在command 窗口调用该函数求解. ts=[0,10];%自变量的求解区间 y0=2;%初值条件 [t,y]=ode23('funt',ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程 y1=sqrt(t+1)+1;%求精确解对应点上的函数值 ? [t,y,y1]%以三列的形式显示结果,其中第一列为采样点t 对应的值,第二列为t 对应的数值解,第二列为t 对应的精确解。 方法二: %或者直接用内建函数编写待求的微分方程,在一个M 脚本文件里执行求解。 funt=inline('(y^2-t-2)/4/(t+1)') %内建函数编写待求的微分方程 ts=[0,10];%自变量的求解区间 y0=2;%初值条件 [t,y]=ode23(funt,ts,y0);%用2,3阶龙格库塔方法求‘funt’文件里的微分方程 y1=sqrt(t+1)+1;%求精确解对应点上的函数值 [t,y,y1] [ 5 绘制系统相平面图象。 ,求解微分方程组,并,,取模型的状态方程表示为3 8 2810)()()()()()()()()()()()(321233223211===-+-=+-=+-=βρσρσσβt x t x t x t x t x t x t x t x t x t x t x t x lorenz 第一种方法建立lorenz 函数模型的状态方程 function xp=lorenz(t,x)%建立lorenz 函数模型的状态方程 xp=[-8/3,0,x(2);0,-10,10;-x(2),28,-1]*x%表明x 是一个三维向量,前面是一个线性方程组的系数矩阵,xp%是一个三维的输出表示x(1),x(2),x(3)的一阶导数向量。 第二种方法建立lorenz 函数模型的状态方程 function xp=lorenz1(t,x)%建立lorenz 函数模型的状态方程 xp=[-8/3*x(1)+x(2)*x(3);-10*x(2)+10*x(3);-x(2)*x(1)+28*x Matlab 基础练习题 常量、变量、表达式 1、 MATLAB 中,下面哪些变量名是合法的?( ) (A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。 (A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( ) (A )eps (B )none (C )zero (D )exp 4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放 一个中文字符‘啊’需要占用2个字节。( 错,都是2个字节 ) 5、 判断:MA TLAB 中,i 和j ( 对 ) 6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。( 错,后面还有很多位小数 ) 7、 在MA TLAB 中,若想计算的5 1)3.0sin(21+= πy 值,那么应该在MA TLAB 的指令窗中 输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。 8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字 节。 9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。 数组 1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序 的逆序排列输出,应该使用下面的( )指令。 (A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB 的命令是( )。 (A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A) 3、 在MATLAB 中,用指令x=1:9生成数组x 。现在要把x 数组的第二和第七个元素都 赋值为0,应该在指令窗中输入( ) (A )x([2 7])=(0 0) (B )x([2,7])=[0,0] (C )x[(2,7)]=[0 0] (D )x[(2 7)]=(0 0) 4、 在MA TLAB 中,依次执行以下指令:clear;A=ones(3,4); A(:)=[-6:5];这时, 若在指令窗中输入指令b=A(:,2)',那么,MATLAB 输出的结果应该是( ) (A )b = -3 -2 -1 (B )b = -2 -1 0 1 (C )b = -5 -1 3 (D )b = -5 -2 1 4 5、 在MA TLAB 中,A = 1:9,现在执行如下指令L1 = ~(A>5),则MATLAB 的执行结果应 该是L1 =___ 1 1 1 1 1 0 0 0 0___。 第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 页脚内容1 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径? 在MATLAB中有多种获得帮助的途径: (1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器; (2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息; (3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数 (4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。 第2章MATLAB矩阵运算基础 页脚内容2 第1章 MATLAB 概论 1.1 与其他计算机语言相比较,MATLAB 语言突出的特点是什么? MATLAB 具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB 系统由那些部分组成? MATLAB 系统主要由开发环境、MATLAB 数学函数库、MATLAB 语言、图形功能和应用程序接口五个部分组成。 1.4 MATLAB 操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 在MATLAB 操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口成为独立窗口的Undock 按钮,点击Undock 按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view 菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 1.5 如何启动M 文件编辑/调试器? 在操作桌面上选择“建立新文件”或“打开文件”操作时,M 文件编辑/调试器将被启动。在命令窗口中键入edit 命令时也可以启动M 文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M 文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path 菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB 运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB 中有几种获得帮助的途径? 在MATLAB 中有多种获得帮助的途径: (1)帮助浏览器:选择view 菜单中的Help 菜单项或选择Help 菜单中的MATLAB Help 菜单项可以打开帮助浏览器; (2)help 命令:在命令窗口键入“help ” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息; (3)lookfor 命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数 (4)模糊查询:输入命令的前几个字母,然后按T ab 键,就可以列出所有以这几个字母开始的命令和函数。 注意:lookfor 和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help 命令显示详细信息。 第2章 MATLAB 矩阵运算基础 2.1 在MATLAB 中如何建立矩阵?? ? ???194375,并将其赋予变量a ? >> a=[5 7 3;4 9 1] 2.2 有几种建立矩阵的方法?各有什么优点? 可以用四种方法建立矩阵: ①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷; ②通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; ③由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; ④通过数据文件建立,该方法可以调用由其他软件产生数据。 2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b ) 习题: 1, 计算?? ????=572396a 与??? ???=864142b 的数组乘积。 2, 对于B AX =,如果???? ? ?????=753467294A ,??????????=282637B ,求解X 。 3, 已知:?? ?? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。(应用sin,cos,tan.cot) 5, 将矩阵?? ?? ??=7524a 、??????=3817b 和??? ???=2695c 组合成两个新矩阵: (1)组合成一个4?3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ?? ??? ???? ???237 912685 574 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []296531877254 6, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。(应用poly,polyvalm) 7, 求解多项式x 3-7x 2+2x +40的根。(应用roots) 8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。(应用poly,polyvalm) 9, 计算多项式9514124234++--x x x x 的微分和积分。(应用polyder,polyint ,poly2sym) 10, 解方程组???? ? ?????=??????????66136221143092x 。(应用x=a\b) 11, 求欠定方程组?? ? ???=???? ??5865394742x 的最小范数解。(应用pinv) 12, 矩阵???? ? ?????-=943457624a ,计算a 的行列式和逆矩阵。(应用det,inv) 13, y =sin(x ),x 从0到2π,?x =0.02π,求y 的最大值、最小值、均值和标准差。(应用max,min,mean,std) 14, 参照课件中例题的方法,计算表达式() 2 2 e 1053y x y x z ---=的梯度并绘图。(应用meshgrid, gradient, contour, hold on, quiver) 15, 用符号函数法求解方程a t 2+b*t +c=0。(应用solve) 16, 用符号计算验证三角等式:(应用syms,simple) 17, 求矩阵?? ? ? ??=2221 1211a a a a A 的行列式值、逆和特征根。(应用syms,det,inv,eig) 18, 因式分解:6555234-++-x x x x (应用syms, factor) 19, ? ??? ?? ?? =)sin()log(12 x x e x x a f ax ,用符号微分求df/dx 。(应用syms,diff) 20, 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为[0,2π]。(应用syms,ezplot) 21, 绘制曲线13++=x x y ,x 的取值范围为[-5,5]。(应用plot) 22, 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,在图中添加标题-at e =y ,并用箭头线标识出各曲线a 的取值,并添加标题-at e =y 和图例框。(应用plot,title,text,legend) 23 24, x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 MATLAB 考试试题(1) 产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A)B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里(output.xls),写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取60000.SH至600005.SH在2008年9月份的每日收盘价(提示:使用字符串函数)。 7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为0.0025,标准差为0.0208,资产现在价值为0.8亿,求5%水平下资产的10天在险价值(Var)。 9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。 五、某公司投资2000万元建成一条生产线。投产后,在时刻t 的追加成本和追加收益分别为3/225)(t t t G ++=(百万元/年),3/218)(t t H -=(百万元/年)。试确定该生产线在何时停产可获最大利润?最大利润是多少? 提示:利用函数?=T G H t R 0t 20-d ))t (-)t (()((百万元),由于H (t )-G (t )单调 下降,所以H (t )=G (t )时,R (t )取得最大利润。 5.解:构造函数f(t)=H(t)-G(t)=13-t-3t 2/3=0 ; 令t 1/3=x,则f(t)=-t 3-3t 2+13 可得矩阵P=[-1,-3,0,13] 求最佳生产时间的源程序如下: p=[-1,-3,0,13]; x=roots(p); t=x.^3 运行结果如下: t = 3.6768 +21.4316i 3.6768 -21.4316i 4.6465 再分别将t 的三个值带入函数f(t),比较大小后,得到最大利润与最佳生产时间。 求最大利润的程序代码如下: ① t=3.6768 +21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 25.2583 ② t=3.6768 -21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 25.2583 ③ t=4.6465; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 26.3208 比较以上三组数据,可知最佳生产时间t=4.6465年,可获得的最大利润 26.3208(百万元/年)。 clear; close; fplot('18-t^(2/3)',[0,20]);grid on;hold on; fplot('5+t+2*t^(2/3)',[0,20],'r');hold off; %发现t 约为4 以下各题均要求编程实现,并将程序贴在题目下方。 1.从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。 clc;clear; zzs(1)=input('请输入正整数:');k=1; n=0;%素数个数 while zzs(k)~=0 flag=0;%是否是素数,是则为1 for yz=2:sqrt(zzs(k))%因子从2至此数平方根 if mod(zzs(k),yz)==0 flag=1;break;%非素数跳出循环 end end if flag==0&zzs(k)>1%忽略0和1的素数 n=n+1;sus(n)=zzs(k); end k=k+1; zzs(k)=input('请输入正整数:'); end disp(['你共输入了' num2str(k-1) '个正整数。它们是:']) disp(zzs(1:k-1))%不显示最后一个数0 if n==0 disp('这些数中没有素数!')%无素数时显示 else disp('其中的素数是:') disp(sus) end 2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。编程求10000以内所有的完全数。 clc;clear; wq=[];%完全数赋空数组 for ii=2:10000 yz=[];%ii的因子赋空数组 for jj=2:ii/2 %从2到ii/2考察是否为ii的因子 if mod(ii,jj)==0 yz=[yz jj];%因子数组扩展,加上jj end end if ii==sum(yz)+1 wq=[wq ii];%完全数数组扩展,加上ii end end disp(['10000以内的完全数为:' num2str(wq)])%输出 3.下列这组数据是美国1900—2000年人口的近似值(单位:百万)。 (1)若. 2c + = y+ 与试编写程序计算出上式中的a、b、c; 的经验公式为 t at bt y (2)若.bt 的经验公式为 y= 与试编写程序计算出上式中的a、b; y ae t (3)在一个坐标系下,画出数表中的散点图(红色五角星),c + =2中 ax bx y+拟合曲线图(蓝色实心线),以及.bt y=(黑色点划线)。 ae (4)图形标注要求:无网格线,横标注“时间t”,纵标注“人口数(百万)”,图形标题“美国1900—2000年的人口数据”。 (5)程序中要有注释,将你的程序和作好的图粘贴到这里。 clf;clc;clear %清除图形窗、屏幕、工作空间 t=1900:10:2000; y=[76 92 106 123 132 151 179 203 227 250 281]; p1=polyfit(t,y,2);%二次多项式拟合 【例】水资源系统规划调度常应用系统分析方法处理,以一个水资源分配问题为例,讨论线性规划问题。例:有甲、乙两个水库同时给A、B、C三个城市供水,甲水库的日供水量为28万m3/d,乙水库的日供水量为35万m3/d,三个城市的日需水量分别为A≥10万m3/d,B≥15万m3/d,C≥20 万m3/d。由于水库与各城市的距离不等,输水方式不同,因此单位水费也不同。各单位水费分别为c11=2000元/万m3、c12=3000元/万m3、c13=4000元/万m3、c21=4500元/万m3、c22=3500元/万m3、c23=3000元/万m3。试作出在满足对三个城市供水的情况下,输水费用最小的方案。 设甲水库向三城市日供水量分别为x ll、x12、x13,乙水库向三城市日供水量分别为x2l、x22、x23。 建立约束条件: x11 + x21 ≥10 x12 + x22 ≥15 x13 + x23 ≥20 x11 + x12 + x13 ≤28 x21 + x22 + x23 ≤35 x11,x12,x13,x21,x22,x23,≥0 目标函数: fmin=c11x11+c12x12+c13x13+c21x21+c22x22+c23x23 这样的问题单纯求解是非常繁琐的,而MLTLAB求解是十分简单的,只要在命令行输入: 》f=[0.2 0.3 0.4 0.45 0.35 0.3]’; 》A=[-1 0 0 -1 0 0;0 -1 0 0 -1 0;0 0 -1 0 0 -1;1 1 1 0 0 0; 0 0 0 1 1 1]; 》B=[-10 -15 -20 28 35]; 》lb=zeros(6,1); 》[X,Zmin]=linprog(f,A,B,[],[],lb,[]) 最后得出x=[10 15 0 0 0 20]万m3,Zmin=12.5万元。 MatLab考试题题库(必做题)(带答案) 一, 1.请登陆美国 MathWorks 公司的网站,查看看现在大概有多少本 MATLAB-based books (以MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的 MATLAB-based books 最多中文书共有几本 答:1612本,数学方面的最多,中文书共有37本。 2.请在 MATLAB中直接输入下列常数,看它们的值是多少: a.i b.j c.eps d.inf e.nan f.pi g.realmax h.realmin 依次解为:ans = 0 + ans = 0 + ans = ans =Inf ans = NaN ans = ans = +308 ans = 3.试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。例如 regPolygon(8) 可以画出如下之正八边型: 解:新建文件如下: function y=regPolyfon(n) n=8;%要画的n边形 R=1; %圆的半径 t=0::2*pi; x=R*cos(t); y=R*sin(t); m=linspace(pi/2,5/2*pi,n+1); xz=R*cos(m); yz=R*sin(m); hold on plot(x,y,xz,yz); axis 'equal'; 4.一条参数式的曲线可由下列方程式表示: x = sin(t), y = 1 - cos(t) + t/10 当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本,画出此曲线在 XY 平面的轨迹。 解:新建: t = linspace(0, 4*pi); x = sin(t); y = 1-cos(t)+t/10; plot(x, y, '-o'); 5.当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。假设小圆轮的半径 r=2。 例2.1 >> muw0=1.785; >> a=0.03368; >> b=0.000221; >> t=0:20:80; >> muw=muw0./(1+a*t+b*t.^2) 例2.2 数值数组和字符串的转换 >> a=[1:5]; >> b=num2str(a); >> a*2 ans = 2 4 6 8 10 >> b*2 ans = 98 64 64 100 64 64 102 64 64 104 64 64 106 例2.9比较左除和右除求解恰定方程 >> rand('seed',12); >> a=rand(100)+1.e8; >> x=ones(100,1); >> b=a*x; >> cond(a) ans = 5.0482e+011 >> tic;x1=b'/a;t1=toc t1 = 0.4711 >> er1=norm(x-x1') er1 = 139.8326 >> re1=norm(a*x1'-b)/norm(b) re1 = 4.3095e-009 >> tic;x1=a\b;t1=toc t1 = 0.0231 >> tic;x1=a\b;t1=toc t1 = 0.0011 >> er2=norm(x-x1) er2 = 1.5893e-004 >> re1=norm(a*x1-b)/norm(b) re1 = 4.5257e-016 例2.14:计算矩阵的指数 >> b=magic(3); >> expm(b) ans = 1.0e+006 * 1.0898 1.0896 1.0897 1.0896 1.0897 1.0897 1.0896 1.0897 1.0897 例 2.18:特征值条件数 MATLAB考试试题(1) 产生一个 1x10 的随机矩阵,大小位于( -5 5 ),并且按照从大到小的顺序排列好!(注:要程序和运行结果 的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1 .请产生一个 100*5的矩阵,矩阵的每一行都是[12345] 2.已知变量: A= ’ ilovematlab;’B= ’ matlab’请,找出: ( A ) B 在 A 中的位置。 ( B )把 B 放在 A 后面,形成 C=‘ilovematlabmatlab ’ 3.请修改下面的程序,让他们没有for循环语句! A=[123;456;789]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4.请把变量 A=[123;456;789]写到文件里 (output.xls),写完后文件看起来是这样的123456789 5.试从 Yahoo 网站上获得微软公司股票的2008年 9 月的每日收盘价。 6.编写 M 文件,从 Yahoo网站批量读取60000.SH至 600005.SH在 2008年 9 月份的每日收盘价(提示:使用字符串函数)。 7.将金牛股份( 000937) 2005年12 月14日至 2006 年1 月10日的交易记录保存到Excel 中,编写程序将数据读入MATLAB 中,进一步将数据读入Access 数据库文件。 8.已知资产每日回报率为0.0025,标准差为 0.0208,资产现在价值为0.8亿,求 5%水平下资产的 10天在险价值 (Var)。 9.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用 MATLAB 中最简单的方法计算 b ,注意最简单哦。 产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A) B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里,写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取至在2008年9月份的每日收盘价(提示:使用字符串函数)。 7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为,标准差为,资产现在价值为亿,求5%水平下资产的10天在险价值(Var)。 =[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。 1、求下列联立方程的解 3x+4y-7z-12w=4 浅议matlab 的功能和应用 数值计算 1、编程求满足∑=>m i i 1 100002的最小m 值。 解: m=1; s=0; while s<=10000 s=s+2^m; m=m+1; end m=m-1; di sp('m='); disp(m); 运行结果: m= 13 2、编写一个函数,计算下面函数的值,给出标量x 的值,调用该函数后,返回y 的值。 function [y]=myfun1(x) 选择一些数据测试你编写的函数。 function y=myfun1(x) if x<=0 y=sin(x); elseif x>0&x<=3 y=x; else y=6-x; end ?? ???>+-≤<≤=3 ,630, 0,sin )(x x x x x x x y return ; 3、编写一个函数,给出一个向量],,[21n x x x x =,生成如下范德蒙矩阵。 function [v]=myvander(x)??? ???? ?????????---11 2112 2 22121 111 n n n n n n x x x x x x x x x 例如:>>v=myvander([2 3 4 5]) 得v= ????? ???????12564278251694543211 11 生成一些数据测试你写的函数。 function [v]=myvander(x) n=length(x); v(1:n)=1; for i=n+1:n*n a=i/n; r=mod(i,n); b=floor(a); if r==0 r=n; b=b-1; end v(i)=x(r)^b; end v=reshape(v,n,n)'; >> myvander([1 2 3]) ans = 1 1 1 Matlab 变量命名要符合什么样的规则? 用MATLAB 语句输入矩阵?? ??????? ???=14 23 14321234 4321A 和?? ??? ???? ???++++++++++++++++=i i i i i i i i i i i i i i i i B 41143223411423324132231414233241 如果给出A (5; 6) = 5 命令将得出什么结果? 假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵, 用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。 查阅命令函数“dot ”和“cross ”的作用及使用方法。 先构造矩阵????? ???? ???=10 5 017368 531A ;显示该矩阵的第3行第1列的元素;再显示该矩阵的第1、4行第2、3列的元素;将该矩阵第3行第2列元素改成8;添加1行1列使得第5行第4列的元素为9,其它元素为0. (1)矩阵每一行中的元素之间要用某个符号分隔,这个符号可以是( )。 A. 分号 B. 减号 C. 回车 D. 空格 (2)ones(n,m)函数是用来产生特殊矩阵的,由它形成的矩阵称为( )。 A. 单位矩阵 B. 行向量 C. 1矩阵 D. 列向量 (3)在 MATLAB 中,函数 log(x)是对 x 求对数,它的底是( )。 A. 2 B 10 C. x D. e (4) 当 a =-3.2,使用取整函数得出-4,则该取整函数是( )。 A. fix B. round C. ceil D. floor (5) 表达式 ax 3+by 2 改写成 MATLAB 的语句形式是( )。 A. ax3+by2 B. a*x3+b*y2 C. a×x3+b×y2 D. a*x^3+b*y^2 (6) 已知 a=0:1:4,b=5:-1:1,下面的运算表达式出错的是( )。 A. a+b B. a*b C. a'*b D. a./b (7) 将矩阵 a=[1 2 3;4 5 6;7 8 9]改变成 b=[3 6 9;2 5 8;1 4 7]的命令是( )。 A. b=a' B. b=flipud(a) C. b=mfliplr(a) D. b=rot90(a) 判断题 (1)使用函数 zeros(5)生成的是一个具有 5 个元素的向量。 (2)在 MATLAB 命令窗口直接输入矩阵时,矩阵数据要用中括号括起来,且元素间必 MATLAB考试试题(1) 产生一个1x10的随机矩阵,大小位于(-55),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[12345] 2.已知变量:A=’ilovematlab;’B=’matlab’请,找出: (A)B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3.请修改下面的程序,让他们没有for循环语句! A=[123;456;789]; [rc]=size(A); fori=1:1:r forj=1:1:c if(A(i,j)>8|A(i,j)<2) A(i,j)=0; end end end 4.请把变量A=[123;456;789]写到文件里(output.xls),写完后文件看起来是这样的 123456789 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取60000.SH至600005.SH在2008年9月份的每日收盘价(提示:使用字符串函数)。 7.将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中, 编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为0.0025,标准差为0.0208,资产现在价值为0.8亿,求5%水平下资产的10天在险价值(Var)。 9.a=[12345],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中 最简单的方法计算b,注意最简单哦。 实验二 DFS和DFT 一、实验目的 (1)加深对离散周期序列傅立叶级数(DFS)和离散傅里叶变换(DFT)基本概念的理解。 (2)掌握用Matlab语言求解周期序列傅里叶级数和离散傅里叶变换的变换和逆变换的方法。 (3)观察离散周期序列的重复周期数对频谱特性的影响,理解离散序列周期卷积及其线性卷积的区别 (4)了解有限长序列傅立叶变换(DFT)与周期序列傅里叶级数(DFS)、离散时间傅里叶变换(DTFT)的联系。 (5)了解使用FFT 计算有限长序列和无限长序列信号频谱的方法 二、实验原理 2.1 周期序列的傅里叶级数变换和逆变换 例:已知一个周期性矩形序列的脉冲宽度占周期的1/4,一个周期的采样点数为16点,显示3个周期的信号序列波形。要求: (1)用傅里叶级数求信号的幅度频谱和相位频谱 (2)求傅里叶级数逆变换的图形,与原信号图形进行比较 Matlab程序如下: N = 16; xn = [ones(1,N/4),zeros(1,3*N/4)]; xn = [xn xn xn]; n = 0:3*N-1; k = 0:3*N-1; Xk = xn*exp(-j*2*pi/N).^(n'*k); x = (Xk*exp(j*2*pi/N).^(n'*k))/(3*3*N); subplot(2,2,1),stem(n,xn); title('x(n)');axis([-1,3*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2),stem(n,abs(x)); title('IDFS|X(k)|');axis([-1,3*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,3),stem(k,abs(Xk)); title('|X(k)|');axis([-1,3*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk)); title('arg|X(k)|');axis([-1,3*N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]); 2.2 离散傅里叶级数变换和逆变换的通用子程序 由上面例子可知,周期序列进行傅里叶级数变换和逆变换,是依据变换公式进行程序编写的,无论信号如何变化,求解的公式总是一样的。因此,可以将其编写成通用的子程序。 (1)离散傅立叶级数变换通用子程序dfs.m function Xk = dfs(xn,N) n = 0:N-1; k = 0:N-1; WN = exp(-j*2*pi/N); nk = n'*k; Xk = xn*WN.^nk; 2. 用MATLAB 语句输入矩阵A 和B 3.假设已知矩阵A ,试给出相应的MATLAB 命令,将其全部偶数行提取出来, 赋给B 矩阵,用magic(8)A =命令生成A 矩阵,用上述命令检验一下结果是不是正确。 4.用数值方法可以求出∑=++++++==63 63622284212i i S ,试不采用循环的 形式求出和式的数值解。由于数值方法是采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。试采用运算的方法求该和式的精确值。 5.选择合适的步距绘制出下面的图形。 (1))/1sin(t ,其中)1,1(-∈t ; (2))tan(sin )sin(tan t t -,其中),(ππ-∈t 6. 试绘制出二元函数2 2 2 2 )1(1)1(1),(y x y x y x f z +++ +-= =的三维图和三 视图 7. 试求出如下极限。 (1)x x x x 1)93(lim +∞ →; (2)1 1lim 0-+→→xy xy y x ; (3)2 2)()cos(1lim 2 2 220 0y x y x e y x y x +→→++- 8. 已知参数方程???-==t t t y t x sin cos cos ln ,试求出x y d d 和3 /2 2d d π=t x y 9. 假设?-=xy t t e y x f 0 d ),(2 ,试求2 22222y f y x f x f y x ??+ ???-?? 10. 试求出下面的极限。 (1)??????-++-+-+-∞→1)2(1 161141121lim 2222n n ; (2))131211( lim 2222π πππn n n n n n n ++++++++∞ → 11. 试求出以下的曲线积分。 第1章MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么 MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 MATLAB系统由那些部分组成 MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 MATLAB操作桌面有几个窗口如何使某个窗口脱离桌面成为独立窗口又如何将脱离出去的窗口重新放置到桌面上 在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。 如何启动M文件编辑/调试器 在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 存储在工作空间中的数组能编辑吗如何操作 存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 命令历史窗口除了可以观察前面键入的命令外,还有什么用途 命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 在MATLAB中有几种获得帮助的途径matlab基础练习题带答案
matlab经典习题及解答
matlab经典编辑习题集及解答
MATLAB习题及参考答案经典.doc
Matlab考题题整理带答案
matlab例题
matlab经典编程例题
matlab典型例题
MatLab考试题题库(必做题)(带答案)
matlab典型例题
Matlab考题题整理带答案
Matlab 考题题整理 带答案
matlab的例题
MATLAB经典练习题
Matlab考题题整理带答案
【良心出品】matlab实验经典
matlab习题及答案
matlab课后习题及答案详解