当前位置:文档之家› MATLAB上机实验练习题答案

MATLAB上机实验练习题答案

MATLAB上机实验练习题答案
MATLAB上机实验练习题答案

数学建模

MATLAB上机实验练习题

1、给出一个系数矩阵A[2 3 4;5 4 1;1 3 2],U=[1 2 3],求出线性方程组的一个精确解。

2、给出两组数据x=[0 0.3 0.8 1.1 1.6 2.3]’y=[0.82 0.72 0.63 0.60 0.55 0.50]’,我们可以简单的

认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示。

3、解线性方程

4、通过测量得到一组数据:

5、已知一组测量值

6、从某一个过程中通过测量得到:

分别采用多项式和指数函数进行曲线拟合。

7、将一个窗口分成四个子窗口,分别用四种方法做出多峰函数的表面图(原始数据法,临近

插值法,双线性插值法,二重三次方插值法)

8、在同一窗口使用函数作图的方法绘出正弦、余弦、双曲正弦、双曲余弦。分别使用不同的

颜色,线形和标识符。

9、下面的矩阵X表示三种产品五年内的销售额,用函数pie显示每种产品在五年内的销售额

占总销售额的比例,并分离第三种产品的切片。

X= 19.3 22.1 51.6

34.270.3 82.4

61.482.9 90.8

50.5 54.9 59.1

29.4 36.3 47.0

10、对应时间矢量t,测得一组矢量y

采用一个带有线性参数的指数函数进行拟合,y=a0+a1e-t+a2te-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。

11、请创建如图所示的结构数组(9分)

12、创建如图所示的元胞数组。(9分)

13、某钢材厂从1990年到2010年的产量如下表所示,请利用三次样条插值的方法计算1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。要求写出达到题目要求的MATLAB 操作过程,不要求计算结果。

14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。

time=[2.5 5.0 7.5 10.0 13.0 17.0 20.0 30.0 40.0 50.0 60.0 70.0]

res=[0.29 0.56 0.77 1.05 1.36 1.52 2.00 2.27 2.81 3.05 3.25 3.56]

15、请在-2

()2

2y

x

xe

z+

-

=形成的曲面网线图。

16、请在同一窗口画出两条曲线,y1=sin(x),y2=cos(x),要求添加网格线,x轴标注Independent Variable X,y轴标注Dependent Variable Y1&Y2,标注标题Sine and Cosine Curve,在(1.5,0.3)处标注cos(x),坐标轴设定在x轴[0,2Π],y轴[-0.9,0.9]。

答案

1、A=[2 3 4;5 4 1;1 3 2];

U=[1 2 3]';

X=A\U

X =

-0.8148

1.6667

-0.5926

2、

t=[0 0.3 0.8 1.1 1.6 2.3]';

y=[0.82 0.72 0.63 0.60 0.55 0.50]';

E=[ones(size(t)) exp(-t)];

C=E\y

C =

0.4760

0.3413

x=0:0.01:2.5;

z=0.4760+0.3413*exp(-x);

plot(t,y,'O',x,z,'r:')

3、

A=[3 1 0 5;0 -6 7 3;0 4 3 0;2 -1 2 6];

Y=[2 4 7 8]';

X=A\Y

X =

-4.8247

1.3944

0.4741

3.0159

4、

t=[1 2 3 4 5 6 7 8 9 10]';

y=[4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005]'; E1=[ones(size(t)) exp(-t)];

C=E1\y

C =

3.1621

5.1961

E2=[ones(size(t)) t.*exp(-t)];

D=E2\y

D =

3.0039

5.0046

x=1:0.01:10;

y1=3.1621+5.1961*exp(-x);

y2=3.0039+5.0046*x.*exp(-x);

plot(t,y,'O',x,y1,'r:',x,y2,'b-')

p1=polyfit(t,y,2)

p1 =

0.0411 -0.6383 5.3937

p2=polyfit(t,y,3)

p2 =

-0.0041 0.1085 -0.9493 5.7443 y3=polyval(p1,x);

y4=polyval(p2,x);

plot(t,y,'O',x,y3,'r:',x,y4,'b-')

12345678910

6、

t=[0 0.2 0.4 0.6 0.8 1.0 2.0 5.0]';

y=[1.0 1.51 1.88 2.13 2.29 2.40 2.60 -4.00]';

p=polyfit(t,y,4)

p =

-0.0993 0.7935 -2.2841 2.9882 0.9995

E=[ones(size(t)) exp(-t)];

C=E\y

C =

-0.0565

2.5674

x=0:0.001:5;

y1=-0.0565+2.5674*exp(-x);

y2=polyval(p,x);

plot(t,y,'O',x,y1,'r:',x,y2,'b-')

00.51 1.52 2.53 3.54 4.55

7、

?001 function compare_interp( )

?002 %COMPARE_INTERP 不同插值运算的比较

?003

?004 % 原始数据

?005 [x,y] = meshgrid(-3:1:3);

?006 z = peaks(x,y);

?007 figure(1); clf

?008 surfc(x,y,z);

?009 title('原始数据')

?010 % 进行插值运算

?011 [xi, yi] = meshgrid(-3:0.25:3);

?012 zi1 = interp2(x,y,z,xi,yi,'nearest');

?013 zi2 = interp2(x,y,z,xi,yi,'linear');

?014 zi3 = interp2(x,y,z,xi,yi,'cubic');

?015 zi4 = interp2(x,y,z,xi,yi,'spline');

?016 % 通过可视化结果比较

?017 figure(2)

?018 subplot(2,2,1);surf(xi,yi,zi1);

?019 title('二维插值- ''nearest''')

?020 subplot(2,2,2);surf(xi,yi,zi2);

?021 title('二维插值- ''linear''')

?022 subplot(2,2,3);surf(xi,yi,zi3)

?023 title('二维插值- ''cubic''')

?024 subplot(2,2,4);surf(xi,yi,zi4)

?025 title('二维插值- ''spline''')

?026 % 可视化结果

?027 figure(3)

?028 subplot(2,2,1);contour(xi,yi,zi1) ?029 title('二维插值- ''nearest''')

?030 subplot(2,2,2);contour(xi,yi,zi2) ?031 title('二维插值- ''linear''')

?032 subplot(2,2,3);contour(xi,yi,zi3) ?033 title('二维插值- ''cubic''')

