文档库 最新最全的文档下载
当前位置:文档库 › matlab习题四答案

matlab习题四答案

matlab习题四答案
matlab习题四答案

习题四

1、从键盘输入一个4位数,按如下规则加密输出,加密规则:每位数字都加7,然后用和除以

10的余数来代替概数,一三位交换,二四位交换。

function[a1 a2 a3 a4]=jiami(s)

s=input('输入需要加密的数:');

x1=rem(s,10);

x2=fix(rem(s,100)/10);

x3=fix(rem(s,1000)/100);

x4=fix(s/1000);

x1

x2

x3

x4

a1=rem(x3+7,10);

a2=rem(x4+7,10);

a3=rem(x1+7,10);

a4=rem(x2+7,10);

a1

a2

a3

a4

运行:

>> jiami

输入需要加密的数:4567

x1 =

7

x2 =

6

x3 =

5

x4 =

4

a1 =

2

a2 =

1

a3 =

4

a4 =

3

2、分别用if和switch语句实现以下计算,其中a,b,c的值是从键盘输入。(1)用if函数;

function y=fangcheng(a,b,c,x)

a=input('inputa');

b=input('inputb');

c=input('inputc');

x=input('enterX:');

if (x>=0.5&x<1.5)

y=a*x*x+b*x+c;

elseif (x>=1.5&x<3.5)

y=a*sin(x)+x;

elseif (x>=3.5&x<5.5)

y=log10(abs(b+c/x))

else

disp('error');

end

> fangcheng

inputa5

inputb6

inputc7

enterX:2.4

ans =

5.7773

(2)用switch函数;function y=fangcheng2(a,b,c,x)

a=input('inputa');

b=input('inputb');

c=input('inputc');

x=input('enterX:');

switch fix(x/2)

case 0

y=a*x*x+b*x+c;

case 1

y=a*sin(x)+x;

case 2

y=log10(abs(b+c/x));

otherwise

>> fangcheng2

inputa5

inputb8

inputc66

enterX:5.3

ans =

1.3108

3、产生20个随机正数,输出其中小于平均值的偶数;a=randint(1,20,[30,100]);

sum=0;

for i=1:20

sum=sum+a(i);

end

j=sum/20;

for i=1:20;

