文档库 最新最全的文档下载
当前位置:文档库 › matlab上机习题详解-试题答案

matlab上机习题详解-试题答案

matlab上机习题详解-试题答案
matlab上机习题详解-试题答案

P 第一次实验答案

1. 设

要求以0.01秒为间隔,求出y 的151个点,并求出其导数的值和曲线。 clc clear

x=0:0.01:1.5;

y=sqrt(3)/2*exp(-4*x).*sin(4*sqrt(3)*x+pi/3)

y1=diff(y) subplot(2,1,1) plot(x,y)

subplot(2,1,2) plot(x(1:150),y1)

2绘制极坐标系下曲线(a,b,n 自定数据)

clc clear a=10; b=pi/2; n=5;

theta=0:pi/100:2*pi; rho=a*cos(b+n*theta); polar(theta,rho)

3. 列出求下列空间曲面交线的程序

clc clear

x=[-5:0.5:5];

[X,Y]=meshgrid(x); z1=X.^2-2*Y.^2;

z2=X.*2-Y.*3; xlabel('x') ylabel('y') zlabel('z') surf(X,Y,z1) hold on

surf(X,Y,z2)

k=find(abs(z1-z2)<0.5); x1=X(k) y1=Y(k)

z3=x1.^2-2*y1.^2 hold on

plot3(x1,y1,z3,'*')

4、设 ???

??