?034 subplot(2,2,4);contour(xi,yi,zi4) ?035 title('二维插值- ''spline'''')

?

8、

x=-pi:pi/4:pi;

y1=sin(x); y2=cos(x); y3=sinh(x); y4=cosh(x);

plot(x,y1,'rO:',x,y2,'b*-',x,y3,'gs--',x,y4,'k^-.')

-4

-3-2-101234

-15-10

-5

5

10

15

9、

X=[19.3 22.1 51.6;34.2 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 39.3 47]; x=sum(X) x =

194.8000 269.5000 330.9000

explode=[0 0 1]; pie(x,explode)

42%

10、

t=[ 0 0.3 0.8 1.1 1.6 2.3]';

y=[0.5 0.82 1.14 1.25 1.35 1.40]';

E=[ones(size(t)) exp(-t) t.*exp(-t)]

E =

1.0000 1.0000 0

1.0000 0.7408 0.2222

1.0000 0.4493 0.3595

1.0000 0.3329 0.3662

1.0000 0.2019 0.3230

1.0000 0.1003 0.2306

A=E\y

A =

1.3974

-0.8988

0.4097

x=0:0.01:2.5;

Y=1.3974-0.8988*exp(-x)+0.4097*x.*exp(-x);

plot(t,y,'O',x,Y,'r-')

00.51 1.52 2.5

11、

A=struct('name',{'江明顺','于越忠','邓拓'},'NO',{'071023','060134','050839'});

A(1).level=struct('height','176','weight','82')

A =

1x3 struct array with fields:

name

NO

level

A(2).level=struct('height','168','weight','74')

A =

1x3 struct array with fields:

name

NO

level

A(3).level=struct('height','182','weight','77')

A =

1x3 struct array with fields:

name

NO

level

12、

B=cell(1,2);

B{1,1}=struct('date','2007/06/04','billing',[125.7 389.3;254.9 538.5])

B =

[1x1 struct] []

B{1,2}=struct('name','maggie','profession','teacher','hobby','dance')

B =

[1x1 struct] [1x1 struct]

cellplot(B)

13、

year = 1990:2:2010;

product = [75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 249.633 256.344];

p1999 = interp1(year,product,1999,’spline’)

x = 1990:1:2010;

y = interp1(year,product,x,'spline');

plot(year,product,'*',x,y)

14、

X=[2.5 5.0 7.5 10.0 13.0 17.0 20.0 30.0 40.0 50.0 60.0 70.0];

Y=[0.29 0.56 0.77 1.05 1.36 1.52 2.00 2.27 2.81 3.05 3.25 3.56];(P=polyfit(X, Y, 3);

x=2.5:0.1:70;

y=polyval(P,x)

plot(X,Y,’O’,x,y)

gird on

15、

clear

x=-2:0.2:2;

y=-2:0.2:2;

[X,Y]=meshgrid(x,y);

Z=X.*exp(-X.^2-Y.^2);

mesh(X,Y,Z)

16、

x=0:pi/10:2*pi;

y1=sin(x);

y2=cos(x);

plot(x,y1,x,y2) ;

grid on

xlabel(‘Independent Variable X’);

ylabel(‘Dependent Variable Y1&Y2’);

title(‘Sine and Cosine Curve’)

text(1.5,0.3,’cos(x)’);

axis([0 2*pi -0.9 0.9])

复习要点

矩阵产生和操作

一.diag对角矩阵和矩阵的对角化

1.x=diag(v)产生v的元素处于主对角线的对角方阵,v为n元向量。

x=diag([1 2 3]) x= 1 0 0

0 2 0

0 0 3

2.x=diag(v,k) k表示v的元素处在第k条对角线上

k=0 主对角线y=diag([1 2 3],1)

k>0 主对角线上y= 0 1 0 0

k<0 主对角线下0 0 2 0

. 0 0 0 3

. 0 0 0 0

3.v=diag(x,k) x为矩阵,v为列向量,x的第k条对角线上的元素

z= 9 4 4 v=diag(z) v=diag(z,-1)

2 8 0 9

6 7 8 v= 8 v= 2

8 7

二. reshape 阵列重新排列

B=reshape(A,m,n)把A重新排成m×n的矩阵B

△矩阵元素是按列存储的

A=9 6 8 4 D=reshape(A,4,2) D= 9 8

2 4 7 0 2 7

6 4

4 0

三. rot 90 矩阵旋转90o(反时针)

rot 90(A,k) 将A反时针旋转k*90o

A= 5 3 7 B1=rot 90(A) 区别于A' B2=A'

7 2 3 B1= 7 3 5 B2= 5 7 4

4 2

5 3 2 2 3 2 2

5 7 4 7 3 5

B3=rot 90(A,3) B3= 4 7 5

2 2 3

5 3 7

四. fliplr 左右翻转---列

A= 9 6 8 4 B=fliplr(A)

2 4 7 0 B=4 8 6 9

0 7 4 2

五. flipud 上下翻转---行

B=flipud(A) B= 2 4 7 0

9 6 8 4

六. tril 下三角阵

L=tril(x,k) B1=tril(A,1)

A=9 6 8 4 B1=9 6 0 0

2 4 7 0 2 4 7 0

七. triu 上三角阵

L=triu(x,k)

B2=triu(A,1) B2=0 6 8 4

0 0 7 0

八. cat 阵列连接C=cat(dim,A,B)

将A,B在dim维连接起来

G=cat(1,B1,B2) G= 9 6 0 0

2 4 7 0

0 6 8 4

0 0 7 0

九. repmat复制并平铺阵列

1. B=repmat(A,m,n) A为矩阵,将A平铺成m×n格式

A=[1 2;3 4] B=repmat(A,2,3) B= A A A

A A A

2. B=repmat(A,2,3) A为标量B=repmat(5,2,3) B= 5 5 5

5 5 5 十.Meshigrid

[X,Y]= meshgrid (1:4,1:4)

X=

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

Y=

1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

矩阵逻辑运算

1.all—矩阵所有元素是否非零

有1个或多个0→0

A为向量

All(A)

A为矩阵—按列

a=[1 2;0 4] b=au(0) b=0 1

2.any—测试任意非零值

只要有不是0→1

B=any(A)

所有都为0→0

a=[1 2 0;4 0 0;0 5 0] any(a) ans=1 1 0

3.find—查找非零元素的值和下标k=find(x)—阵列中

[i,j]=find(x)—矩阵中[i,j,v]=find(x)—v为值,可得

v值的列

a=zeros(5,20);

a(3,7)=0.5; i = 3 j = 7 v= 0.5000

a(4,15)=-0.4; 4 15 -0.4000

[i,j,v]=find(a);

4.exist:检查给定变量或文件是否存在

a=exist('item')

ident=exist('item',kind)

5.is* 检测状态

A=one(3,3); s='ad3fi'

A(:,:)=[ ]; isletter

isempty(A); ans= 1 1 0 1 1

ans=1

6.logical—数值转变成逻辑值

logical(A) 返回能够用于逻辑索引或逻辑测试的数组。

A=logical(eye(3))

A = 1 0 0 B=rand(3)

B = 0.4447 0.9218 0.4057

0 1 0 0.6154 0.7382 0.9355

0 0 1 0.7919 0.1763 0.9169 B(A)

ans= 0.4447

0.7382

0.9109

字符串部分

字符串的比较

三种情况:

1.比较两个字符串或两个字符串的一部分是否相等

2.逐个比较两个字符串中的字符,判别是否相等

3.对字符串中的每一个元素进行分类判别是字符还是空格

一.比较两个字符串strcmp

strcmp 判别两个字符串是否相等

strncmp 判别两个字符的前n个字符是否相等。Strncmp

Eg: str1=‘hello’

str2=‘help’

strcmp(str1,str2)

ans=0

strcmp(str1,str2,3)

ans=1

这两个函数还可以比较两个字符串的单元数组。

Eg: A={‘pizza’; ‘chips’; ‘candy’; ‘cake’; ‘beer’};

B={‘pizza’; ‘chololate’; ‘pretzels’; ‘beef’; ‘beer’};

strcmp(A,B) strcmp(A,B,1) strncmp(A,B,4)

ans= 1 ans = 1 ans =1

0 1 0

0 0 0

0 0 0

1 . 1 1

二.用运算符比较字符串

“= =”比较两个字符串中对应字符是否相同

A=‘fate’;

B=‘cake’;

A= =B

ans=0 1 0 1

“~=”表示不等于

A~=B

ans=1 0 1 0

三.字符串中字符的分类

isletter 是否为字母isspace 是否为空格或制表符

mystring=‘Room 401’;

A=isletter(mystring);

A=1 1 1 1 0 0 0 0

B=isspace(mystring)

B=0 0 0 0 1 0 0 0

对二维数组也可以

Eg:A=[‘1 2A’; ’13 B’];

L=isletter(A) S=isspace(A)

L= 0 0 0 1 S = 0 1 0 0

0 0 0 1 0 0 1 0

对单元矩阵形式的字符串,不能直接应用这两个函数。但可以对指定的单元进行判别。

Eg:strcell={‘pi za’; ‘chi s’; ‘can y’; ‘cake’; ‘ er’};

LL=isletter(strcell{1});

LL=1 1 0 1 1

SS=isspace(strcell{2})

SS=0 0 0 1 0

字符串的查找与替换

一.strrep可实现标准的查找与替换。

Eg:label=‘sample 1,10/28/95’;

newlabel=strrep(label, ‘10/28/95’, ‘12/20/1999’);

newlabel=sample 1,12/20/1999

二.findstr用于在字符串中查找指定的子串

找到一个子串返回开始位置

找到多个子串用一个矢量指出它们的位置

没找到返回[ ]

Eg:position=findstr(‘1’,newlabel);

position= 8 11 17

position=find(‘wa’,ne wlabel);

position=[ ]

三.strtok先在字符串中查找分隔字符(如空格,‘/’,制表符等),然后返回第1个分隔符前的子串。

Eg:first=strtok(label);

first=sample

first=strtok(label, ‘1’)

first=sample 1,10

知识要点

MATLAB的特点

1.以复数矩阵作为基本编程单元,使操作变得轻而易举,矩阵不需定义。

2.语句简单,编程效率高,用数学语言编写比C,Basic,Fortran更加接近人们书写计算公式的思维方式。MATLAB俗称演算纸式科学算法语言。

3.语句功能强大,相当于其它高级语言中的几十条,几百条语句。

4.丰富的绘图功能:线性坐标、对数坐标、极坐标,只须调用不同的绘图函数命令。

5.提供许多面向应用问题求解的工具箱函数。

6.易扩展性。

MATLAB系统中Simulink和Stateflow两个重要部件

Simulink是基于MA TLAB的框图设计环境,可以用来对各种动态系统进行建模、分析和仿真,它的建模范围广泛,可以针对任何能够用数学来描述的系统进行建模。Stateflow是一个交互式的设计工具,它基于有限状态机的理论,可以用来对复杂的事件驱动系统进行建模和仿真。Stateflow与Simulink和MATLAB 紧密集成,可以将Stateflow创建的复杂控制逻辑有效地结合到Simulink的模型中。

显示,清除变量

who,whos显示变量列表。whos还可以列出变量的大小及数据类型。

clear清除工作空间中的所有变量。

clear+变量名----只清除指定变量。

保存和恢复工作空间

1.保存工作空间save把工作空间保存在二进制MA T文件中(整个内容)

(1) save worksp1 把当前工作空间保存在worksp1.mat文件中。

(2) save worksp2 mydata1 mydata2 仅保存mydata1,mydata2两个变量到worksp2.mat文件中。

(3) File---save workspace As。

加载(恢复)工作空间

load worksp1当前工作空间与加载的工作空间具有相同的变量后,加载的变量自动覆盖与原工作空间同名的变量。

diary指令

diary指令的功能是创建一个日志文件,在这个文件中,能够把所有在MATLAB命令行键入的指令以及在命令行窗口的输入保存下来。这个日志文件为纯文本格式,可以利用任何一种文本编辑器编辑这个文件。在使用diary指令时,若不指定文件名,则MATLAB自动创建一个默认文件名diary(注意,该文件没有扩展名,为纯文本文件)的日志文件,并且进入到历史日志记录状态。在日志文件中将记录所有在命令行窗口中键入的指令以及这些指令运行的结果。注意,diary记录指令的功能也仅在执行diary指令之后的MATLAB会话中有效,一旦关闭了MATLAB再次启动时,则diary指令需要重新键入。

工作路径

MATLAB的工作路径就是当前的路径,MATLAB启动时采用默认的路径作为当前工作路径,这样所有的MATLAB文件保存和读取都将从该路径下开始。在Windows平台下,MATLAB提供了一个路径:$matlabroot\work,在MATLAB首次启动时,就会使用该路径作为当前的工作路径。

变量的特点

新变量:自动建立变量并分配存储空间。

旧变量:更新其内容,有必要时重新分配存储空间。

变量的构成

字母、数字和下划线。以字母开头,最长为63个字符,区分大小写。

矩阵元素的访问

访问矩阵的元素也需要使用矩阵元素的索引,不过具有两种方式:

第一种方式是使用矩阵元素的行列全下标形式;

第二种方法是使用矩阵元素的单下标形式。

逻辑数据类型

所谓逻辑数据类型就是仅具有两个数值的一种数据类型,其中,一个数值为TRUE,另外一个数值为FALSE。在MATLAB中,参与逻辑运算或者关系运算的并不一定必须有逻辑类型的数据,任何数值都可以参与逻辑运算。这时,MA TLAB将所有非零值看作逻辑真,将零值看作逻辑假。一般地,1表示逻辑真,0表示逻辑假。

脚本文件

脚本文件是一种简单的M文件,它没有输入输出,可以是一系列在命令行中执行的命令的集合,仅可以操作工作空间中的变量或程序中新建的变量。

函数的程序结构

一. 函数定义行

function y= mean(x)

关键字变量函数名

function[x,y,z]=sphere(theta,phi,rho)

M文件中包含一个函数,并确定调用的参数及次序。

二. H1行(帮助文本的首行)

函数定义后的第一行注释语句可用help function_name命令显示,也可以用lookfor命令搜索其中字符。

三. 帮助文本

以%开头,详细说明这一函数,H1行之后到函数体之前的注释,帮助文本,可用help function_name 命令显示。

四. 函数体

完成指定功能的语句实体,包含所有计算和为输出参数赋值的代码。

[m,n]=size(x);

if(~(m= =1)|(n= =1)|(c= =1&n= =1))

error(‘Input must be a vector’)

end

y=sum(x)/length(x)

五. 注释

%开头在行尾结束

H1行与帮助文本都可以用help命令查看,其它注释都不可以用help查看。

函数文件去掉其第一行的定义行就转变成了脚本文件带来几个问题

基本工作空间中与脚本文件中同名的变量会引起冲突。

使基本工作空间中变量数急剧增加,造成内存紧张。

编程时要细心考虑各个脚本文件所用到的变量。

创建字符串

创建字符串时,只要将字符串的内容用单引号包含起来就可以了,若需要在字符串内容中包含单引号,则需要在键入字符串内容时,连续键入两个单引号即可。

元胞数组

元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看成作为一种无所不包的通用矩阵,或者叫作广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。元胞数组的维数不受限制,元胞数组可以是一维的、二维的,甚至也可以是多维的。访问元胞数组的元素可以使用单下标或者全下标方式。胞数组可以是实数组或复数组,也可以是字符型数组和结构数组,可以是二维的,也可以是多维的。

结构

结构是包含一组记录的数据类型,而记录则存储在相应的字段中,结构的字段可以是任意一种MATLAB数据类型的变量或者对象。结构类型的变量可以是一维的、二维的或者多维的数据,不过,在访问结构类型数据的元素时,需要使用下标配合字段的形式。

知识点

1、MATLAB中使用行矢量表示多项式的系数,行矢量中的各元素按照多项式的项的次数从高到低排列。

2、私有函数在MATLAB中是指位于特定子目录private下的函数,私有函数仅可被父目录中函数调用,

其他目录中可以存在同名的私有函数。

3、save命令可将工作空间中的所有变量以二进制的格式保存到matlab.mat文件中,这些变量可由load命

令重新装入;save filename可保存到指定的filename.mat文件中。

4、在MA TLAB中,参与逻辑运算或者关系运算的并不一定必须有逻辑类型的数据,任何数值都可以参与

逻辑运算。这时,MA TLAB将所有非零值看作逻辑真,将零值看作逻辑假。一般地,1表示逻辑真,0表示逻辑假。

5、给图形创建文本注释的时候可以将文本注释首先保存在元胞数组中,然后使用text函数完成向图形窗

体添加文本注释的工作。

6、条形图和区域图用于显示矢量或矩阵中的数据,这两种类型的图表常用于观察周期性的结果,比较不

同数据组的结果。

7、矩阵为m行n列,利用bar函数进行绘图,将绘制m组条形图,每组有n条垂直的条形图。

8、who指令显示变量列表。Whos指令除了显示变量还可以列出变量的大小及数据类型,clear指令可以

清除工作空间中的所有变量。

9、利用load指令加载工作空间时,当前工作空间与加载的工作空间具有相同的变量后,加载的变量自动

覆盖与原工作空间同名的变量。

10、diary指令的功能是创建一个日志文件,在这个文件中,能够把所有在MATLAB命令行键入的指

令以及在命令行窗口的输入保存下来。这个日志文件为纯文本格式,可以利用任何一种文本编辑器编辑这个文件。

11、MATLAB的工作路径就是当前的路径,MATLAB启动时采用默认的路径作为当前工作路径,这

样所有的MATLAB文件保存和读取都将从该路径下开始。

12、对变量的命名有相应的要求:变量必须以字母开头,后面可以是字母、数字或者下划线的组合。

13、访问向量的元素直接给出元素在向量中的序号,元素的序号不仅可以是单一的整数,还可以是元

素序号组成的向量,关键字end在访问向量元素时,表示向量中最后一个元素的序号。

14、所谓逻辑数据类型就是仅具有两个数值的一种数据类型,其中,一个数值为TRUE,另外一个数

值为FALSE。

15、创建字符串时,只要将字符串的内容用单引号包含起来就可以了,若需要在字符串内容中包含单

引号,则需要在键入字符串内容时,连续键入两个单引号即可。

16、组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺

寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞。

17、在利用赋值法创建元胞数组时,大括号用于表示单元的内容,圆括号用于表示指定的单元。

18、结构是包含一组记录的数据类型,而记录则存储在相应的字段中,可以是任意一种MATLAB数

据类型的变量或者对象。

19、、在着色方式中Shading flat使得每个网格线的线断和面都有一个恒定的颜色,Shading faceted使

得每个网格内部用同一颜色着色,网格线颜色不变并以黑色突出显示。

20、在MA TLAB绘图中hidden on 能够实现图形消隐hidden off能够实现图形透视。

21、一维多项式插值的基本格式为yi=interp1(x,y,xi,method) xi表示插值的点,method表示插值的方

法,为字符串类型。

22、在一维插值算法中,nearest是最快的而又最节省资源的一种算法,而三次插值或者样条插值运算

则需要消耗较多的系统资源,所以请用户根据需要选择合适的插值算法。

Matlab上机实验答案

Matlab上机实验答案 实验一 MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/180)/(1+exp(2)) z1 = >> x=[2 1+2i; 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = - + + -

>> a=::; >> z3=(exp.*a)-exp.*a))./2.*sin(a++log(+a)./2) (>> z33=(exp*a)-exp*a))/2.*sin(a++log(+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 + + + + + Columns 6 through 10 + + + + + Columns 11 through 15 + + + + + Columns 16 through 20 + + + + +

Columns 21 through 25 + + + + + Columns 26 through 30 + + + + + Columns 31 through 35 + + + + + Columns 36 through 40 + + + + + Columns 41 through 45 + + + + + Columns 46 through 50

+ + + + + Columns 51 through 55 + + + + + Columns 56 through 60 + + + + + Column 61 + (4) 2 2 4 2 01 112 2123 t t z t t t t t ?≤< ? =-≤< ? ?-+≤< ? ,其中t=0:: >> t=0::; >> z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3).*(t.^ 2-2.*t+1) z4 =

MATLAB全部实验及答案

MATLAB全部实验及答案 实验一、MATLAB基本操作 实验内容及步骤 4、有关向量、矩阵或数组的一些运算 (1)设A=15;B=20;求C=A+B与c=a+b? (2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B与 A.*B? A*B就是线代里面的矩阵相乘 A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2? (4)设a=[1 -2 3;4 5 -4;5 -6 7] 请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全 下标的形式),并将其单下标转换成全下标。 clear,clc a=[1 -2 3;4 5 -4;5 -6 7]; [x,y]=find(a<0); c=[]; for i=1:length(x) c(i,1)=a(x(i),y(i)); c(i,2)=x(i); c(i,3)=y(i); c(i,4)=(y(i)-1)*size(a,2)+x(i); end c

(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那 个是虚数矩阵,后面那个出错 (6)请写出完成下列计算的指令: a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=? a^2= 22 16 16 25 26 23 26 24 28 a.^2= 1 4 9 9 16 4 25 4 9 (7)有一段指令如下,请思考并说明运行结果及其原因 clear X=[1 2;8 9;3 6]; X( : ) 转化为列向量 (8)使用三元组方法,创建下列稀疏矩阵 2 0 8 0 0 0 0 1 0 4 0 0 6 0 0 0 方法一: clear,clc

MATLAB上机实验(答案)

MATLAB工具软件实验(1) (1)生成一个4×4的随机矩阵,求该矩阵的特征值和特征向量。程序: A=rand(4) [L,D]=eig(A) 结果: A = 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 L = -0.7412 -0.2729 - 0.1338i -0.2729 + 0.1338i -0.5413 -0.3955 -0.2609 - 0.4421i -0.2609 + 0.4421i 0.5416 -0.4062 -0.0833 + 0.4672i -0.0833 - 0.4672i 0.4276 -0.3595 0.6472 0.6472 -0.4804 D = 2.3230 0 0 0 0 0.0914 + 0.4586i 0 0 0 0 0.0914 - 0.4586i 0 0 0 0 0.2275 (2)给出一系列的a值,采用函数 22 22 1 25 x y a a += - 画一组椭圆。 程序: a=0.5:0.5:4.5; % a的绝对值不能大于5 t=[0:pi/50:2*pi]'; % 用参数t表示椭圆方程 X=cos(t)*a; Y=sin(t)*sqrt(25-a.^2); plot(X,Y) 结果: (3)X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2], (a)写出计算其负元素个数的程序。程序: X=[9,2,-3,-6,7,-2,1,7,4,-6,8,4,0,-2]; L=X<0; A=sum(L) 结果: A =

Matlab上机实验

Matlab 上机实验 一、 实验目的 1、 掌握绘制MATLAB 二维、三维和特殊图形的常用函数; 2、 熟悉并掌握图像输入、输出及其常用处理的函数。 二、 实验内容 1 绘制函数的网格图和等高线图。42 2cos cos y x ye x z +-= 其中x 的21个值均匀分布在[-5,5]范围,y 的31个值均匀分布在[0,10],要求将产生的网格图和等高线图画在同一个图形窗口上。 2 绘制三维曲面图,使用纯铜色调色图阵进行着色,并进行插值着色 处理。?????===s z t s y t s x sin sin cos cos cos 230,20ππ≤≤≤≤t s 3 已知 ???????>++≤+=0),1ln(210,22x x x x e x y π 在-5<=x<=5区间绘制函数曲线。 4 已知y1=x2,y2=cos(2x),y3=y1*y2,其中x 为取值-2π~2π的等差数列(每次增加0.02π),完成下列操作: a) 在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例; b) 以子图形式,分别用条形图、阶梯图、杆图绘制三条曲线,并分别给三个图形添加标题“y1=x^2”,“y2=cos(2x)”和“y3=

y1*y2”。 5 在xy 平面内选择区域[][],,-?-8888 ,绘制函数 z =的三 种三维曲面图。 6 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中cos(x)图象用红色小圆圈画.并在函数图上标注 “y=sin(x)”, “y=cos(x)” ,x 轴,y 轴,标题为“正弦余弦函数图象”. 7 分别用线框图和曲面图表现函数z=cos(x)sin(y)/y ,其中x 的取值为 [-1.5pi,1.5pi],y=x ,要求:要有标题、坐标轴标签 8 有一组测量数据满足-at e =y ,t 的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,并加入标题和图列框(用代码形式生成) 9 2 2y x xe z --=,当x 和y 的取值范围均为-2到2时,用建立子窗口 的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图 10 x= [66 49 71 56 38],绘制饼图,并将第五个切块分离出来。 11 用sphere 函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 12 以自己的个人画像或照片(JPG)为对象,读入该图像并了解图像的信息,同时利用所学函数对其进行灰度、二值、旋转及缩放等处理,并以PNG 形式输出。

MATLAB)课后实验答案

实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。 (1) 012 2sin 851z e =+ (2) 21ln(2 z x =,其中2 120.45 5i x +??=? ?-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022 a a e e a z a a --+= ++=--L (4) 22 42011 122123t t z t t t t t ?≤

4. 完成下列操作: (1) 求[100,999]之间能被21整除的数的个数。 (2) 建立一个字符串向量,删除其中的大写字母。解:(1) 结果: (2). 建立一个字符串向量例如: ch='ABC123d4e56Fg9';则要求结果是:

实验二 MATLAB 矩阵分析与处理 1. 设有分块矩阵33322322E R A O S ?????? =? ??? ,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22 E R RS A O S +?? =???? 。 解: M 文件如下; 5. 下面是一个线性方程组: 1 231 1 12340.951110.673450.5211145 6x x x ?? ??????????????=??? ?????????????????? ? ch = 123d4e56g9

(1) 求方程的解。 (2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。 (3) 计算系数矩阵A 的条件数并分析结论。 解: M 文件如下: 实验三 选择结构程序设计 1. 求分段函数的值。 2226035605231x x x x y x x x x x x x ?+-<≠-? =-+≤<≠≠??--? 且且及其他 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。 解:M 文件如下:

matlab上机实验指导书

MATLAB应用基础实验指导书

第一章 MATLAB及其工作环境介绍 (1) 1.1 MATLAB简介 (1) 1.2 MATLAB的工作环境介绍 (1) 1.3 MATLAB的基本管理命令 (4) 第二章 MATLAB的数值计算功能 (5) 2.1 变量与赋值语句 (5) 2.2 MATLAB矩阵 (5) 2.3 MATLAB表达式 (10) 2.4 MATLAB常用数学函数 (11) 2.5 矩阵的基本运算 (12) 2.6 数组运算 (16) 2.7 多项式及其运算 (17) 第三章 MATLAB程序设计入门 (19) 3.1 M文件 (19) 3.2 数据的输入输出 (21) 3.3 全局变量和局部变量 (23) 3.4 程序流程控制 (23) 第四章 MATLAB的符号运算功能 (28) 4.1 建立符号对象 (28) 4.2 符号算术运算 (29) 4.3 符号微积分运算 (32) 4.4 符号函数的可视化 (34) 第五章 MATLAB的可视化功能 (37) 5.1 二维图形 (37) 5.2绘制三维图形 (42) 5.3 特殊坐标图形 (44) 5.4 图形句柄 (45)

第一章 MATLAB及其工作环境介绍 1.1 MATLAB简介 MATLAB是matrix和laboratory前三个字母的缩写,意思是实验室矩阵。MATLAB 语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,经过十多年的发展与完善,MATLAB已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数学函数库和MATLAB 应用程序接口五大部分组成的集数值计算、图形处理、程序开发为一体的功能强大的体系。MATLAB由“主包”和三十多个扩展功能和应用学科性的工具箱组成。 MATLAB具有以下基本功能: ●数值计算功能 ●符号计算功能 ●图形处理及可视化功能 ●可视化建模及动态仿真功能 MATLAB语言是以矩阵计算为基础的程序设计语言,语法规则简单易学。其指令格式与数学表达式非常相近,用MATLAB编写程序犹如在便笺上列写公式和求解,因而被称为“便笺式”的编程语言。另外,MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高效率,其程序编译和执行速度远远超过了传统的C和FORTRAN语言,因而用MATLAB 编写程序,往往可以达到事半功倍的效果。在图形处理方面,MATLAB可以给数据以二维、三维乃至四维的直观表现,并在图形色彩、视角、品性等方面具有较强的渲染和控制能力,使技术人员对大量原始数据的分析变得轻松和得心应手。 MATLAB的上述特点,使它深受工程技术人员及科技专家的欢迎,并成为应用学科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前MATLAB已成为国际上公认的最优秀的科技应用软件。 1.2 MATLAB的工作环境介绍 一、MATLAB的工作环境

MATLAB实验题答案

1、求以下变量的值,并在MATLAB中验证。( 1 ) a = 1 : 2 : 5 a = 1 3 5 ( 2 ) b = [ a' , a' , a' ;a ] b = 1 1 1 3 3 3 5 5 5 1 3 5 ( 3 ) c = a + b ( 2 , : ) c = 4 6 8 2、下列运算是否合法,为什么?如合法, 结果是多少? >> result2=a*b Error using * Inner matrix dimensions must agree. >> result3=a+b result3 = 3 6 2 5 8 11 >> result4=b*d result4 = 31 22 22 40 49 13 >> result5=[b;c']*d result5 = 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 4 1 5 30 >> result7=a./b result7 = 0.5000 0.5000 -3.0000 4.0000 1.6667 1.2000>> result8=a.c Attempt to reference field of non-structure array. >> result9=a.\b result9 = 2.0000 2.0000 -0.3333 0.2500 0.6000 0.8333 >> result10=a.^2 result10 = 1 4 9 16 25 36 >> result11=2.^a result11 = 2 4 8 16 32 64 3、用MATLAB求解下面的的方程组。 (1) ? ? ? ? ? ? ? ? ? ? ? ? - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - 1 7 4 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 4 3 2 1 x x x x >> A=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> B=[4 7 -1 0] >> B=B' >> x=inv(A)*B (2) ? ? ? ? ? ? ? = - + + = - - = - + + = + + 5 6 5 3 3 3 3 2 8 2 1 w z y x w y x w z y x z y x >> A1=[1 1 1 0;1 2 1 -1;2 -1 0 -3;3 3 5 -6] >> B2=[1;8;3;5] >> x2=inv(A1)*B2 4、已知 ? ? ? ? ? ? ? ? ? ? ? ? - - - - = 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A

河南城建学院MATLAB上机实验答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则:?变量名必须以字母开头,只能由字母、数字或下划线组成。 ?变量名区分大小写。 ?变量名不能超过63个字符。 ?关键字不能作为变量名。 ?最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector. 线性等分函数 LINSPACE(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1, X2, N) generates N points between X1 and X2. For N < 2, LINSPACE returns X2. 以X1为首元素,X2为末元素平均生成n个元素的行向量。如果n<2,返回X2。 Class support for inputs X1,X2: float: double, single 数据类型:单精度、双精度浮点型。 (4)说明函数ones()、zeros()、eye()的用法。 ones()生成全1矩阵。 zeros()生成全0矩阵。 eye()生成单位矩阵。 2、Matlab的数值显示格式

matlab所有实验及答案

实验二 习题 1、 矩阵Y= ???? ? ???? ???3472123100451150425 ,给出元素1的全下标和单下标,并用函数练习全下标和单下标的转换,求出元素100的存储位置。取出子矩阵?? ? ? ??21301,并求该矩阵的维数。 解:命令为: Y=[5,2,4;0,15,1;45,100,23;21,47,3] Y(2,3) Y(10) sub2ind([4 3],2,3) [i,j]=ind2sub([4 3],10) find(Y==100) sub2ind([4 3],3,2) B=Y(2:2:4,3:-2:1) 或 B=Y([2 4],[3 1]) [m n]=size(Y) 2、 建立一个数值范围为0—100内4*5的整数随机矩阵。 求出大于50的元素的位置。 解:命令为: G=int8(100*rand(4,5)) find(G>50) 3、 已知矩阵A=[1 0 -1 ;2 4 1; -2 0 5],B=[0 -1 0;2 1 3;1 1 2] 求2A+B 、A 2-3B 、A*B 、B*A 、A .*B ,A/B 、A\B 解:命令为: A=[1 0 -1 ;2 4 1; -2 0 5] B=[0 -1 0;2 1 3;1 1 2] E=2*A+B F=A^2-3*B G=A*B H=B*A I=A.*B J=A/B K=A\B 4、 利用函数产生3*4阶单位矩阵和全部元素都为8的 4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B 5、 创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

MATLAB上机实验练习题答案

数学建模 MATLAB上机实验练习题 1、给出一个系数矩阵A[234;541;132],U=[123],求出线性方程组的一个精确解。 2、给出两组数据x=[00.30.81.11.62.3]’y=[0.820.720.630.600.550.50]’,我们可以简单的 认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示。 3、解线性方程 4、通过测量得到一组数据: 5、已知一组测量值 6、从某一个过程中通过测量得到: 分别采用多项式和指数函数进行曲线拟合。 7、将一个窗口分成四个子窗口,分别用四种方法做出多峰函数的表面图(原始数据法,临近 插值法,双线性插值法,二重三次方插值法) 8、在同一窗口使用函数作图的方法绘出正弦、余弦、双曲正弦、双曲余弦。分别使用不同的 颜色,线形和标识符。 9、下面的矩阵X表示三种产品五年内的销售额,用函数pie显示每种产品在五年内的销售额

占总销售额的比例,并分离第三种产品的切片。 X=19.322.151.6 34.270.382.4 61.482.990.8 50.554.959.1 29.436.347.0 10、对应时间矢量t,测得一组矢量y t00.30.8 1.1 1.6 2.3 y0.50.82 1.14 1.25 1.35 1.40 采用一个带有线性参数的指数函数进行拟合,y=a0+a1e-t+a2te-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。 11、请创建如图所示的结构数组(9分) 姓名编号指标 江明顺071023身高:176,体重:82 于越忠060134身高:168,体重:74 邓拓050839身高:182,体重:77 12、创建如图所示的元胞数组。(9分) 13、某钢材厂从1990年到2010年的产量如下表所示,请利用三次样条插值的方法计算1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。要求写出达到题目要求的MATLAB 操作过程,不要求计算结果。 年份19901992199419961998200020022004200620082010 产量(万吨)75.99591.972105.711123.203131.669150.697179.323203.212226.505249.633256.344 14、在一次化学动力学实验中,在某温度下乙醇溶液中,两种化合物反应的产物浓度与反应时间关系的原始数据如下,请对这组数据进行三次多项式拟合,并画出拟合曲线,已知数据如下。 time=[2.55.07.510.013.017.020.030.040.050.060.070.0] res=[0.290.560.771.051.361.522.002.272.813.053.253.56]

matlab实验四及其答案

实验四GUI 设计专业 学号姓名成绩电气工程及其自 动化201409140305 杨诚1.创建GUI 绘制方程c bx ax y ++=2图形,需要显示绘图结果的坐标系窗口,还能够输入 a , b , c 的值和x 取值范围(最大值和最小值)。 回调函数的编写: a=str2num(get(handles.edit1,'String'));b=str2num(get(handles.edit2,'String'));c=str2num(get(handles.edit3,'String'));xmin=str2num(get(handles.edit4,'String'));xmax=str2num(get(handles.edit5,'String'));x=xmin:0.1:xmax;y=a*x.^2+b*x+c;plot(x,y); 设计的运行界面截图:

2.设计一个GUI,完成画出y=sin(x)、y=cos(x)和y=x 3.的波形图。回调函数的编写: x=-5:0.1:5 plot(x,sin(x)) x=-5:0.1:5 plot(x,cos(x))

x=-5:0.1:5 y=x.^3 plot(x,y)

设计的运行界面截图: 3.创建一个GUI,含有下拉菜单,下拉菜单中有背景颜色选择。回调函数的编写: yanse=get(handles.popupmenu1,'value'); switch yanse case1 set(gcf,'color','r'); case2 set(gcf,'color','y'); case3 set(gcf,'color','g'); end 设计的运行界面截图:

Matlab上机实验答案 (1)

Matlab上机实验答案 实验一MATLAB运算基础 1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。 >> z1=2*sin(85*pi/200)/(1+exp(2)) z1 = 0.2375 >> x=[2 1+2i;-0.45 5]; >> z2=1/2*log(x+sqrt(1+x^2)) z2 = 0.7120 - 0.0253i 0.8968 + 0.3658i 0.2209 + 0.9343i 1.2041 - 0.0044i 2.9,,2.9, 3.0

>> a=-3.0:0.1:3.0; >> z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) (>> z33=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log((0.3+a)/2)可以验证z3==z33,是否都为1) z3 = Columns 1 through 5 0.7388 + 3.2020i 0.7696 + 3.2020i 0.7871 + 3.2020i 0.7920 + 3.2020i 0.7822 + 3.2020i Columns 6 through 10 0.7602 + 3.2020i 0.7254 + 3.2020i 0.6784 + 3.2020i 0.6206 + 3.2020i 0.5496 + 3.2020i Columns 11 through 20 0.4688 + 3.2020i 0.3780 + 3.2020i 0.2775 + 3.2020i 0.2080 + 3.2020i 0.0497 + 3.2020i

Matlab编程与应用习题和一些参考答案

Matlab 上机实验一、二 3.求下列联立方程的解???????=+-+-=-+=++-=--+4 1025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10]; >> b=[4;4;9;4]; >> c=a\b 4.设???? ??????------=81272956313841A ,??????????-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。 >> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8]; >> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7]; >> C1=A*B' >> C2=A'*B >> C3=A.*B >> inv(C1) >> inv(C2) >> inv(C3) 5.设 ????? ?++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。 >> x=linspace(0,2*pi,101); >> y=cos(x)*(0.5+(1+x.^2)\3*sin(x)); >> plot(x,y,'r') 6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。 (mean var ) a=randn(8,6) mean(a) var(a) k=mean(a) k1=mean(k) i=ones(8,6) i1=i*k1 i2=a-i1 i3=i2.*i2 g=mean(i3) g2=mean(g) 或者 u=reshape(a,1,48); p1=mean(u)

MATLAB实验题目及答案

实验二一维二维数组的创建和寻访 一、实验目的 1、掌握一维数组、二维数组创建和寻访的几种方法。 2、区别数组运算和矩阵运算的差别。 3、熟悉执行数组运算的常用数组操作函数。 4、掌握数组运算中的关系和逻辑操作及常用的关系、逻辑函数。 5、掌握“非数”、“空”数组在MA TLAB中的应用。 二、实验主要仪器与设备 装配有MA TLAB7.6软件的计算机 三、预习要求 做实验前必须认真复习第三章MATLAB的数值数组及向量化运算功能。 四、实验内容及实验步骤 1、一维数组的创建方法有哪几种?举例说明。 答:一维数组的创建方法有: ①递增/递减型一维数组的创建:冒号生成法:x=a:inc:b 线性(或对数)定点法:x=linspace(a,b,n),x=logspace(a,b,n) ②逐个元素输入法:如x=[0.1,sin(pi/5),-exp(-3),-2*pi] ③运用MA TLAB函数生成法:例ones,rand等。 2、输入以下指令,并写出运行结果。本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。 A=zeros(2,6) %创建(2×6)的全零数组 A(:)=1:12 %赋值号左边:单下标寻访(2×6) 数组A的全部12个元素 %赋值号右边:拥有12个元素的一维数组 A(2,4) %双下标:A数组的第2行第4列元素 A(8) %单下标:数组A的第8个元素 A(: , [1,3]) %双下标:显示A的“第1列和第3列上全部行的元素” A([1, 2, 5, 6]') %单下标:把A数组第1,2,5,6个元素排成列向量 A(: , 4:end) %双下标:显示A的“从第4起到最后一列上全部行的元素” %在此end用于“列标识”,它表示“最后一列” A(2,1:2:5)=[-1, -3, -5] %把右边的3个数分别赋向A数组第2行的第1,3,5个元素位置 B=A([1, 2, 2, 2], [1, 3, 5]) %取A数组的1,3,5列的第1行元素作为B的第1行 %取A数组的1,3,5列的第2行分别作为B的第2,3,4行 L=A<3 %产生与A维数相同的“0,1”逻辑数组 A(L)=NaN %把逻辑1标识的位置上的元素赋为“非数” 运行结果: A = 0 0 0 0 0 0 0 0 0 0 0 0

Matlab实验指导书(含答案)汇总

实验一:Matlab操作环境熟悉 一、实验目的 1.初步了解Matlab操作环境。 2.学习使用图形函数计算器命令funtool及其环境。 二、实验内容 熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算: 1.单函数运算操作。 求下列函数的符号导数 (1) y=sin(x); (2) y=(1+x)^3*(2-x); 求下列函数的符号积分 (1) y=cos(x); (2) y=1/(1+x^2); (3) y=1/sqrt(1-x^2); (4) y=(x-1)/(x+1)/(x+2); 求反函数 (1) y=(x-1)/(2*x+3); (2) y=exp(x); (3) y=log(x+sqrt(1+x^2)); 代数式的化简 (1) (x+1)*(x-1)*(x-2)/(x-3)/(x-4); (2) sin(x)^2+cos(x)^2; (3) x+sin(x)+2*x-3*cos(x)+4*x*sin(x); 2.函数与参数的运算操作。 从y=x^2通过参数的选择去观察下列函数的图形变化 (1) y1=(x+1)^2 (2) y2=(x+2)^2 (3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作 求和 (1) sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5 乘积 (1) exp(-x)*sin(x)

MATLAB上机习题一

MATLAB上机习题一 请按以下步骤完成上机实验: 1)在FTP上下载“MATLAB上机习题一.doc”文件,所有习题列在该文件内; 2)在MATLAB中完成所有习题,并将屏幕截图粘贴到相应习题后面; 3)如果习题是问答题,请将答案写在题目后; 4)如果有的习题要求提供脚本文件,请将脚本文件内容拷贝到相应习题后; 5)将文件保存并重命名为“自己的学号-姓名”,例如“20110771-张三.doc”; 6)上传该文件到FTP的相关目录。 1. 运行MATLAB软件,拖放、关闭界面上的子窗口,并恢复到原始试图。 2. 采用鼠标及命令两种方式将桌面添加到MATLAB搜索路径列表的起始及最后位置。 3. 采用鼠标及命令方式将当前工作目录设置为桌面指向的文件夹。 4. 通过使用帮助确定内置变量ispc 的含义。 6. 观察MATLAB中关键字、字符串、注释的字体显示颜色。 5. 创建double类型的变量,并进行计算 1)a=87,b=190,计算a+b、a-b、a*b;

2)创建uint8类型的变量,数值与(1)中相同,进行相同的计算,观察计算结果与预想的是否一致。 6. 计算如下表达式: 1)()sin 60 2)3e 3)3cos 4π?? ??? 4)2 7562323336 +?-?? 7. 设u=2,v=3,计算: 1)4log uv v 2)() 2 2u e v v u +- 3 8. 计算如下表达式: 1)()()3542i i -+ 2)()sin 28i - 9. 判断下面语句的运算结果,并与MATLAB 计算结果做比较:

1)420< 2)420≤ 3)420== 4)4~20= 5)''''b B < 10. 设a=39,b=58,c=3,d=7,判断下面表达式的值与MATLAB 计算结果做比较: 1)a b > 2)a b < 3)&&a b b c >> 4)a d == 5)|a b c > 6)~~d 11. 判断下列变量名哪些是合法的MATLAB 变量: 1)fred 7)fred! 2)book_1 8)book-1 3)2ndplace 9)Second_Place 4)#1 10)No_1 5)vel_5 11)vel.5 6)tan 12)while 提示,可以使用isvarname 对上述变量名进行检验。 12. 编写脚本程序,命名为barbell.m ,完成如下计算: 如图1所示的杠铃,

Matlab上机实验二

1. 对Runge 函数2()1/(125)R x x =+在区间[-1,1]作下列插值逼近,并和()R x 的图 像进行比较,并对结果进行分析。 (1) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的20次Newton 插值 多项式的图像。 (2) 用节点21cos()(0,1,2...,20)42 i i x i π+==,绘出它的20次Lagrange 插值多项式的图像。

(3) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的分段线性插值函数 的图像。 (4) 用等距节点1,0.1,020i x ih h i =-+=≤≤,绘出它的三次自然样条插值 函数的图像。

结果分析: 等距节点的Newton插值在边界附近呈现不收敛的状态,也就是所谓的Runge 现象。这是因为被插函数2 ()1/(125) R x x =+及其任意阶导数并不是一致有界的。 由Lagrange插值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,由于高阶导数值 非常大,在等距节点的高次插值中,余项的值很大,亦即误差特别大,表现为Runge现象。在实际中,除非被插函数的光滑性十分好,否则等距节点的高次插值一般不使用。 切比雪夫多项式零点插值没有出现Runge现象,这是因为对于Lagrange插 值的余项 (n1) 1 () ()()()() (1)! n n n f R x f x L x x n ξ ω + + =-= + ,切比雪夫多项式零点插值可以 将 1() n x ω +项控制在 1 2n 以下( 1 [1,1] max() n x x ω + ∈- = 1 2n ),由此可得切比雪夫多项式零点 插值的误差范围 (n1) [1,1] () max() 2(1)! n n x f R x n ξ + ∞ ∈- ≤ + ,比等距节点的高次插值小很多,因此 对于被插函数的光滑性要求要比等距节点的插值也低很多。 分段低次线性插值是常用的一种插值方式。线性插值的优点在于计算量小,但是从图中可以看出,其光滑性不够。三次样条插值要求其一阶导数是连续的,因此其准确性好,光滑性也较优。

matlab实验指导答案详解(非常详细正确)

实验一 MATLAB 工作环境熟悉及简单命令的执行 一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。 二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单 (Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作 空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。 三、实验步骤: 1、启动MATLAB ,熟悉MATLAB 的桌面。 2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。 (1)(365-52?2-70)÷3 >>(365-52*2-70)/3 ans = 63.6667 (2)>>area=pi*2.5^2 area = 19.6350 (3)已知x=3,y=4,在MATLAB 中求z : () 2 3 2y x y x z -= >>x=3 >>y=4 >>z = x ^2 * y ^3 / (x - y) ^2 z = 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。 m1=???? ? ???? ???11514412679810115133216 执行以下命令 >>m1 =[16 2 3 13 ; 5 11 10 8 ; 9 7 6 12 ; 4 14 15 1 ] >>m1( 2 , 3 ) ans = 10 >>m1( 11 ) ans = 6 >>m1( : , 3 ) ans =3 10 6 15 >>m1( 2 : 3 , 1 : 3 ) ans =5 11 10 9 7 6 >>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1) ans = 34 (5)执行命令>>help abs

《MATLAB_语言与数学运算》练习答案

《MATLAB 语言与数学运算》实验课程任务书 一、实验教学目标与基本要求 上机实验是本课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的实验手段与实践技能,掌握应用MATLAB 语言求解问题的方法,培养学生分析问题、解决问题、应用知识的能力和创新精神,全面提高学生的综合素质。 上机学时为4学时,主要内容是基于上课内容对课后典型习题应用MATLAB进行求解,基本掌握常见数学问题的求解方法与命令调用,更深入地认识和了解MATLAB语言的强大的计算功能。 上机实验最终以书面报告的形式提交,作为期末成绩的考核内容。 二、实验内容(4 学时) 第一部分MATLAB 语言编程、科学绘图与基本数学问题求解(4学时) 主要内容:掌握MATLAB 语言编程、科学绘图、微积分、线性代数问题等基本数学问题的求解与应用。 练习题: 1、安装MATLAB 软件,应用demo 命令了解主要功能,熟悉基本功能,会用help 命令。 2、用MATLAB 语句输入矩阵A 和B 矩阵 前面给出的是4 × 4 矩阵,如果给出A(5,6) = 5 命令将得出什么结果? 答案: 3、假设已知矩阵A,试给出相应的MATLAB 命令,将其全部偶数行提取出来,赋给B 矩阵,用A =magic(8) 命令生成A 矩阵,用上述的命令检验一下结果是不是正确。

答案: 4、用数值方法可以求出, 试不采用循环的形式求出和式的数值解。由于数值方法采用double 形式进行计算的,难以保证有效位数字,所以结果不一定精确。试采用符号运算的方法求该和式的精确值。

5、 答案; 答案:

Matlab数学实验一2015(标准答案版)

Matlab数学实验一——matlab初体验 一、实验目的及意义 [1] 熟悉MATLAB软件的用户环境; [2] 了解MATLAB软件的一般目的命令; [3] 掌握MATLAB数组操作与运算函数; 通过该实验的学习,使学生能熟悉matlab的基础应用,初步应用MATLAB软件解决一些简单问题。 二、实验内容 1.认识matlab的界面和基本操作 2.了解matlab的数据输出方式(format) 3. MATLAB软件的数组(矩阵)操作及运算练习; 三、实验任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→原理→算法与编程→计算结果或图形→心得体会) 完成如下题目,并按照实验报告格式和要求填写实验报告 1.在commandwindow中分别输入如下值,看它们的值等于多少,并用matlab的help中查询这些缺省预定义变量的含义,用中文写出它们的意义。 ijeps inf nan pi realmaxrealmin 2.分别输入一个分数、整数、小数等,(如:a=1/9),观察显示结果,并使用format函数控制数据的显示格式,如:分别输入format short、format long、format short e、format long g、format bank、format hex等,然后再在命令窗口中输入a,显示a的值的不同形式,并理解这些格式的含义。 3.测试函数clear、clc的含义及所带参数的含义(利用matlab的help功能)。 4. 写出在命令窗口中的计算步骤和运行结果。 (1)计算 1.22 10 (ln log) 81 e ππ +- ; >>(log(pi)+log(pi)/log(10)-exp(1.2))^2/81 >>ans = 0.0348 (2) >> x=2;y=4; >> z=x^2+exp(x+y)-y*log(x)-3 z = 401.6562 (3)输入变量 13 5.3, 25 a b ?? ==?? ?? ,在工作空间中使用who,whos,并用save命令将变量存入”D:\exe0 1.mat”文件。测试clear命令,然后用load命令将保存的”D:\exe01.mat”文件载入>> a=5.3 a=

相关主题
文本预览
相关文档 最新文档