if (rem(a(i),2)==0&a(i)

a(i)

end

end

>> qiuhe

ans =

42

ans =

30

ans =

44

ans =

50

ans =

34

4、输入20个随机整数,求出其中最大和最小的数。要求分别用循环结构和调用max和min函数来

实现。

(1)调用函数来实现

a=randint(1,20,[0,10000]);

max(a)

min(a)

运行:

>> zuizhi

ans =

7942

ans =

502

(2)用循环来实现

a=randint(1,20,[0,10000]);

for i=1:19

da=a(i);

if a(i+1)>a(i)

da=a(i+1);

end

end

da

for i=1:19

xiao=a(i);

if a(i+1)

xiao=a(i+1);

end

end

xiao

运行

>> zuizhi

da =

8704

xiao =

99

5、已知:……分别用循环结构和调用函数sum来求s的值。(1)引用函数来时现

for t=0:1:63;

a(t+1)=2^t;

end

sum(a)

>> xunhuan

ans =

1.8447e+019

(2)利用循环来实现

x=0;

for t=0:1:63;

a(t+1)=2^t;

x=x+a(t+1);

end

x

>> xunhuan

x =

1.8447e+019

6、当n分别取100、1000、10000时,求下列各式的值(1)x=input('输入精确的n值:');

s=0;

for n=1:x

k=(-1)^(n+1)*(1/n);

s=s+k;

end

运行:

>> diejia

输入精确的n值:100

s =

0.6882

>> diejia

输入精确的n值:1000

s =

0.6926

>> diejia

输入精确的n值:10000

s =

0.6931

>> log(2)

ans =

0.6931

(2)

x=input('输入精确的n值:'); s=0;

for n=1:x

k=(-1)^(n+1)*(1/(2*n-1)); s=s+k;

end

s

运行:

>> diejia

输入精确的n值:100

s =

0.7829

>> diejia

输入精确的n值:1000

s =

0.7851

>> diejia

输入精确的n值:10000

s =

0.7854

附:

>> pi/4

ans =

0.7854

(3)

x=input('输入精确的n值:');

s=0;

for n=1:x

k=1/(4^n);

s=s+k;

end

s

运行:

输入精确的n值:100

s =

0.3333

>> diejia

输入精确的n值:1000

s =

0.3333

>> diejia

输入精确的n值:10000

s =

0.3333

附:

>> 1/3

ans =

0.3333

(4)x=input('输入精确的n值:'); s=1;

k=((2*n)^2)/((2*n-1)*(2*n+1));

s=s*k;

end

s

>> diejia

输入精确的n值:100

s =

1.5669

>> diejia

输入精确的n值:1000

s =

1.5704

>> diejia

输入精确的n值:10000

s =

1.5708

程序二

x=input('输入精确的n值:');

s=1;

for n=1:x

k(n)=((2*n)^2)/((2*n-1)*(2*n+1));

end

prod(k)

附:

>> pi/2

ans =

1.5708

7、编写一个函数文件,求小于自然数n的裴波那非数列的各项。function f=pshulie(x)

for n=1:x

f(1)=1;

f(2)=2;

end

if n>=3

f(n)=f(n-1)+f(n-2);

end

end

运行:

>> pshulie(10)

ans =

1 2 3 5 8 13 21 34 55 89

8、编写一个函数文件,用于求两个矩阵的乘积和点成,然后在命令文件中调用干函数。

function[ y1 y2]=chengfa(a1,a2)

y1=a1.*a2;

y2=a1*a2;

y1

y2

运行:

>> chengfa([2 3;5 6],[12 34;67 32])y1 =

24 102

335 192

y2 =

225 164

462 362

9、递归调用。

10写出下列程序的输出结果。

(1)s=0;

a=[12 13 14;15 16 17;18 19 20;21 22 23];

for k=a

for j=1:4

if rem(k(j),2)~=0

s=s+k(j);

end

end

end

s

运行结果

s =

108

(2)文件一:

global x

x=1:2:5;

y=2:2:6;

ex=sub(y);

x

y

文件二:

function fun=sub(z) global x

z=3*x;

fun=x+z;

运行结果:

>> exe

x =

1 3 5 y =

2 4 6

matlab基础练习题带答案

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___。

matlab课后习题解答第二章

第2章符号运算 习题2及解答 1 说出以下四条指令产生的结果各属于哪种数据类型,是“双精度” 对象,还是“符号”符号对象 3/7+; sym(3/7+; sym('3/7+'); vpa(sym(3/7+) 〖目的〗 不能从显示形式判断数据类型,而必须依靠class指令。 〖解答〗 c1=3/7+ c2=sym(3/7+ c3=sym('3/7+') c4=vpa(sym(3/7+) Cs1=class(c1) Cs2=class(c2) Cs3=class(c3) Cs4=class(c4) c1 = c2 = 37/70 c3 = c4 = Cs1 = double Cs2 = sym Cs3 = sym Cs4 = sym 2 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认 为是自由符号变量. sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)') 〖目的〗 理解自由符号变量的确认规则。 〖解答〗 symvar(sym('sin(w*t)'),1) ans = w symvar(sym('a*exp(-X)'),1)

ans = a symvar(sym('z*exp(j*th)'),1) ans = z 5求符号矩阵???? ??????=3332 31 232221 131211 a a a a a a a a a A 的行列式值和逆,所得结果应采用“子表达式置换”简洁化。 〖目的〗 理解subexpr 指令。 〖解答〗 A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]') DA=det(A) IA=inv(A); [IAs,d]=subexpr(IA,d) A = [ a11, a12, a13] [ a21, a22, a23] [ a31, a32, a33] DA = a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31 IAs = [ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)] [ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)] [ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d = 1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31) 8(1)通过符号计算求t t y sin )(=的导数 dt dy 。(2)然后根据此结果,求- =0t dt dy 和2 π = t dt dy 。 〖目的〗 diff, limit 指令的应用。 如何理解运行结果。 〖解答〗 syms t

MATLAB试题解答

2.一单位反馈控制系统,若要求: (1)跟踪单位斜坡输入时系统的稳态误差为2。 (2)设该系统为三阶,其中一对复数闭环极点为-1±j1 求满足上述要求的开环传递函数。 利用MATALAB 完成以下操作: (1)求控制系统的单位阶跃响应、单位斜坡响应、单位加速度响应; (2)绘制控制系统的根轨迹,并判断系统的稳定性; (3)绘制控制系统的奈奎斯特图和Bode 图。 解:由于控制系统为单位反馈系统 则 H (s )=1 由条件一可知,输入信号R(s)= 21s 时,稳态误差为: 2) (10)()(1)(==→+=s sG s s H s G s sR Ess 由条件二可知,系统为三阶且有。两个极点s1=-1+j1 ;s2=-1-j1 则可得,开环传递函数为 ) 222(1)(++=s s s s G (1)求控制系统的单位阶跃响应: G=tf([1],[1, 2, 2, 0]); Step(G) title('单位阶跃响应'); grid

(2)控制系统的单位斜坡响应:z0=0; p0=[0, -1+j,-1-j]; k0=1; [num0,den0]=zp2tf(z0,p0,k0); g0=tf(num0,den0) g=feedback(g0,1); num=g.num{1}; den=[g.den{1},0]; sys1=tf(num,den) step(sys1)

(3)控制系统的单位加速度响应:z0=0; p0=[0, -1+j,-1-j]; k0=1; [num0,den0]=zp2tf(z0,p0,k0); g0=tf(num0,den0) g=feedback(g0,1); num=g.num{1}; den=[g.den{1} 0 0]; sys2=tf(num,den) step(sys2)

matlab课后习题及答案详解

第1章 MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成? MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装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章MATLAB概论 1.1与其他计算机语言相比较,MATLAB语言突出的特点是什么? 答:MATLAB语言有一下特点: 1、起点高。 2、人机界面适合科技人员。 3、强大而简易的作图功能。 4、智能化程度高。 5、功能丰富,可扩展性强。 1.2 MATLAB系统由那些部分组成? 答:MATLAB系统主要由开发环境、MATLAB数学函数库、MMATLAB语言、图形功能和应用程序接口五个部分组成。 1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。 1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上? 答:在MATLAB操作桌面上有五个窗口。在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口。在独立窗口的Desktop菜单中选择Dock...项就可以将独立的窗口重新放置到桌面上。

1.5 如何启动M文件编辑/调试器? 答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。 1.6 存储在工作空间中的数组能编辑吗?如何操作? 答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。 1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途? 答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。 1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file 菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。 1.9 在MATLAB中有几种获得帮助的途径? 答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器。 (2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到

matlab习题及答案

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 ,试求2222 22y f y x f x f y x ??+???-?? 10. 试求出下面的极限。 (1)??????-++-+-+-∞→1)2(1 161141121lim 2222n n Λ; (2))131211( lim 2 222π πππn n n n n n n ++++++++∞ →Λ 11. 试求出以下的曲线积分。 (1)?+l s y x d )(22,l 为曲线)sin (cos t t t a x +=,)cos (sin t t t a y -=, )20(π≤≤t 。

matlab例题

五、某公司投资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

matlab习题及答案2

MATLAB 基本运算 1.在MATLAB 中如何建立矩阵?? ?? ??194375,并将其赋予变量a ?>>a=[573;491] 2.在进行算术运算时,数组运算和矩阵运算各有什么要求? 进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数。 3.数组运算和矩阵运算的运算符有什么区别? 在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b 为矩阵乘,a.*b 为数组乘。 4.计算矩阵??????????897473535与??????????638976242之和。>>a=[535;374;798]; >>b=[242;679;836]; >>a+b ans = 7 779 1413151214 5.计算??????=572396a 与?? ????=864142b 的数组乘积。>>a=[693;275]; >>b=[241;468]; >>a.*b ans = 12 36384240 6.“左除”与“右除”有什么区别? 在通常情况下,左除x=a\b 是a*x=b 的解,右除x=b/a 是x*a=b 的解,一般情况下,a\b ≠b/a 。

7.对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。>>A=[492;764;357]; >>B=[372628]’; >>X=A\B X = -0.5118 4.0427 1.3318 8.已知:???? ??????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 >>a=[123;456;789]; >>a.^2 ans = 1 4916 253649 6481 >>a^2 ans = 30 364266 81961021261509.[]7.0802.05--=a ,在进行逻辑运算时,a 相当于什么样的逻辑量。 相当于a=[11011]。 10.在sin(x )运算中,x 是角度还是弧度? 在sin(x)运算中,x 是弧度,MATLAB 规定所有的三角函数运算都是按弧度进行运算。

matlab课后答案完整版

ones表示1矩阵 zeros表示0矩阵 ones(4)表示4x4的1矩阵 zeros(4)表示4x4的0矩阵 zeros(4,5)表示4x5的矩阵 eye(10,10)表示10x10的单位矩阵rand(4,5)表示4x5的伴随矩阵 det(a)表示计算a的行列式 inv(a)表示计算a的逆矩阵 Jordan(a)表示求a矩阵的约当标准块rank(a)表示求矩阵a的秩 [v,d]=eig(a)对角矩阵 b=a’表示求a矩阵的转置矩阵 sqrt表示求平方根 exp表示自然指数函数 log自然对数函数 abs绝对值 第一章 一、5(1) b=[97 67 34 10;-78 75 65 5;32 5 -23 -59]; >> c=[97 67;-78 75;32 5;0 -12]; >> d=[65 5;-23 -59;54 7]; >> e=b*c e = 5271 11574 -11336 664 1978 3112 (2)a=50:1:100 二、1 、x=-74; y=-27; z=(sin(x.^2+y.^2))/(sqrt(tan(abs(x+y)))+pi) z = 2、a=::; >> b=exp*a).*sin(a+ 3、x=[2 4; 5]; y=log(x+sqrt(1+x.^2))/2 y =4、a*b表示a矩阵和b矩阵相乘 a.*b表示a矩阵和b矩阵单个元素相乘A(m,n)表示取a矩阵第m行,第n列 A(m,:)表示取a矩阵第m行的全部元素 A(:,n)表示取a矩阵的第n列全部元素 A./B表示a矩阵除以b矩阵的对应元素, B.\A等价于A./B A.^B表示两个矩阵对应元素进行乘方运算A.^2表示a中的每个元素的平方 A^2表示A*A 例:x=[1,2,3]; y=[4,5,6]; z=x.^y z= 1 3 2 729 指数可以是标量(如y=2).底数也可以是标量(如x=2) 5、a=1+2i; >> b=3+4i; >> c=exp((pi*i)/6) c = + d=c+a*b/(a+b) d = + 第二章 二、4、(1) y=0;k=0; >> while y<3 k=k+1; y=y+1/(2*k-1); end >> display([k-1,y-1/(2*k-1)]) ans = 第三章 二1(1)

matlab典型例题

【例】水资源系统规划调度常应用系统分析方法处理,以一个水资源分配问题为例,讨论线性规划问题。例:有甲、乙两个水库同时给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章 MATLAB简介 1、MA TLAB的主要特点有:①语言简洁,编程效率高。②人机界面友善,交互性好。③绘图功能强大,便于数据可视化。④学科众多、领域广泛的MATLAB工具箱。⑤源程序的开放性。 MATLAB的典型应用领域有:①自动控制②汽车③电子④仪器仪表⑤生物医学⑥信号处理⑦通信等。 2、填空题 ⑴命令窗口、命令历史窗口、当前目录窗口 ⑵查阅、保存、编辑 ⑶清除图形窗、清除命令窗口中显示内容、清除MATLAB工作空间中保存的变量。 3、如果想查看某一变量具体内容或者对其修改操作,可以在工作空间中双击该变量名称,可以打开数组编辑器,在数组编辑器中可以查看变量的具体内容,也可以对其修改。如果想删除MATLAB内存中的变量,可以在工作空间中选中该变量,然后利用工作空间窗口的菜单命令或工具条中的快捷图标进行删除。 4、1+2+3+4+5+... (+ 后面可以直接跟...,也可以在+和...中加一个空格。) 6+7+8+9 1+2+3+4+5 ... (5后面必须跟一个空格,不能直接跟...,否则报错,这在预置一个+6+7+8+9 大数组时很重要。) 第2章矩阵与数值数组 1、填空题: ⑴非数、无穷大、机器零阈值,浮点数相对精度,eps= 2.2204e-016。 ⑵全下标、单下标。 2、阅读程序题: (本题主要考察数组的寻访、赋值和简单运算,提示:带;的语句不显示结果) ⑴ans = 2 3 7 Sa = 10 20 30 A = 1 20 5 30 9 10 4 6 8 10 ⑵ A = 1 3 5 7 9 11 13 15

2 4 6 8 10 12 14 16 ans = 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 A = 0 0 5 7 0 0 13 15 2 4 0 0 10 12 0 0 ⑶ ans = -1 -4 6 4 ans = 3 0 5 -2 ans = 3 6 9 12 ans = 3 6 9 12 3、A=magic(4); L=A<10 L = 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 1 4、省略。 第3章字符串、元胞和构架数组 1. 直接创建法:S1=['Where there is life,' 'there is hope. '] %注意第2行要加入6个空格使其与第一 行字符数相等,否则报错。 S2=str2mat('Where there is life,','there is hope.') S3=strvcat('Where there is life,','there is hope.') %后两种方法则不用考虑两行 字符的数目 2. 填空题:A(2,3);A{2,3} 3. 阅读程序题: ⑴subch = ABc12

matlab习题

1、标点符号;可以使命令行不显示运算结果,%用来表示该行为注释行。 2、x为0~4pi,步长为0.1pi的向量,使用命令x=0:0.1*pi:4*pi创建。4、输入矩阵A= 错误!未找到引用源。 ,使用全下标方式用A(2,2)取出元素 “-5”,使用单下标方式用A(5)取出元素“-5”。 5、符号表达式sin(2*a+t)+m中独立的符号变量为t。 6、M脚本文件和M函数文件的主要区别是M脚本文件没有函数定义和M函数文件有函数定义。 7. 设x是一维数组,x的倒数第3个元素表示为 ______x(_end-2_)________________;要在x的第36和37个元素之间插入一个元素154,使用的命令(集)为_x=x(_1:36,[154],37:end)_;设y为二维数组,要删除y 的第34行和48列,可使用命令_y(34,:)=[];y(:,48)=[]_; 8. 将变量x以Ascii文本格式存储到文件fname.txt,应使用命令__save _x_;将Excel文件data.xls读入WorkSpace并赋值给变量x,可使用命令 _x=xlsread('data.xls')_; 9. 在while表达式,语句体,End 循环语句中,表达式的值__非零__时表示循环 条件为真,语句体将被执行,否则跳出该循环语句; 10. 打开Matlab的一个程序文件fname.m,以添加的方式进行读写,应当使用命 令_fid= fopen('fname.m','w+'); 11.要从键盘读入一个字符串并赋值给变量x,且给出提示“Who is she?”,应使用命令__x=input(…Who is she??,?s?)_;使用fprintf()函数以含有2位小数的6位浮点格式输出数值变量weight到文件wt.txt,使用的命令(集)为fid = fopen(…wt.txt?,??,_); fprintf () ;12.设A= 错误!未找到引用源。,和B= 错误!未找到引用源。 和 C=错误!未找到引用源。均为m*n矩阵,且存在于WorkSpace中,要产生矩阵D=

MATLAB习题及答案 (入门)

习题 1, 计算?? ?? ??=572396a 与??? ???=864142b 的数组乘积。 a.*b ans = 12 36 3 8 42 40 2, 对于B AX =,如果??????????=753467294A ,???? ??????=282637B ,求解X 。 inv(a)*b ans = -0.5118 4.0427 1.3318 3, 已知:??? ? ? ?????=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。 a.*a ans = 1 4 9 16 25 36 49 64 81 >> a^2 ans = 30 36 42 66 81 96 102 126 150

4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。(应用sin,cos,tan.cot) >> sin(x./pi) ans = -0.1242 0.9826 0.2465 >> cos(x./pi) ans = -0.9923 -0.1857 0.9692 >> tan(x./pi) ans = 0.1252 -5.2915 0.2543 >> cot(x./pi) ans = 7.9894 -0.1890 3.9321 5, 将矩阵?? ????=7524a 、??????=3817b 和??? ???=2695c 组合成两个新矩阵: (1)组合成一个4?3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵 元素,第三列为按列顺序排列的c 矩阵元素,即 ?? ??? ???? ???237 912685 574 [reshape(a,4,1),reshape(b,4,1),reshape(c,4,1)] ans = 4 7 5 5 8 6 2 1 9 7 3 2 (2)按照a 、b 、c 的列顺序组合成一个行矢量,即

matlab练习题和答案

matlab练习题和答案 控制系统仿真实验 Matlab 部分实验结果 目录 实验一MATLAB基本操作..................................................................... .......................1 实验二Matlab 编程..................................................................... ...............................5 实验三Matlab 底层图形控制..................................................................... .....................6 实验四控制系统古典分析...................................................................... .......................12 实验五控制系统现代分析..................................................................... . (15) 实验六PID 控制器的设计..................................................................... ......................19 实验七系统状态空间设计...................................................................... .......................23 实验九直流双闭环调速系统仿真..................................................................... . (25) 实验一MATLAB基本操作

Matlab习题

习题 1 1. 执行下列指令,观察其运算结果, 理解其意义: (1) [1 2;3 4]+10-2i (2) [1 2; 3 4].*[0.1 0.2; 0.3 0.4] (3) [1 2; 3 4].\[20 10;9 2] (4) [1 2; 3 4].^2 (5) exp([1 2; 3 4]) (6)log([1 10 100]) (7)prod([1 2;3 4]) (8)[a,b]=min([10 20;30 40]) (9)abs([1 2;3 4]-pi) (10) [1 2;3 4]>=[4,3;2 1] (11)find([10 20;30 40]>=[40,30;20 10]) (12) [a,b]=find([10 20;30 40]>=[40,30;20 10]) (提示:a 为行号,b 为列号) (13) all([1 2;3 4]>1) (14) any([1 2;3 4]>1) (15) linspace(3,4,5) (16) A=[1 2;3 4];A(:,2) 2. 执行下列指令,观察其运算结果、变量类型和字节数,理解其意义: (1) clear; a=1,b=num2str(a),c=a>0, a= =b, a= =c, b= =c (2) clear; fun='abs(x)',x=-2,eval(fun),double(fun) 3. 本金K 以每年n 次,每次p %的增值率(n 与p 的乘积为每年增值额的百分比)增加,当增加到rK 时所花费的时间为 ) 01.01ln(ln p n r T += (单位:年) 用MA TLAB 表达式写出该公式并用下列数据计算:r =2, p =0.5, n =12. 4.已知函数f (x )=x 4 -2x 在(-2, 2)内有两个根。取步长h =0.05, 通过计算函数值求得函数的最小值点和两个根的近似解。(提示:求近似根等价于求函数绝对值的最小值点) ? 5. (1) 用z=magic(10)得到10阶魔方矩阵; (2) 求z 的各列元素之和; (3) 求z 的对角线元素之和(提示:先用diag(z)提取z 的对角线); (4) 将z 的第二列除以3;

matlab程序设计例题及答案

1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)

12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469

matlab总练习题(完整版)

>> vpa('pi',20) ans = 3.1415926535897932385 >> vpa('exp(1)',20) ans = 2.7182818284590452354 >> x=linspace(-pi,pi,21); >> y=sin(x) y = Columns 1 through 6 -0.0000 -0.3090 -0.5878 -0.8090 -0.9511 -1.0000 Columns 7 through 12 -0.9511 -0.8090 -0.5878 -0.3090 0 0.3090 Columns 13 through 18 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090 Columns 19 through 21 0.5878 0.3090 0.0000 >> k=1:1000; >> kk=1./k; >> kkk=kk./k; >> res=sum(kkk)-(pi^2)/6 res =

-9.9950e-04 %承接上题 >> sum(kk)-log(1000) ans = 0.5777 >> power(1+eps,1/eps) ans = 2.7183 >> a=rand(2,3) a =

0.8147 0.1270 0.6324 0.9058 0.9134 0.0975 >> x=a(1,:) x = 0.8147 0.1270 0.6324 >> y=a(2,:) y = 0.9058 0.9134 0.0975 >> norm(x) ans = 1.0391 >> norm(y) ans = 1.2900 >> acos(dot(x,y)/norm(x)/norm(y)) ans = 0.8189 >> rand(3,3) ans = 0.2785 0.9649 0.9572 0.5469 0.1576 0.4854 0.9575 0.9706 0.8003 >> det(ans) ans =

MATLAB复习题(答案仅供参考)1

一、填空题 1. MATLAB命令窗口中可用clear 命令清除工作区中的变量;用clc 命令清除命令窗口中的内容。 2. MATLAB中的运算符包括数学运算符、矩阵运算符、数组运算符。 3 MATLAB的含义为矩阵运算。 4. MATLAB中的函数类型有嵌套函数、主函数、子函数、私有函数和匿名函数。 5. MATLAB中用系统预定义的特殊变量nargin 表示函数输入参数个数。 6. size命令的功能确定数组大小。 7. MATLAB中用linspace 符号定义单元数组。 8. MATLAB中用hold on 命令打开图形保持功能。 9 MATLAB中如果一个变量名为123,该变量名是否合法否(填是或否)。 10. MATLAB中用inv 函数完成矩阵的求逆运算,用det 函数求矩阵的行列式。 11.已知C={2+5i,’Hi’;1:4,[1 2]} 输入s=C(3) 即s=__'_Hi__'___. 12.先输入P=struct(‘name’,’Jack‘,’num’,43) ,再输入s= 即s=___Jack___. 13.当x=[ 1 2 3; 4 5 6] , y=[ 5 8; 5 8 ] 时,__不能__(能﹨不能)使用plot 命令绘图。 14.sym 或syms _能_______(能﹨不能)创建符号矩阵。 15.已知x=3:2:24,则x有__11_个元素。 结构的开始是“if”命令,结束是_end____命令。 17.已知x为一个向量,计算ln(x)的MATLAB命令是计算_log(x)___。 18.命令:>>subplot(3,3,x)中有__9_个子图。 19.已知s=‘显示“hey”’,则s的元素个数是___9__。 y=f() global W W=2 y=f1(5) function y=f() global W y=w+W 创建以上函数文件,在命令窗口中运行“y=f”命令则显示__出错___。 21. MATLAB中用find 函数查找数组中的非零元素,用sort 函数对数组进行排序。 22. MATLAB中的M文件包括M脚本文件和M函数文件。 23. MATLAB中用系统预定义的特殊变量eps 表示浮点数的精度。 24. MATLAB中8位有符号整数用int8 定义。 25. MATLAB中小括号、转置运算符和冒号运算符,具有最高优先级的为转置运算符。 26. MATLAB中用系统预定义的特殊变量nargout 表示函数输出参数个数。 27. MATLAB中用% 符号表示其后为程序注释。 28. 已知矩阵A,则矩阵A的共轭转置可表示为A’。 29. MATLAB中用grid on 命令显示坐标轴下的网格线。 30. MATLAB中如果一个函数名为test,该函数名是否合法是(填是或否)。

matlab习题(1)

1.输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MA TLAB的max函数、min函数来实现。 a=rand(1,20); max1=max(a) %用max函数求最大值 min1=min(a) %用max函数求最大值 %以下用循环方法求解: max2=a(1); min2=a(1); for i=2:20 if a(i)>max2 max2=a(i); end if a(i)> a=rand(1,20) zuidazhi=max(a) zuixiaozhi=min(a) a = Columns 1 through 8 0.7513 0.2551 0.5060 0.6991 0.8909 0.9593 0.5472 0.1386 Columns 9 through 16 0.1493 0.2575 0.8407 0.2543 0.8143 0.2435 0.9293 0.3500 Columns 17 through 20 0.1966 0.2511 0.6160 0.4733 zuidazhi = 0.9593 zuixiaozhi =

0.1386 2. 求Fibonacci数列 (1)大于4000的最小项。 (2)5000之内的项数。 (1) function t=fibonacc1 f=[1,1]; n=2; while 1 f=[f,f(n-1)+f(n)]; n=length(f); if f(n)>4000 break; end end t=f(n); return (2) function n=fibonacc2 f=[1,1]; n=2; while 1 f=[f,f(n-1)+f(n)]; n=length(f); if f(n)>4000 break; end end n=n-1; return 3. 写出下列程序的输出结果: s=0; a=[12,13,14;15,16,17;18,19,20;21,22,23]; for k=a for j=1:4 if rem(k(j),2)~=0 s=s+k(j); end end end

相关文档