?++=)1(sin 35.0cos 2x x x y 把x=0~2π间分为101点,画出以x 为横坐标,y

为纵坐标的曲线,要求有图形标注。

clc clear

x=-2*pi:0.1: 2*pi;

y=cos(x).*(0.5+sin(x)*3./(1+x.^2)); plot(x,y,'b*-'); title('绘图'); xlabel('x 坐标'); ylabel('y 坐标'); legend('原函数')

gtext('y=cos(x)(0.5+3*sin(x)/(1+x^2))')

5、求下列联立方程的解 8102569

583

2475412743-=+-+-=-+-=++-=--+w z y x w z x w z y x w z y x

clc clear

a=[3,4,-7,-12;5,-7,4,2;1,0,8,-5;-6,5,-2,10];

b=[4,-3,9,-8]; c=b/a; x=c(1,1) y=c(1,2) z=c(1,3) w=c(1,4)

6. 假设一曲线数据点为

x = 0:2:4*pi;

y = sin(x).*exp(-x/5);

试将x 的间距调成 0.1,采用不同插值方法进行插值,并通过子图的形式将不同插值结果和原始数据点绘制在同一图形窗口。 clc clear

x=0:2:4*pi;

y=sin(x).*exp(-x./5); x1=0:0.1:4*pi;

y01=interp1(x,y,x1,'spline'); y02=interp1(x,y,x1,'cubic'); y03=interp1(x,y,x1,'nearest'); y04=interp1(x,y,x1); subplot(3,2,1); plot(x,y,'o-'); title('?-oˉêy'); subplot(3,2,2); plot(x1,y01,'gx-'); title('spline'); subplot(3,2,3); plot(x1,y02,'m+-'); title('cubic'); subplot(3,2,4); plot(x1,y03,'r*-'); title('nearest'); subplot(3,2,5); plot(x1,y04,'kd-'); title('line');

???

?

?+?=-334sin 234πt e y t ()θρn b a +=cos 2

212y x z -=y x z 322-=

第二次试验答案

1、编制m文件,等待键盘输入,输入密码

20120520,密码正确,显示输入密码正确,程序结束;否则提示,重新输入。

clear

a=input('输入密码:')

while a~=20120520

disp('密码错误,请重新输入:')

clear

a=input('输入密码:')

end

if a==20120520

disp('密码输入正确!')

end

2、编写一个函数实现以下功能:

a. 若没有实参输入变量,则用蓝色实线画出

半径为1的圆;

b.若有两个实参输入变量N,R,则用蓝色实

线画出外接半径为R的正N多边形;

d. 若有两个实参输出变量,则分别输出正多

边形的面积S和周长L。

g. 如果输入变量多于三个或输出变量多于两

个则给出错误提示信息。

(提示:外接半径为R的正N多边形参数式:t=0:2*pi/N:2*pi;x=R*sin(t);y=R*cos(t)当N ≥100时,可看作是半径为R的圆)

function [S,L]=shiyan22(N,R,str)

switch nargin

case 0

N=100;R=1;str='-b';

case 1

R=1;str='-b';

case 2 str='-b';

case 3

;

otherwise

error('输入量太多。');

end;

t=0:2*pi/N:2*pi;

x=R*sin(t);y=R*cos(t);

if nargout==0

plot(x,y,str);

elseif nargout>2

error('输入量太多。');

else

S=N*R*R*sin(2*pi/N)/2;

L=2*N*R*sin(pi/N);

plot(x,y,str)

end

axis equal square

box on

3、编写一个学生成绩管理的程序,完成下列功能:

(1) 构造一个学生结构,包括学生的姓名,课

程名称(限M门),考试成绩和平均值等域;

(2) 从键盘上,连续输入N个学生的情况,分

别将这些学生的情况填入到相应的域,若域中

没有值即为空或0,并分别计算其平均值写入

到其平均值域。

(3) 根据平均值排序(由高到低),并输出学

生的姓名和平均值。

clc

clear

n=input('please input students number:'); for x=1:n

number(x)=struct('name','','Curriculum1','' ,'Curriculum2','','Curriculum3','','Average ','');

end

for i=1:n

number(i).name=input('name:','s');

number(i).Curriculum1=input('please

input the scores\nCurriculum1:');

number(i).Curriculum2=input('Curriculum2:') ;

number(i).Curriculum3=input('Curriculum3:') ;

number(i).Average=(number(i).Curriculum1+nu mber(i).Curriculum2+number(i).Curriculum3)/ 3;

disp('the average is:')

disp(num2str(number(i).Average))

end

NameCell=cell(1,n);

Array=[1,n];

for i=1:n

NameCell(1,i)={number(i).name};

Array(i)=number(i).Average;

end

for j=1:(n-1)

iptr = j;

for i=(j+1):n

if Array(i)>Array(iptr) %比较相邻前后大小?

iptr=i;

end

end

if j~=iptr %若后面比前面大,互换

Name=NameCell(1,i);

NameCell(1,i)=NameCell(1,j);

NameCell(1,j)=Name;

average=Array(i);

Array(i)=Array(j);

Array(j)=average;

j=1;

iptr=j;

end

end

disp('成绩排序如下:')

for i=1:n

disp(strcat('名次: ',num2str(i),' 名字

',NameCell(1,i),' 平均成绩:

',num2str(Array(i))))

end

4、使用句柄图像对象绘制曲线:y=2e-0.5x cos(π

x),同时对曲线进行标注和修饰。

x=-12:0.02:12

y=2*exp((-0.5)*x).*cos(pi*x)

h_f=figure('Position',[200 300 300

300],'menubar','none')

h_a1=axes('position',[0.1,0.1,.8,.8])

h_t=title(h_a1,'函数

=2*exp((-0.5)*x).*cos(pi*x)')

h_1=line(x,y)

set(gca,'xtick',[(-6)*pi (-4)*pi (-2)*pi 0 (2)*pi (4)*pi (6)*pi])

set(gca,'xticklabel',{'(-6)*pi',' (-4)*pi', '(-2)*pi', '0', '(2)*pi', '(4)*pi','(6)pi'}) set(gca,'xgrid','on','ygrid','on')set(h_1,'linewidth',2)

set(get(h_t,'parent'),'color','y')

h_anm1=annotation(gcf,'rectangle',[0.1

0.5 .8

0.4],'FaceAlpha',.7,'FaceColor','red')

第三次试验答案

1、做一个带按钮的界面,当按动“播放”按

钮时调入声音文件并播放,显示声音波形,并

建立一个用于关闭界面的按钮对象。(提示,

找一个.wav文件,简单起见可以在windows

目录下找一个文件,将其放在当前工作目录下

或搜索路径上。具体用法请参照:

[y,f,b]=wavread(*.wav'); % 读入声音文

sound(y,f,b) % 由声卡播放

声音

plot(y) % 画出波形

2、创建一个用于绘图参数选择的菜单对象,

其中包含三个选项LineStyle、Marker和Color,每个选项下面又包含若干的子项分别可以进

行选择图线的类型、标记点的类型和颜色(每

个子项不少于3个),当按下“绘图”按钮时,根据选项绘制正弦曲线(缺省时为蓝色无标记

实线)。(注意使用全球变量)

function varargout = shiyan32(varargin)

% SHIYAN32 MATLAB code for shiyan32.fig

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton',

gui_Singleton, ...

'gui_OpeningFcn',

@shiyan32_OpeningFcn, ...

'gui_OutputFcn',

@shiyan32_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback =

str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] =

gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before shiyan32 is made visible.

function shiyan32_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to

shiyan32 (see VARARGIN)

% Choose default command line output for shiyan32

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes shiyan32 wait for user response (see UIRESUME)

% uiwait(handles.figure1);

global c

c='b'

global l

l='-'

global m

m=' '

% --- Outputs from this function are returned to the command line.

function varargout =

shiyan32_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure

varargout{1} = handles.output;

%

--------------------------------------------------------------------

function Untitled_1_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global l

%

--------------------------------------------------------------------

function Untitled_8_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global m

%

--------------------------------------------------------------------

function color_Callback(hObject, eventdata, handles)

% hObject handle to color (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global c

%

--------------------------------------------------------------------

function Untitled_14_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global c

c='r'

%

--------------------------------------------------------------------

function Untitled_15_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global c

c='b'

%

--------------------------------------------------------------------

function Untitled_16_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global c

c='g'

%

--------------------------------------------------------------------

function Untitled_17_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global c

c='y'

%

--------------------------------------------------------------------

function Untitled_10_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global m

m='o'

%

--------------------------------------------------------------------

function Untitled_11_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global m

m='*'

%

--------------------------------------------------------------------

function Untitled_13_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

global m

m='d'

%

--------------------------------------------------------------------

function Untitled_4_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global l

l='-'

%

--------------------------------------------------------------------

function Untitled_5_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global l

l='--'

%

--------------------------------------------------------------------

function Untitled_7_Callback(hObject, eventdata, handles)

% hObject handle to Untitled_7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global l

l='-.'

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global s

global l

global m

global c

x=0:0.1:2*pi;

y=sin(x);

s=strcat(l,m,c); plot(x,y,s)

2. 设1010)(?=j i a A 和1010)(?=j i b B

是两个10行10列

的矩阵(数组),试说明命令A*B, A/B, A\B, A .*(B.^A), A ./B, A .\B 和sin(A).*exp(B)的涵义。 A,B 的矩阵乘法,矩阵A 乘以B 的逆,矩阵B 乘以A 的逆,B 的每个元素的对应A 次幂乘以A 对应的每个元素 A 的每个元素除以B 对应的每个元素,B 的每个元素除以A 对应的每个元素,

A 的每个元素的正弦与

B 对应的每个元素的指数求积,

3. 设A 为1417?数组,B 为一个行数大于3的数组,请给出

(1)删除A 的第4、8、12三列的命令; (2)删除B 的倒数第3行的命令; (3)求符号极限0tan()

lim

x mx nx

→的命令集; (4)求

23

arctan ln(1)2

x x y e x -+=-+-的3阶导数的命令集;

(5)计算定积分

1

21

(sin )x x x dx -+?

的命令,并给出计算结果

(!)A(:,[4 8 12])=[]

(2)B(end-2)=[] (3)syms m n x

limit(tan(m*x)/(n*x)) (4)syms x y

y=atan((x+3)/(x-2))-log(1+exp((-2)*x) diff(y,3) (5)syms x

int((abs(x)+sin(x))*x^2,-1,1)

三.基本编程题(每小题10分,共1. Write a program to compute the following expressions

10

()()

,,1,2,,10

ik

i jk j ij x

x x x r i j --=

=∑;

Here, we suppose the variable x has existed in the workspace.

for i=1:10 for j=1:10

xbar(i)=xbar(i)+x(i,j); end

xbar(i)=xbar(i)/10;

end

for i=1:10 for j=1:10

t1=0;t2=0;t3=0; for k=1:3

t1=t1+(x(i,k)-xbar(i))*(x(j,k)-xbar(j)); t2=t2+(x(i,k)-xbar(i))^2; t3=t3+(x(j,k)-xbar(j))^2; end

r2(i,j)=t1/sqrt(t2*t3); end end r2

2. (1) Using plot() function to plot the curves of

2[sin(2)cos3]e x y x x -=+ and sin x

z x

=

in the range of []2,

2x ππ∈-, let their color are red and

green respectively, and add the grid to the figure.

(2) Using fplot() function and ezplot() function to plot above-mentioned (上述的) curves respectively. (1)x=-2*pi:pi/100:2*pi;

y=(sin(2*x)+cos(3*x)).*exp(-2*x); z=sin(x)/x;

plot(x,y,’r ’,x,z,’g ’) (2)fplot('[(sin(2*x)+cos(3*x)).*exp(-2*x), sin(x)/x]',[-2*pi 2*pi])

3. Plot the 3D mesh figure and 3D surface figure of the function

2

2

2/2(1)(,)9(1)e x

y f x y x --+=-

in the range of 44x -≤≤ and 44y -≤≤, respectively. x=-4:1/100:4; y=-4:1/100:4;

z=9(1-x)^2*exp(-x ’^2/2-(y ’+1)^2) mesh(x,y,z); surf(x,y,z); 四.综合编程题(每小题11分,

1. Write a function program to compute the following function

1.8

|2|!,

()f1(x)34sin(2),i x i x x =?=?+?

整数其他

and call this function program to compute the value of y=f1(-4)+f1(3)-f1(14.37) in main program or command window, there, ||!i shows the factorial (阶乘) of

||i .

提示:对x 取整的函数有fix(x), floor(x), round(x) 和ceil(x) .

fuction y=f1(x) %f1.m

if x-fix(x)= =0 y=prod(1:abs(2*x)); else

y=4*sin(2*x)+x^1.8; y=f1(-4)+f1(3)-f1(14.37)

2.Write a program to compute the sample mean

1

1xbar ==n

i i x x n =∑,

and the sample skewness (偏度)

31

1ske ()n

i i x x n ==-∑ .

for the following three case: (1) n and ],,,[21n x x x x = exist in Workspace of

Matlab. It is no any limit;

(2) n and ],,,[21n x x x x = are unknown variables. Please input x by keyboard one by one, and give a mark of end the data input. Examinees can use loop statement and length() function and input() function, but cannot use mean() function, std() function, and var() function directly (可以使用循环语句和length()函数、input()函数等进行编程,但不能直接使用mean()、std()和var()等函数). (1)s=0; for i=1:n s=s+x(i); end

xbar=s/n m=0;

for i=1:n

m=m+(x(i)-xbar)^3; end

ske=m/n

(2)x(1)=input('请输入x '); i=1;s=0;

while(x(i)~='a') s=s+x(i); i=i+1;

x(i)=input('请输入x ,输’a ’结束'); end

xbar=s/(i-1) m=0;

for j=1:i-1

m=m+(x(i)-xbar)^3; end

ske=m/(i-1)

一、填空题

1、MA TLAB 常用操作界面包括 命令窗口 、工作空间窗口、 命令历史窗口 、当前目录窗口 、内

存数组编辑器、M 文件编辑/调试器、帮助导航/浏览器、图形窗口等。

2、MA TLAB 中Inf 或inf 表示 无穷大 、NaN 或nan 表示 不是一个数 、nargout 表示 函数输出变量数目 。

3、工作空间浏览器主要用于内存变量的 查阅 、 保持 和 编辑 。

4、MATLAB 实现将全下标转换为单下标的指令为 sub2ind 、据单下标换算出全下标的指令为 ind2sub 。

5、MA TLAB 中clf 用于 清除图形窗口 、clc 用于 清除指令窗口中显示内容 、clear 用于 清除MATLAB 工作空间中保存的变量 。

二、简答题(每题5分,共20分)

1、简述MATLAB 历史指令窗的主要作用。

答:历史指令窗记录着用户在MATLAB 指令窗中所输入过的所有指令。历史记录包括:每次开启MA TLAB 的时间,每次开启MA TLAB 后在指令窗中运行过的所有指令。应用功能有单行或多行指令的复制和运行、生成M 文件等。

2、简述MATLAB 函数的基本结构。

答:典型M 函数文件的结构:函数申明行、H1行、在线帮助文本区、编写和修改记录、函数体。

3、简述绘制二维图形的一般步骤。

绘制二维图形的一般步骤为:曲线数据准备、选定图形窗及子图位置、调用二维曲线绘图指令、设置轴的范围、坐标分格线、图形注释、图形的精细操作。

三、阅读程序并回答问题(每题4分,共28分) 1、写出下列指令运行结果。 A=zeros(2,4); A(:)=1:8;

s=[2 3 5]; A(s)

Sa=[10 20 30]'

A(s)=Sa ans =

2 3 5 Sa = 10 20 30 A =

1 20 30 7 10 4 6 8

2、写出下列指令运行结果。 A=reshape(1:16,2,8) reshape(A,4,4)

s=[1 3 6 8 9 11 14 16];

A(s)=0 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

3、写出下列指令运行结果。

A=[1,2;3,4];

B=[-1,-2;2,1];

S=3;

A.*B

ans =

-1 -4

6 4

A*B

ans =

3 0

5 -2

S.*A

ans =

3 6

9 12

S*B

ans =

-3 -6

6 3

4、下面的函数主要完成什么功能?

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n;

end

利用函数的递归调用求n!

5、写出下列指令运行结果。

ch=‘ABc123d4e56Fg9’;

subch=ch(1:5)

revch=ch(end:-1:1)

k=find(ch>=‘a’&ch<=‘z’);

ch(k)=ch(k)-(‘a’-‘A’);

char(ch)

subch =

ABc12

revch =

9gF65e4d321cBA

ans =

ABC123D4E56FG9

ans =

4

6、写出下列指令运行结果。

A(1,1)={'this is cell'};

A{1,2}={[1 2 3;4 5 6]};

A{2,1}=[1+2*i];

A{2,2}=A{1,2}{1}+(A{1,2}{1}(1,1)+A{1,2}{1}(2,2));

celldisp(A)

A{1,1} =

this is cell

A{2,1} =

1.0000 +

2.0000i

A{1,2}{1} =

1 2 3

4 5 6

A{2,2} =

7 8 9

10 11 12

7、下面的程序完成功能是什么?

t=0:pi/50:4*pi;

y0=exp(-t/3);

y=exp(-t/3).*sin(3*t);

plot(t,y,'-r',t,y0,':b',t,-y0,':b')

xlabel(‘\bf\it t’);

ylabel(‘\bf\it y’);

grid on;

绘制图形如下:

四、编程题(32分)

1、用命令来创建GUI并绘制方程y=ax2+bx+c图形,需要显示绘图结果的坐标系窗口,还能输入a、b、c的值和x的取值范围,同时用命令设置所以对象的属性。

2、在同一图上分别用红色实线和绿色虚线绘制

y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。(5分)x=0:0.01:4*pi;

y1=sin(x);

y2=cos(x);

z=find(abs(y1-y2)<0.007);

plot(x,y1,'r.-','Linewidth',2,'Markersize',1);

axis([-1.5,15,-1.5,1.5]);

hold on

plot (x,y2,'g.:','Linewidth',2,'Markersize',1);

n=size(z);

plot(x(z),y1(z),'k*','Markersize',15);

3、某商场对顾客所购买的商品实行打折销售,

标准如下(商品价格用price来表示):

price<200 没有折扣

200≤price<500 3%折扣

500≤price<1000 5%折扣

1000≤price<2500 8%折扣

2500≤price<5000 10%折扣

5000≤price 14%折扣

输入所售商品的价格,求其实际销售价格。(5分)

price=input('please input your price:');

a=0;

if price<200

a=1;

elseif price<500

a=2;

elseif price<1000

a=3;

elseif price<2500

a=4;

elseif price<5000 a=5; else a=6; end

switch a case 0

disp('0 inputs given'); case 1

b=price; case 2

b=0.97*price; case 3

b=0.95*price; case 4

b=0.92*price; case 5

b=0.90*price; case 6

b=0.86*price; otherwise

disp('unexpected input!'); end

fprintf('the actaul price is %f',b);

4、二阶微分方程x"+0.2x'+0.4x=0.2u (t), 其中u(t)是单位阶跃函数,试建立系统模型并仿真。

1. 请编写一个M-函数,用来实现级数和

1

253132-+++++=n x x x x S n

并利用该M-函数计算n = 学号末2位数+5,x = n/60时S

的值。 1.

function s=zh(x,n)

if nargin>2,error('wrong');end if nargout>1,error('wrong');end ss=1;

for t=1:n,ss=ss+(x^t)./(2*t-1); s=ss;end

>> zh(35/60,35)

ans =

1.7677

2. 已知系统的框图如下图所示,请推导出从输入信号r(t)

到输出信号y(t)的总系统模型。 2.

syms G1 G2 G3 G4 G5 G6 G7 H1 H2 H3 H4 c1=feedback(G4,H4); c2=feedback(G3*G2,H2); c3=feedback(G5*c1,H3);

G=feedback((G6+G7)*c3*c2*G1,H1)

3. 已知单位负反馈控制系统的被控对象及控制器的传递函数分别为

)

20/1)(5.0/1()

5.2/1(16)(s s s s s G +++=

, )23)(5.1()2)(1(20)(++++=s s s s s Gc 试判断系统的稳定性,并用时域响应检验得出的结论。 >> s=tf('s')

Transfer function: s

>> Gs=16*(1+s/2.5)/[s*(1+s/0.5)*(1+s/20)]

Transfer function: 6.4 s + 16 ---------------------- 0.1 s^3 + 2.05 s^2 + s

>> Gc=20*(s+1)*(s+2)/[(s+1.5)*(s+23)]

Transfer function: 20 s^2 + 60 s + 40 ------------------- s^2 + 24.5 s + 34.5

>> GG=feedback(Gs*Gc,1)

Transfer function:

128 s^3 + 704 s^2 + 1216 s + 640 --------------------------------------------------------

0.1 s^5 + 4.5 s^4 + 182.7 s^3 + 799.2 s^2 + 1251 s + 640

>> eig(GG)

ans =

-20.1421 +34.9785i -20.1421 -34.9785i -1.8264 + 0.5997i -1.8264 - 0.5997i -1.0630

根都有负实部 则系统稳定

>> step(GG ,1)

4. 考虑简单的线性微分方程

)2sin(2413453''')3()4(t e e y y y y y t t --+=++++,

且方程的初值为y(0)=1,y ’(0)=y ”(0)=1/2,y (3)(0)=0.6,,请

用Simulink 搭建起系统的仿真模型,并绘制出仿真结果曲线。

2.6 求??

?

?

??+-+-+-+-++=i 44i 93i 49i 67i 23i 57i 41i 72i 53i 84x 的共轭转置。

>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i];

>> x’ ans =

4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 -

5.0000i 7.0000 +

6.0000i 2.0000 +

7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i

2.7 计算????

??=572396a 与??

?

???=864142b 的数组乘积。 >> a=[6 9 3;2 7 5];

>> b=[2 4 1;4 6 8]; >> a.*b ans =

12 36 3 8 42 40

2.9 对于B AX =,如果????

?

?????=753467294A ,???

???????=282637B ,求

解X 。

>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’; >> X=A\B X =

-0.5118 4.0427 1.3318

2.10 已知:????

?

?????=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

2.11 ????

??-=463521a ,??

?

???-=263478b ,观察a 与b 之间的六种关系运算的结果。

>> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans =

0 1 0 1 0 1 >> a>=b ans =

0 1 0 1 0 1 >> a

1 0 1 0 1 0 >> a<=b ans =

1 0 1 0 1 0 >> a==b ans =

0 0 0 0 0 0 >> a~=b ans =

1 1 1 1 1 1

2.13 在sin(x )运算中,x 是角度还是弧度?

在sin(x)运算中,x 是弧度,MA TLAB 规定所有的三角函数运算都是按弧度进行运算。

2.14 角度[]604530=x ,求x 的正弦、余弦、正切和余切。

>> x=[30 45 60]; >> x1=x/180*pi; >> sin(x1) ans =

0.5000 0.7071 0.8660

Matlab上机_测试题c答案讲课教案

<<<<<<精品资料》》》》》 Matlab 上机测试题答案 班级 姓名 学号 要求: (1)请将程序和运行结果粘贴到题目下面,写清楚哪部分是程序,哪部分是运行结果,运行结果包括图形,图形请适当缩小,然后将word 文档传到教育在线,注意保存格式是2003的doc ,文件名”自111_110110_张三” (2)在最开始前请将输入Matlab 命令窗口中输入”diary ”命令,随后在workspace 窗口中可以发现一个名为“diary ”的文件。在老师要求结束练习后,在命令窗口输入”diary off ”命令,然后将文件“diary ”上传到教育在线。 (3)注意题号不要弄乱。 --------------------------------------------------------------------- 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、已知矩阵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 --------------------------------------------------------------------- 3、利用函数产生3*4阶单位矩阵和全部元素都为8的4*4阶矩阵,并计算两者的乘积。 解:命令为: A=eye(3,4) B=8*ones(4) C=A*B --------------------------------------------------------------------- 4、创建矩阵a=????? ???????------7023021.5003.120498601 ,取出其前两列构成的矩阵b ,取出前两行构成矩阵c ,转置矩阵b 构成矩阵d ,计算a*b 、c

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 上机题及答案

1 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。 for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 disp(m) end end 2.从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 sum=0; n=0; val=input('Enter a number (end in 0):'); while (val~=0) sum=sum+val; n=n+1; val=input('Enter a number (end in 0):'); end if (n > 0) sum mean=sum/n end 3. 若一个数等于它的各个真因子之和,则称该数为完数,如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 4. 从键盘上输入数字星期,在屏幕上显示对应英文星期的单词。 function week n=input('input the number:'); if isempty(n) errror('please input !!')

end if n>7|n<1 error('n between 1 and 7') end switch n case 1 disp('Monday') case 2 disp('Tuesday') case 3 disp('Wednesday') case 4 disp('Thursday') case 5 disp('Friday') case 6 disp('Saturday') case 7 disp('Sunday') end 5. 某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。 写一段程序分别计算出购买1--10台打印机所需的钱数。打印机台数可以在程序开始处指定,或通过input命令读入。运行程序,计算出购买10台打印机的总价格。 写出程序,生成分别购买1--10台打印机所需价格的图表(使用fprintf命令输出图表,不允许手算)。 x=input('请输入购买的打印机台数:'); for m=1:x if m<=1 y(m)=150*m; elseif m<=2 y(m)=150+120*(m-1); else y(m)=150+120+110*(m-2); y(1,m)=y(m); end end y(x) plot(1:m,y,'r*--')

matlab上机练习(附答案)

1.以下两种说法对吗? (1)MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。 (2)MATLAB指令窗中显示的数据有效位数不超过七位。 2.历史指令窗所记录的内容与diary指令所产生的“日志”内容有什么不同? DIARY filename causes a copy of all subsequent command window input and most of the resulting command window output to be appended to the named file. If no file is specified, the file 'diary' is used. DIARY OFF suspends it. DIARY ON turns it back on. DIARY, by itself, toggles the diary state. Use the functional form of DIARY, such as DIARY('file'), when the file name is stored in a string. 3.如何把用户自己的“工作目录”永久地设置在MATLAB的搜索路径上?“位于搜索路 径上的目录”与“当前目录”在MATLAB中的功用相同吗? 4.如何向MATLAB工作空间输入一个含有100个左右元素的一维或二维数值数组?用直 接键入法?用数组编辑器?用M文件编辑器? 5.运用数组算术运算符去掉下面程序里的for/end循环: x=11:15 for k=1:length(x) z(k)=x(k)^2+2.3*x(k)^0.5; end x=11:15 z1=x.^2+2.3*x.^0.5 6.不使用数组算术运算符,重写下面的程序代码: x=[2 1 4] z=1./(1+x.^2) x=2;k=1; while i<=4, z2(k)=1/(1+i^2); i=i+1;x=x+1; end 7.某公司销售电脑打印机的价格方案如下: ()如果顾客只买一台打印机,则一台的基本价格为$150。 ()如果顾客购买两台以上打印机,则第二台价格为$120。 ()第三台以后,每台$110。

matlab基础练习题(带答案)

Matlab基础练习题 常量、变量、表达式 1、MATLAB中,下面哪些变量名是合法的?() (A)_num(B)num_(C)num-(D)-num 2、在MATLAB中,要给出一个复数z的模,应该使用()函 数。 (A)mod(z) (B)abs(z) (C)double(z) (D)angle(z) 3、下面属于MATLAB的预定义特殊变量的是?() (A)eps(B)none (C)zero(D)exp 4、判断:在MATLAB的内存工作区中,存放一个英文字符'a'需要 占用1个字节,存放一个中文字符‘啊’需要占用2个字节。(错,都是2个字节) 5、判断:MATLAB中,i和j都是虚数单位,它们之间没有什么 区别。(对) 6、判断:MATLAB中,pi代表圆周率,它等于3.14。(错,后面 还有很多位小数) 7、在MATLAB中,若想计算的值,那么应该在MATLAB 的指令窗中输入的MATLAB指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。

8、在MATLAB中,a = 1,b = i,则a占_8__个字节,b占_16_个 字节,c占________字节。 9、在MATLAB中,inf的含义是__无穷大__,nan的含义是__非数 (结果不定)___。 数组 1、在MATLAB中,X是一个一维数值数组,现在要把数组X中的所 有元素按原来次序的逆序排列输出,应该使用下面的()指令。 (A)X[end:1] (B)X[end:-1:1](C)X(end:-1:1)(D)X(end:1) 2、在MATLAB中,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、在MATLAB中,依次执行以下指令: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-214

MATLAB上机题汇总(基本题,抽3题)合肥学院

1设置matlab 的工作环境,将工作目录设置为d:\work ,添加搜索目录d:\example 2在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下: 4/3)2 t y e π-= 3自行产生一个5行5列的数组,得到最中间的三行三行矩阵。 4用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置 5求方程组的根 x 1+4x 2-3x 3=2 2x 1+5x 2-x 3=11 x 1+6x 2+x 3=12 6已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。 7已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。 8给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式 9 A=[2 3 4; 1 5 7; 6 2 5] 用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是: [1 5 7; 2 3 4; 6 2 5] 10补充题:电路分析 电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程

方程式如下: 11121222132423432 532()0()()0()0V R I R I I R I I R I R I I R I I R I V -++-=??-++-=??-++=? 假设5个电阻值为已知,2个电压值也为已知,求3个电流值。 11自行产生一个5行5列的数组,用两种方法得到最中间的三行三行矩阵。 12根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示) 13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。 a={pascal(4),'hello';17.3500,7:2:100} 14建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是: 问题1,如何找到第2个人的分数并显示出来 问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来 问题3,全班同学(指这3个学生)的10门课程的每门课程的平均分如何计算出来?要求放到一个数组里。 问题4,找到这个班所有同学的姓名放到一个元胞数组里 15给定一个图像文件,格式是jpg ,通过inportdata 引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB 三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。 16手动构造一个长宽页是1000*1000*3的图像,每个图像的点有三个0-255之间的随机值构成。然后使用image 函数显示这个图像,再用imwrite 函数保存这个图像,使这个图像用图片浏览器也能够查看。 17给定一个矩阵 a = 1 2 3 4 5 6 编写一个M 函数,要求输入是a ,输出有三个:平均数,标准差,秩。程序运行

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上机习题一

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 -

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典型例题

【例】水资源系统规划调度常应用系统分析方法处理,以一个水资源分配问题为例,讨论线性规划问题。例:有甲、乙两个水库同时给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万元。

上机习题6--MATLAB7.0三维绘图

实验六MATLAB7.0三维绘图实验目的: ①掌握绘制三维图能形的方法; ②掌握图形修饰处理方法; ③知道图像处理方法,了解动画制作方法。 实验要求:给出程序和实验结果。 实验内容: 一、绘制三维曲线 sin() cos() sin()cos() x t y t z t t t = ? ? = ? ?= ? 二、绘制三维曲面图z=sin(x+sin(y))-x/10。 三、绘制z=x2+y2的三维网线图形; 四、绘制三维陀螺锥面; (仅供参考: t1=0:0.1:0.9; t2=1:0.1:2; r=[t1 -t2+2]; [x,y,z]=cylinder(r,30); surf(x,y,z); grid ) 五、在xy平面内选择区域[-8,8]×[-8,8],利用mesh、meshc、meshz和surf 绘制z= 六、绘制光照处理后的球面,取三个不同的光照位置进行比较。(提示:可以利用函数sphere和 light) 七、利用peaks产生数据,绘制多峰曲面图。 八. 2 2y x xe z- - =,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同 一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。

九绘制peaks函数的表面图,用colormap函数改变预置的色图,观察色彩的分布情况。

十、用sphere函数产生球表面坐标,绘制不透明网线图、透明网线图、表面图和带剪孔的表面图。 十一、将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。 实验结果: (1) (2)

上机题汇总(必做)

上机题汇总 1设置matlab 的工作环境,将工作目录设置为d:\work ,添加搜索目录d:\example 2在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下: 4/3)t y e π-= 3自行产生一个5行5列的数组,得到最中间的三行三列矩阵。 4用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置 5求方程组的根 x 1+4x 2-3x 3=2 2x 1+5x 2-x 3=11 x 1+6x 2+x 3=12 6已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。 7已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。 8给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式 9 A=[2 3 4; 1 5 7; 6 2 5] 用什么函数,保证第一列排序的时候,其他列跟着变化。最后的结果是: [1 5 7; 2 3 4; 6 2 5] 10补充题:电路分析 电路分析常常涉及到对方程组的求解,这些方程常常是利用描述电流进入和离开节点的电流方程,或者描述电路中网络回路上的电压的电压方程得出的。下图描述了3个回路电压的方程

方程式如下: 11121222132423432 532()0()()0()0V R I R I I R I I R I R I I R I I R I V -++-=??-++-=??-++=? 假设5个电阻值为已知,2个电压值也为已知,求3个电流值。 11自行产生一个5行5列的数组,用两种方法得到最中间的三行三列矩阵。 12根据a=reshape(-4:4,3,3)做一个矩阵,然后(1)取出所有大于0的元素构成一个向量(可推广到从一个矩阵里筛选出符合条件的元素组成一个向量)(2)将原矩阵中大于0的元素正常显示,而小于等于0的元素全部用0来表示(可推广到将原矩阵中不符合条件的全用0来表示,符合条件的值不变)。(思考:大于0的正常显示,小于等于0的用-10来表示) 13建立如下一个元胞数组,现在要求计算第一个元胞第4行第2列加上第二个元胞+第三个元胞里的第二个元素+最后一个元胞的第二个元素。 a={pascal(4),'hello';17.3500,7:2:100} 14建立一个结构体的数组,包括3个人,字段有姓名,年龄,分数,其中分数由随机函数产生一个3行10列的数据表示了有10门课程,每门课程有三个阶段的分数。问题是: 问题1,如何找到第2个人的分数并显示出来 问题2,如何找到第2个人的每门课程3个阶段的平均分数并显示出来 问题3,全班同学(指这3个学生)的10门课程的每门课程的平均分如何计算出来?要求放到一个数组里。 问题4,找到这个班所有同学的姓名放到一个元胞数组里 15给定一个图像文件,格式是jpg ,通过inportdata 引入这个文件,查看引入后数据保存是一个数组,是100*100*3的一个数组,这是一个三维的数组,表明有100*100个点,每个点有RGB 三个方面决定的。现在,要求将这些点的中间部分30个象素宽度的正方形用黑点表示。

MATLAB上机答案

一熟悉Matlab工作环境 1、熟悉Matlab的5个基本窗口 思考题: (1)变量如何声明,变量名须遵守什么规则、是否区分大小写。 答:变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则: 变量名必须以字母开头,只能由字母、数字或下划线组成。 变量名区分大小写。 变量名不能超过63个字符。 关键字不能作为变量名。 最好不要用特殊常量作为变量名。 (2)试说明分号、逗号、冒号的用法。 分号:分隔不想显示计算结果的各语句;矩阵行与行的分隔符。 逗号:分隔欲显示计算结果的各语句;变量分隔符;矩阵一行中各元素间的分隔符。 冒号:用于生成一维数值数组;表示一维数组的全部元素或多维数组某一维的全部元素。 (3)linspace()称为“线性等分”函数,说明它的用法。 LINSPACE Linearly spaced vector.线性等分函数 LINSPACE(X1,X2)generates a row vector of100linearly equally spaced points between X1and X2. 以X1为首元素,X2为末元素平均生成100个元素的行向量。 LINSPACE(X1,X2,N)generates N points between X1and 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、标点符号;可以使命令行不显示运算结果,%用来表示该行为注释行。 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 Matlab 上机模拟试题 1、 计算当1,2,5x =-时,2 1()21 x f x x e x -=+--的值。 2、 计算300tan 605cos30+- 3、 求解矩阵方程:???? ????????????????3542343122321X 4、 求解矩阵方程:??????-=??????????212101343122321X

页脚内容2 5、 计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。 6、 用MATLAB 计算差分方程 P138 157 ()0.7(1)0.45(2)0.6(3)0.8()0.44(1)0.36(2)0.02(3)y n y n y n y n x n x n x n x x +-----=--+-+-当输入序列为 ()()x n n δ=时的输出结果()y n ,n 0,1,...40? =。123 123 0.80.440.360.02()10.70.450.6z z z H z z z z -------++=+--

页脚内容3 N=41;a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n');ylabel('幅度') 7、用MATLAB 计算差分方程 P156 ()0.7(1)0.45(2)0.6(3)0.8()0.44(1)0.36(2)0.02(3)y n y n y n y n x n x n x n x x +-----=--+-+-所对应的系统函数的频率响应。 B=[0.8 -0.44 0.36 0.02]; A=[1 0.7 -0.45 -0.6]; freqz(B,A); 23230.80.440.360.02()10.70.450.6j j j j j j j e e e H e e e e ωωωωωωω--------++=+-- 8、用FFT 计算序列(){13112331}x n =-的频谱。

MATLAB期末上机试题带答案

MATLAB 期末上机考试试题带答案版 姓名: 学号: 成绩: 1.请实现下图: x y y=sin(x) x=linspace(0,8*pi,250); y=sin(x); plot(x,y) area(y,-1) xlabel('x') ylabel('y') title('y=sin(x)') 2.请实现下图: x=linspace(0,2*pi,100); y1=sin(x); subplot(2,2,1) plot(x,y1,'k--') grid on xlabel('x') ylabel('y')

title('sin(x)') legend('y=sin(x)') y2=cos(x); subplot(2,2,2) plot(x,y2,'r--') grid on xlabel('x') ylabel('y') title('cos(x)') legend('y=cos(x)') y3=tan(x); subplot(2,2,3) plot(x,y3,'k-') grid on xlabel('x') ylabel('y') title('tan(x)') legend('y=tan(x)') y4=cot(x); subplot(2,2,4) plot(x,y4) grid on xlabel('x') ylabel('y') title('cot(x)') legend('y=cot(x)') 3.解方程组: a=[3 2 1;1 -1 3;2 4 -4];b=[7;6;-2] ; x=a\b 4.请实现下图:

x y x=linspace(0,4*pi,1000); y1=sin(x); y2=sin(2*x); plot(x,y1,'--',x,y2,'b*') grid on xlabel('x');ylabel('y');title('耿蒙蒙') legend('sin(x)','sin(2*x)') 5.请在x ,y 在(-2,2)内的z=xexp (-x 2-y 2) 绘制网格图 [x,y]=meshgrid(-2:0.1:2); z=x.*exp (-x.^2-y.^2); mesh(x,y,z) 6.请实现peaks 函数: -5 5 x Peaks y [x,y]=meshgrid(-3:1/8:3); z=peaks(x,y); mesh(x,y,z)

matlab练习题和答案

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

MATLAB上机题汇总(较难题,抽1题)合肥学院

1.根据下面的方程绘制图形,y=cos(x)+x ,x 取值-pi-pi ,然后用多项式拟合函数进行拟合。 2.要求编写一个函数文件,将一个给定图片的所有颜色都变深(变深多少自己斟酌),其中黑色为0,白色为255 3.根据下面的方程绘制图形,y=cos(2x)+sin(2x),然后用5次多项式进行拟合。 4.要求编写一个M 函数,完成下列函数的求解:y =sin (x );y =sin (x +pi );y =sin (x +pi /3);y =sin (x +pi/2)自变量x 的变化范围从-pi 到pi ,要求四个图像画在同一个图形窗体中。 5.M 文件的编写 计算分段函数 ?????≠+=+++=10101)1cos(2x x x x x x x y 6.函数文件的编写 编写函数文件,求半径为r 的圆的周长和面积。

7.题目见教材p85,其中的数据可以给出文本文件或者由下面的式子表达 a=[10*rand(24,1)+15,1*rand(24,1)+30,2*rand(24,1)+45],这是24行3列的一个矩阵,第一列表示温度,第二列表示湿度,第三列表示气压。要求如下: (1) 将温度数据取出 (2) 找出一天中最高温度 (3) 按温度进行从小到大(默认)排序 (4) 求出最高温度的时刻 (5) 按温度进行从大到小排序 8.已知Fibonacci (斐波那)数列由式子??=+=--4,3,21k a a a k k k 可以生成,其中初值为121==a a ,试编写出生成某项Fibonacci 数值的MATLAB 函数,并求20a 的值。 9.编写M 函数,判断给定的三边能够构成一个三角形?并求其周长 10.给定一个声音文件,如1.wav ,引入这段声音,将音量改为2倍之后,再保存成2.wav

相关文档