当前位置:文档之家› MATLAB期末复习题

MATLAB期末复习题

MATLAB期末复习题
MATLAB期末复习题

第一章

1.叙述MATLAB的主要窗口包括哪些?其作用是什么?

命令窗口(Commend Window)——供输入命令,实现计算或绘图功能。

工作空间窗口(Workspace)——用于列出数据的变量信息,包括变量名、变量字节大小

变量数组大小、变量类型等内容。

当前目录浏览器(Current Directory )(Current folder 7.9版) ——显示当前目录下所有文件的文件名、文件夹类型和最后修改时间等内容。

命令历史窗口( Commend History )——显示窗口所有执行过的命令,利用该窗口,可以查看曾经执行过的命令,也可以重复利用这些命令。

2.MATLAB的变量命名有什么规则?能用”pi”来作为变量名吗,为什么?

①.变量名区分大小写;②变量名最多包含63个字符,其后的字符将被忽略;

③变量名必须以一个字母开始,其后可以是如意数量的字母、数字或下划线;

④变量名中不允许出现标点符号,因为许多标点符号在MATLAB中有特殊意义。

不能以“pi”来作为变量,因为“pi”在MATLAB中默认为3.1416,若要定义可改为大写的”PI”。

3.复数

i

e

z

i

z

i

z6

3

2

1

2

,2

1

,3

4

π

=

+

=

+

=表达,及计算

3

2

1

z

z

z

z=。本例演示:正确的复数输入法;涉及复数表

示方式的基本指令。

z1= 4 + 3i

z2 = 1 + 2 * i

z3=2*exp(i*pi/6)

z=z1*z2/z3

求实部和虚部,模和辐角,以及幅角由弧度制转换成角度制

real_z=real(z)

image_z=imag(z)

magnitude_z=abs(z)

angle_z_radian=angle(z) %弧度单位

angle_z_degree=angle(z)*180/pi %度数单位

help 列出所有函数分组名(Topic Name)

who 查询指令

save

4.ans含义是:Ans是MATLAB默认的变量,如果用户未定义变量名,系统用于计算结果存储的默认变量名

5.clear含义是清除工作空间的变量

clc表示清除命令窗口所有指令

clf表示清除.fig的已有图形

6.m是表示函数或脚本文件的后缀;mdl表示simulink文件后缀;.fig图形文件后缀;.mat是数据文件后缀。

第二章

0、sym和syms最主要的区别是:sym是定义单个符号变量而syms是定义多个变量

digits(n):设定符号数字“十进制浮点”表示的有效数字位数

vap(x):根据表达式x得到digits指定精度下的符号数字

vap(x,n):根据表达式x得到n为有效数字的符号数字

1、 利用sym 函数可以建立符号矩阵并化简

syms a b x y

m=sym('[1/(a+x),sin(x)*sin(x)+cos(x)*cos(x),(b-x)/(a+x);1,exp(x),x^2-y^2]') factor(m)%对符号矩阵因式分解 simplify(m)%对符号矩阵化简处理

2、 例如(2)符号矩阵的另种创建,并确定其中的未知参量 syms a b t u v x y

A=[a+b*x,sin(t)+u;x*exp(-t),log(y)+v] symvar(A,1)

3、求极限 syms a m x;

f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a); limit(f,x,a) syms x t;

limit((1+2*t/x)^(3*x),x,inf)

4、微分

diff 函数用于对符号表达式求导数。该函数的一般调用格式为:

diff(f):没有指定变量和导数阶数,则系统按findsym 函数指示的默认变量对符号表达式s 求一阶导数。 diff(f,v):以v 为自变量,对符号表达式s 求一阶导数。

diff(f,n):按findsym 函数指示的默认变量对符号表达式s 求n 阶导数,n 为正整数。 diff(f,'v',n):以v 为自变量,对符号表达式s 求n 阶导数。 附加例子 求下列函数的导数。 syms x y z a t; f=exp(-x)+x; diff(f)

(2)f=cos(x^2),求二阶导数,三阶导数 f=cos(x^2); diff(f,x,2)

(3)diff(f,x,3)%3阶导数

???

?

??????-+-++2212cos 2sin 1

y x e x a x b x x x a x )21()2()

1(2)1()1(lim

lim

tan sin x t

a x e e x x x x a x ++--+∞→→

【例2.3-2】

??????=x x t t a f ln cos 3求dtdx

f

d dt f d dx df 222,

,

syms a t x;

f=[a,t^3;t*cos(x), log(x)]; df=diff(f) dfdt2=diff(f,t,2) dfdxdt=diff(diff(f,x),t)

【例2.3-5】设cos(x+siny)=siny 求siny

求导实际上是:对上式两端求导后有dx

dy y y y y y y x =''?='?++-其中cos )cos 1)(sin sin( 再通过求方程求出dx

dy y =

' 要经过以下3个过程

(1)建立方程并利用diff 求复合函数导数 clear syms x

g=sym('cos(x+sin(y(x)))=sin(y(x))') % <3> dgdx=diff(g,x) % <4> g =

cos(x + sin(y(x))) = sin(y(x)) dgdx =

-sin(x + sin(y(x)))*(cos(y(x))*diff(y(x), x) + 1) = cos(y(x))*diff(y(x), x)

(2)利用subs 将'diff(y(x),x)'置换成'dydx' 因为diff(y,x)不能作为变量名字 dgdx1=subs(dgdx,'diff(y(x),x)','dydx')

dgdx1 =

-sin(x + sin(y(x)))*(dydx*cos(y(x)) + 1) = dydx*cos(y(x))

(3)从复合方程中求取未知参量的dydx ,即dx

dy y =

' dydx=solve(dgdx1,'dydx')

dydx =

-sin(x + sin(y(x)))/(cos(y(x)) + cos(y(x))*sin(x + sin(y(x))))

5、序列/级数的符号求和

s=symsum(f,v,a,b)求通式f 在指定变量v 取变[a,b]中所有整数时的和 说明f ,可以使矩阵,求和是对元素

v 缺省时findsym 自动辨认的顺序(symvar ) a,b 缺省时,默认的是[0 v-1]区间

【例2.3-8】求])1(,)

12(1[,12,)1(112

1121k k k x k k k

k k k n

k ---+∑∑∑∞=∞

=-=。 (1)有限项之和

syms n k

f1=1/(k*(k+1));

s1=symsum(f1,k,1,n)

(2)无限项之和注意是对k 求和,所以要设k 为第一变量 f2=x^(2*k-1)/(2*k-1); s2=symsum(f2,k,1,inf)

(3)符号通式数组矩阵级数和 f3=[1/(2*k-1)^2,(-1)^k/k]; s3=symsum(f3,k,1,inf)

6 、符号积分

求积分指令调用格式

intf=int(f,v)给出f 指定变量v 的不定积分 intf=int(f,v,a,b)给出f 对指定变量的定积分 说明:若f 为数组是,应为对数组中元素不定积分 v 缺省时:为symvar 默认的变量

a,b 积分上下限,允许取任何值或符号表达式

【例2.3-9】不定积分?

dx x x )ln ((用int 对表达式求不定积分,并用simple 化简) clear

syms a b x f1=x*log(x) s1=int(f1,x)

s1=simple(s1) % <5>

f1 = x*log(x) s1 =

(x^2*(log(x) - 1/2))/2 s1 =

x^2*(log(x)/2 - 1/4)

【例2.3-10】求dx x x

bx ax ?sin 12

积分。用int 对数组求取不定积分

syms a x b

f2=[a*x,b*x^2;1/x,sin(x)] INTF2=int(f2) pretty(INTF2)

f2 =

[ a*x, b*x^2] [ 1/x, sin(x)] INTF2 =

[ (a*x^2)/2, (b*x^3)/3] [ log(x), -cos(x)]

+- -+ | 2 3 | | a x b x | | ----, ---- | | 2 3 | | | | log(x), -cos(x) | +- -+

【例2.3-11】求三重积分

dzdydx z y x

x x

y

x xy

???++2

1

222

2

1)(,用先用int 对z 积分,再用int 对y 积分,再用int

对x 求积分,共利用调用int 积分3次。 syms x y z

F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2) VF2=vpa(F2)%结果显示32数字

7、求微分方程符号解的一般指令

调用格式如:

S=dsolve('eq1,eq2,….eqn','cond1,cond2,…condn','v') S=dsolve('eq1,eq2,….eqn','cond1','cond2',…'condn','v') 说明:输入量包括微分方程,初始条件,边界条件,指定独立变量 微分方程式必须有的,其余可有可无 说明:输入量必须以字符串形式编写。

若不对独立变量加以专门定义,则默认小写英文字母t 为独立变量 微分方程规定,当y 是“因变量”时,用Dny 表示“y 的n 阶导数”。在t 为默认独立变量时,Dy 表示dy/dt,Dny 表示dy/dt

关于初始条件规定Y(a)=b,Dy(c)=d ,a,b,c,d 可以使变量以外的其他字符,当初始条件少于微分方程个数时,在所得解中将出现任意常数符号C1,C2,….解中任意常数符的数目等于所缺少的初始条件数目。 2.4.3微分方程符号解实例

求 【例2.4-1】

clear all % <1> S=dsolve('Dx=y,Dy=-x') % disp(' ')

disp(['微分方程的解',blanks(2),'x',blanks(22),'y']) disp([S.x,S.y])

例子 2)0(,1)0(),sin(3232

2='==++y y x y dx dy

dx

y d 解

s=dsolve('D2y+3*Dy+2*y=3*sin(x)','y(0)=1', 'Dy(0)=2','x')

8 Laplace 变换及其反变换 及傅立叶变换

Laplace 变换及其反变换的定义

?∞

-=0

)()(dt e t f S F st

?∞+∞-=

j c j c st

dS e S F j

t f )(21)(π 函数调用格式为

Fs=laplace(ft,t,s),求“时域”函数ft 的laplace 变换

ft=ilaplace(Fs,s,t),求“复频域”函数的Fs 的laplace 逆变换 例如计算y=x 3的拉普拉斯变换及其逆变换。 syms x S; y=x^3;

FS=laplace(y,x,S) ft=ilaplace(FS,S,x)

傅立叶正变换的函数:FW=fourier(ft,t,w) 傅立叶逆变换的函数:ft=ifourier(ft,w,t)

9、符号矩阵分析和代数方程解

2.6.1符号矩阵分析

表2.6.1符号矩阵分析和解算指令汇总表表中需要特别掌握的有

det 行列式的值 inv(A):矩阵的逆 举例与说明

syms a11 a12 a21 a22 A=[a11,a12;a21,a22] DA=det(A) IA=inv(A)

diag(A)取对角元构成向量,或据向量构成对角阵 (1)用法1

设A 为m ×n 矩阵,diag(A)函数用于提取矩阵A 主对角线元素,产生一个具有min(m,n)个元素的列向量。

diag(A)函数还有一种形式diag(A,k),其功能是提取第k条对角线的元素。例如:

a=[1 2 3 4;5 6 7 8;9 10 11 12]

d=diag(a)

d1=diag(a,1)

d2=diag(a,-1)

(2)用法2

构造对角矩阵

设V为具有m个元素的向量,diag(V)将产生一个m×m对角矩阵,其主对角线元素即为向量V的元素。

例如

diag([1,2,-1,4])

rank(A):矩阵的秩

A=rand(5)

C=rank(A)

tril:A的下三角

求矩阵A的下三角阵的MATLAB函数是tril(A,n)。

a =[ 7 13 28;2 -9 8;0 34 5]

b=tril(a,-1)

triu:A的上三角

上三角矩阵

求矩阵A的上三角阵的MATLAB函数是triu(A,n)。

a =[ 7 13 28;2 -9 8;0 34 5]

b=triu(a,1)

10、一般代数方程组的解

在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:

S=solve(s):求解符号表达式s的代数方程,求解变量为默认变量。

solve(s,v):求解符号表达式s的代数方程,求解变量为v。

S=solve('eq1','eq2',…,'eqn','v1','v2'…'vn'):eq1,eq2,…,eqn字符串表达式或字符串表达式方程,字符串表达式求解变量分别v1,v2,…,vn。

S=solve(exp1,exp2,…expn,v1,v2,….vn)exp1,exp2,…expn,只能是字符串表达式,v1,v2,….vn字符串表达式求解变量

注意:(ⅰ)S是一个构架数组如果要显示求解结果,必须采用S.v1,S.v2,……S.vn

(ⅱ)在得不到“封闭型解析解”时,如果又不存在其他不确定参数,就给出数值解。

【例 2.6-3】求线性方程组

(1)采用矩阵除的线性方程解法;

????

??

??

?=--+=-+=-++=++184

1022d n p q p

n d q p q d n q p n d ??

??

?

?

??????=????????????------1

010*********

11111121

211q p n d AX=b

A=sym([1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1]); b=sym([0;10;0;1]);

X1=A\b %

(2)solve 求代数方程解。

eq1=sym('d+n/2+p/2-q'); % eq2=sym('d+n-p+q-10'); % eq3=sym('d-n/4-p+q'); % eq4=sym('-8*d-n+p+q-1'); %

S=solve(eq1,eq2,eq3,eq4,'d','n','p','q'); % <8> disp([' d',' n',' p',' q'])

disp([S.d,S.n,S.p,S.q]) % <10> 例如

解下列方程。

(1)1/(x+2)+a=1/(x-2) syms x a

x=solve('1/(x+2)+a=1/(x-2)','x')

【例2.6-4】求方程组???=++=++0

z 0

uy 2w y w uz (会一种方法即可)

方法1

syms x y z v w u

S=solve('u*y^2+v*z+w=0','y+z+w=0','y','z') % <1> disp('S.y'),disp(S.y),disp('S.z'),disp(S.z) %

方法2

S=solve('u*y^2+v*z+w','y+z+w','y,z')

disp(S)

方法3

syms x y z u v w

S=solve(u*y^2+v*z+w,y+z+w,y,z)

方法4

[y,z]=solve('u*y^2+v*z+w=0','y+z+w=0','y','z')

方法5

[y,z]=solve('u*y^2+v*z+w=0','y+z+w=0') %求得默认的y,w 为变量

方法6

S=solve('u*y^2+v*z+w=0','y+z+w=0') % 求得默认的y,w 为变量

【例2.6-6】求()22=+x

x

的解 clear all,syms x;

s=solve('(x+2)^x=2','x') xs=(s(1)+2)^s(1)

<3>

解方程(编程)

??

?

??=+-=-+=++924332212z y x z y x z y x

syms x y z; f1='x+2*y+z=1'; f2='2*x+y-2*z=3'; f3='3*x-4*y+2*z=9’ [x,y,z]=solve(f1,f2,f3)

第三章

1、概念

什么叫3维数组:

A M*N*K :表示行维M ,列维N,页维K 的三维数组:如=??K N M A =K N M ijK a ??][

其中i 行下标,j 列下标,k 页下标 什么叫矩阵Matrix

A M*N :表示M 行N 列构成的矩阵A:是有M*N 个数,按照一定次序,排放成的M 行N 列矩阵阵列。如

?

?

???

???????=?MN M M N N N

M a a a a a a a a a A 2

1

2222111211=N M ij a ?][

说明

矩阵的4中特殊形式

(1)M=N的矩阵,称为N阶仿真

(2)M=1的矩阵,称为(1*N)的行向量,简称为行向量

(3)N=1的矩阵,称为(M*1)的列向量,简称为列向量

(4)(1*1)的矩阵,称为标量

2数组的创建方法

递增/减型行(列)数组的创建

数组特点:数组元素值得大小按照递增或递减的次序排列;数组之间的“差”是“确定”的,即“等步长”的用途:用在函数的自变量

(1)“冒号”生成法

X = A : INC : B

说明:a初值,b终值inc步长

例如:T=0:0.1:2*pi

(2)线性(或对数)定点法

x = linspace ( a , b , n ) 以a,b为左右端点,产生线性的n个数.步长为(b-a)/(n-1)

x = logspace ( a , b , n ) 以a,b为左右端点,产生对数的n个数。

例如T=linspace(0,2*pi,601)

(3)其他类型行(列)数组的创建

(a)逐个元素输入法

如A=[1 2;3 4]

(b)运用函数生成

如ones(1,n)

eye(m,n)

rand(m,n)

(4)小规模数组的直接输入法

二维数组的创建三要素

(a)整个输入数组必须以[]为首尾

(b)数组的行与行之间;或回车键

(c)数组元素必须由','逗号或空格分开

(5)中规模数组的数组编辑器创建法

(6)中规模的M文件创建法

3、查看数组的维度的指令及全下标和单序号编址相互转换

(1)ndims(A):测量数组的维度

(2)size(A):测量数组A规模的指令

(1)全下标编址和单序号编址的转换指令

[rowsub, colsub] = ind2sub(ArraySize,IND) IND = sub2ind(ArraySize, rowSub, colSub)

例如

clear

A=[1:3:16;2:3:17;3:3:18]

Ass1=A(2,3)

r=[2,3];

c=[1,5];

As22=A(r,c)

As26=A([1,3],:)

4、非数的产生

例如:以下执行结果为NaN

a=0/0,b=0*log(0),c=inf-inf

5、非数的寻访

例如:查找下列矩阵中非数元素

R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN LR=isnan(R)

6、关系运算

关系运算示例

A=1:9,B=10-A

r0=(A<4) %

r1=(A==B)

7、逻辑运算示例

A=[-2,-1,0,0,1,2,3]

L1=~(A>1) %

L2=(A>0)&(A<2)

8、【例 3.2-3】欧姆定律:i

u

r

,其中i u r , ,分别是电阻(欧姆)、电压(伏特)、电流(安培)。验证实验:据电阻两端施加的电压,测量电阻中流过的电流,然后据测得的电压、电流计算平均电阻值。(测得的电压电流具体数据见下列程序)。

(1)非向量化编程(依赖循环编程) clear

V=[0.89,1.20,3.09,4.27,3.62,7.71,8.99,7.92,9.70,10.41];

I=[0.028,0.040,0.100,0.145,0.118,0.258,0.299,0.257,0.308,0.345]; % L=length(V);

%<4> for k=1:L

r1(k)=V(k)/I(k);

end % <7> % --------------------

sr=0; % <8> for k=1:L

sr=sr+r1(k); e nd

r1=sr/L % <12>

(2)向量编程(MATLAB 特色)

rL=V./I % <13> r2=mean(rL)

第四章

1、计算精度可控的数值积分

4.1.2数值积分中是根据传统的方法编写了2个指令,用以计算数值积分。但由于实际工程中以上2个指令可能存在精度难以控制,或不能处理广义积分,还可能运算速度慢。 所以根据最新算法设计了2个函数。 q=integral(fun,xmin,xmax)

意义:在xmin 到xmax 区间上计算fun 函数的精确积分(简单调用) q=integral(fun,xmin,xmax,Name,Value)

意义:在xmin 到xmax 区间上计算fun 函数的精确积分(复杂调用) 说明:

fun:表示被积函数的M码匿名函数或函数句柄

【例4.1-5】

(1)

x=linspace(0.01,1.2,50); 构造50个自变量X数组

g1=x.^(-0.2); g2=x.^5; 计算两个函数对应自变量的函数值

plot(x,g1,'-r.',x,g2,'-b*')

axis([0,1.2,0,3])

legend('g_1(x)=1/x^{0.2}','g_2(x)=x^5','Location','North') title('x位于[0,1]间的g_1(x)曲线与g_2(x)曲线所夹的区域')

图 4.1-5 待求面积的区域

(2)采用标量型匿名函数计算积分

format long

G1=@(x)x.^-0.2; %<8>构造g1(x)匿名函数

Q1=integral(G1,0,1) %<9>在[0 1]区间计算g1(x)曲线下的面积G2=@(x)x.^5; %<10>构造g2(x)匿名函数

Q2=integral(G2,0,1) %<11>在[0 1]区间计算g2(x)曲线下的面积S12=Q1-Q2 %<12> 两曲线所夹区域的面积

Q1 =

1.250000027856048

Q2 =

0.166666666666667

S12 =

1.083333361189381

(3)采用阵列型匿名函数计算积分

G=@(x)x.^[-0.2;5]; %<13>构造阵列性匿名函数

Q=integral(G,0,1,'ArrayValued',true) %<14>复杂调用格式的积分结果

S=[1,-1]*Q % <15>

Q =

1.250000027856048

0.166666666666667

S =

1.083333361189381

(4)符号积分验证

syms t %定义符号变量

Gsym=vpa(int(t.^[-0.2;5],0,1)); %计算两个函数具有32精度的积分值

Ssym=Gsym(1)-Gsym(2) %<17>至少31位精度的曲线所围区域面积

Ssym =

1.0833333333333333333333333333333

2、函数极值的数值求解

只有处理极小值(局域极值)指令,没有专门的极大值指令(极大值是极小值f(x)的负数即-f(x))。

[x,fval,exitflag,output]=fminbnd(fun,x1,x2,options)求一元函数在区间(x1,x2)中极小值

[x,fval,exitflag,output]=fminsearch(fun,x0,options)单纯形法求多远函数极值点

说明:

(1)fminbnd:

输入参数说明

fun:两个函数中都有的fun:待求目标函数书写方法

①M文件的函数句柄

②字符串

③内联对象

④匿名函数

x1左边界;x2:右边界

options:配置优化参数(通常默认即不用书写)

输出参数说明

x,极值点

fval,目标函数

exitflag,若大于0的数,说明成功的搜索岛极值点

output:给出优化算法和迭代次数

(2)fminsearch

输入参数说明

fun:同fminbnd

x0,搜索七点的向量或一组搜索起点的矩阵

当采用单个起点搜索时,输出量x也是一个单点

当采用多个搜索起点(矩阵)时,该矩阵的每一列代表一个候选极值点。

搜索到的极值点按照目标函数递增次序排列。极值点x(:,1)对应的目标函数极小值由f val给出。

fval,目标函数(同fminbnd)

exitflag,若大于0的数,说明成功的搜索到极值点(同fminbnd)

输出参数说明

x,极值点(同fminbnd ) fval,目标函数(同fminbnd )

exitflag,若大于0的数,说明成功的搜索岛极值点(同fminbnd ) output :给出优化算法和迭代次数 (同fminbnd )

【例4.1-7】已知1010,sin )1.0(5.0sin 21.0≤≤-+-=-x x x x e y x

在区间,求函数的最小值。

本题目的思路:

(1)符号计算求极值的局限性 (2)fminbnd 求极小值的局限性

(3)求最小值时,需要整个区间的函数信息和图形法功用(先画整个区间的图示,限定好区间,再求,不能轻信fminbnd 函数的结果) (1)用“导数为零”法求极值点

syms x

y=sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1); yd=diff(y,x);

%求导函数

xs0=solve(yd,x)

%求导函数为0的自变量值xs0

<4>

yd_xs0=vpa(subs(yd,x,xs0),6) %验算用:导函数在xs0处为0吗 y_xs0=vpa(subs(y,x,xs0),6) %在xs0处的函数值

xs0 =

0.050838341410271656880659496266968 yd_xs0 =

2.29589*10^(-41) y_xs0 = -0.00126332

(2)采用优化算法求极小值

x1=-10;x2=10;

%搜索区间的边界

yx=@(x)(sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1));

%采用匿名函数形式定义被求极小值的函数y(x)

[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)

% <9>

% xn0,fva1分别是极值点和函数极小值

xn0 =

2.514797840754235

fval =

-0.499312445280039

exitflag =

1

output =

iterations: 13

funcCount: 14

algorithm: 'golden section search, parabolic interpolation'

message: [1x112 char]

(3)绘图观察最小值

xx=-10:pi/200:10; %采用点应做够密

yxx=subs(y,x,xx);

plot(xx,yxx)

xlabel('x'),grid on

图 4.1-5 在[-10, 10]区间中的函数曲线

(4)距图形观察,重设fminbnd的搜索区间

x11=6;x2=10; %搜索区间的边界

yx=@(x)(sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1));

%采用匿名函数形式定义被求极小值的函数y(x)

[xn00,fval,exitflag,output]=fminbnd(yx,x11,x2) % <16>

% xn0,fva1分别是极小值点和函数极小值

xn00 =

8.023562824723015

fval =

-3.568014059128578

exitflag = 1 output =

iterations: 9 funcCount: 10

algorithm: 'golden section search, parabolic interpolation' message: [1x112 char]

3常微分方程的数值解

M ATLAB 提供一套好的求微分方程的指令

[t,Y]=ode45(odefun,tspan,y0)采用4阶Runge-Kutta 数值积分法解微分方程

说明:

(1) 输入变量:

odefun:是待解微分方程的函数文件句柄。要求函数文件的输出形式必须是待解函数的一阶导数。也就是不管

原方程是不是一阶导数,必须化成一阶导数的形式才可以用ode45求解。一解微分方程形式为:

),(t y f y =',y 是(n*1)向量

tspan :常被赋成二元向量[t0,tf],此时tspan 用来定义求数值解的时间区间。 y0: 一解微分方程组的n*1初值列向量

t : 所求数值解的自变量数据列向量(假定其数据长度为N ),而Y 则是(N*n )矩阵,输出量Y 行

中第K 列Y(:,K),就是微分方程y 的第k 分量的解

【例 4.1-9】求解微分方程0)1(222=+--x dt dx x dt

x d μ,在初始条件0)0(,1)0(==dt dx x ,情况下的解,并图

(1) 把高阶微分方程改写成一阶微分方程组,令

dt

dx y x y =

=21, 写成微分方程系数矩阵(雅可比系数阵)的形式???

???=????????????--=?????

?

??????01)0()0(,)1(21122

1221y y y y y y dt dy dt dy μ,=2

(2) 根据上述一阶微分方程组编写M 函数文件DyDt.m function ydot=DyDt(t,y) mu=2

ydot=[y(2);mu*(1-y(1)^2)*y(2)-y(1)];注意一阶导数ydot 是2*1列向量 (3) 解微分方程

tspan=[0,30];

%求解的时间区间

y0=[1;0]; %初值向量应与DyDt.m 文件中y 形式一致 [tt,yy]=ode45(@DyDt,tspan,y0); %<3>

plot(tt,yy(:,1))

xlabel('t'),title('x(t)')

图 4.1-6 微分方程解

(4)

plot(yy(:,1),yy(:,2)) %函数和其导函数勾画的曲线称为“相轨迹”xlabel('位移'),ylabel('速度')

第五章

1、二维曲线知识点汇总

t1=(0:11)/11*pi; %12个采用点偏少"知识点1"

t2=(0:400)/400*pi; %401个采用点密集

t3=(0:50)/50*pi; %51个采样点已够

y1=sin(t1).*sin(9*t1); %数组运算“知识点2”

y2=sin(t2).*sin(9*t2);%数组运算

y3=sin(t3).*sin(9*t3);%数组运算

subplot(2,2,1),plot(t1,y1,'r.') %画离散点“知识点3,4”

legend('y1')%画离散点%“知识点5”

axis([0,pi,-1,1]),grid on,title('(1)点过少的离散图形')%“知识点6,7,8”

hold on %“知识点9”

stem(t1,y1,'og') %“知识点10”

text(0.9,0.7,'采样点')%“知识点11”

text(0,-0.5,'杆形线表示')

hold off %“知识点9”

subplot(2,2,2),plot(t1,y1,t1,y1,'b.')%画离散点及期间的连线

legend('y1')

axis([0,pi,-1,1]),grid on,title('(2)点过少的连续图形')

subplot(2,2,3),plot(t2,y2,'r.') %画离散点

text(0.3,0.5,'sin({\omega}t+{\beta})*sin(9{\omega}t+{\beta})')%“知识点11”legend('y2')

axis([0,pi,-1,1]),title('(3)点密集的离散图形')

subplot(2,2,4),plot(t3,y3,'cp') %画连续曲线

legend('y3')

axis([0,pi,-1,1]),title('(4)点足够的连续图形')

2练习标识的用法(自己单独练习5.2.5)

clf;t=0:pi/50:2*pi;

y=sin(t);

plot(t,y)

axis([0,2*pi,-1.2,1.2])

text(pi/2,1,'\fontsize{16}\leftarrow\itsin(t)\fontname{隶书}极大值')

title('y=sin(t)')

xlabel('t')

ylabel('y')

第6章

1、程序控制结构分为哪几种?

顺序结构、选择结构、循环结构

顺序结构

(1).数据的输入

从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为:

A=input(提示信息,选项);

其中提示信息为一个字符串,用于提示用户输入什么样的数据。

如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令:

xm=input('What''s your name?','s');

(2).数据的输出

MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为

disp(输出项)

其中输出项既可以为字符串,也可以为矩阵

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实验题答案

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 中,下面哪些变量名是合法的?( ) (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分)大约20空 (注:写出完成要求所需的命令语句或题目给定语句执行后输出的 结果) 1. Matlab 中用来表示不确定值的变量是 NaN ;默认变量i 表示 虚数单位 。 2. Matlab 中符号 ; (分号) 可以使命令行不显示运行的结果,表示该行为注释行的符号为 % (百分号) 。 3. Matlab 将工作空间所有变量保存在默认目录下的命令是 Save 。(命令复习) 4. 骰子会掷出1到6的随机数字,用函数rand 和取整函数(Important)模拟骰子某次投掷出的数字的命令为 ceil(6*rand) ,模拟两 个骰子某次投掷的数字组合之和情况的命令为 。 5. 生成一个含有10个元素的行向量x ,其元素在[-1,1]之间均匀分布的的命令为 x=2*rand(1,10)-1 ,使用向量x 的后5个元素作为对角线 元素生成对角阵A 的命令为 A=diag(x(end-4:end)) ,将A 的主对 角线下方的元素(不含主对角线)全部填充为2014的命令为 B=ones(5); 2014*B-triu(B)+A 6. 为函数22 110at t x +=分布定义内联函数命令是 ,定义匿名函数的命令是 7. 在循环结构中使用 break 语句可以终止当前循环。 8. Matlab 用于绘制统计直方图的命令是 hist ;用于绘制y 轴为对数坐标的单对数坐标图的命令为 semilog 。

二、解答题:大约七道题目 1. 在[0,π2]区间上绘制如下图所示的sin(x)与sin(x 2)的曲线,并如图为图像添加标题以及为坐标轴添加标注。 2.绘制上面曲面的图形(提示:该曲面由上下两部分组成:) 3.创建命令式的M 文件计算圆形的面积S ,提示用户输入圆形的半径r ,并输出圆形的面积。(注意输入输出都要对用户添加一定的提示语) %Function Circle 4.请利用matlab 的符号工具箱做下面的运算,并写出相应的命令。 (1) 求极限x e x L x x -+=→10)1(lim ; (2)求积分:dx x x ?∞+02sin ; Syms x; f=((1+x)^(1/x)-exp(1)/x; limit(f,x,0) 2222, [2,2], [1,1]z x y x y =+∈-∈-

MATLAB实验题答案

result5 = ( 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 58 11 >> result4=b*d result4 = 31 22 22 40 49 13 31 22 22 40 49 13 -5 -8 7 >> result6=a.*b result6 = 2 8 -3 415 30 >> result7=a./b result7 = >> result8= Attempt to reference field of non-structure array. >> result9=a.\b result9 = >> result10=a92 result10 = 1 4 9 16 25 36 >> resultl 1=29a result11 = 2 4 8 16 32 64 >> result5=[b;c']*d 3、用MATLAB求解下面的的方程组。 1、求以下变量的值,并在MATLAB^验证。

1 2 x1 3 2 x2 11 5 x3 2 1 3 x4 >> 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 >> 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 7 2 1 2 9 15 3 2 2 2 11 5 1 3 2 13 (1)求矩阵A的秩(rank) (2)求矩阵 A 的行列式(determinant) (3)求矩阵 A 的逆(inverse) (4)求矩阵 A 的特征值及特征向量 (eigenvalue and eigenvector) >> A3=[7 2 1 -2;9 15 3 -2;-2 -2 11 5;1 3 2 13] >> r=rank(A3) >> b=inv(A3) >> a=det(A3) >> [V,D]=eig(A3) 10 n 10 查看y 的值) m1=0; for m=-10:10 m仁m1+2^m; end m1 m1 = 6、求分段函数的值。 用if 语句实现,算出下列表中x 对应的y 值。 x=input('enter x='); if x<0 y=x A2+x-6; elseif x>=0&&x<5 y=xA2-5*x+6; else y=xA2-x-1; end y 7、分别用if 和switch 语句实现,将百分 制成绩转换为成绩等级A、B、C、D、E。 其中90~1 00分为A,80~89 分为B,70~79 分为C,60~69 分为D,60 分以下为E。 对超出百分制范围的成绩,给出错误提示 信息。 if 结构程序: x=input('please enter score='); if x>=90&&x<=100 9 2 10 disp('A') 7 2 9 15 (1) 2 2 1 3 4 7 1 0 A 4、已知 2n 2 10 29

matlab考试题及答案

%1、编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。 function f=NO_1(X); Y(1)=X;k=1; while (X~=1) k=k+1; if (mod(X,2)==0) X=X/2; else X=3*X+1; end Y(k)=X; end plot(Y,'b.') end % 2、编制程序产生一个数组,满足:a1=1,a2=1,从第三个元素开始,每个元素等于前两个元素的和,直到数组的前后两个元素的比值比小于1e-4,并且以红色点线的形式画出这个数组。 clear; A(1)=1; A(2)=1; i=3; Z=1; while (abs(Z)>=1e-4) A(i)=A(i-1)+A(i-2); Z=A(i-1)/A(i); i=i+1; end plot (A,'r.') % 3、编写一个函数,能够产生分段函数。function y=test_3_1(X) if (X<=2) y=*X; elseif (X>6) y=; else y=调用分段函数,绘制曲线。 clear; i=1; for j=0::2; x(i)=j;y(i)=test_3_1(j)*test_3_1(j+2); i=i+1; end plot(x,y) % 4、在2pi周期内画正弦函数曲线,并加注坐标轴标识和标题,然后在3pi/4,pi,5pi/4处分别加入带箭头的说明性文本,最后加注图例。 clear; t = 0:pi/50:2*pi; n = length(t); y = sin(t); plot(t,y,'-bo','linewidth',1) xlabel('X');ylabel('Y'); title('正弦函数曲线'); text,, ' \leftarrow 3pi/4','FontSize',18); text,, ' \leftarrow 3pi/4','FontSize',18); text,,' \leftarrow 3pi/4','FontSize',18); hleg1 = legend('sin(x)'); % 5、A为任意一个n*m矩阵,写程序来计算A 中有多少个零元素,并输出个数。 A=input('输入一个矩阵 A = ') n=length(find(A==0)) % 6、A为任意一个向量,写程序找出A中的最小元素,并且输出这个最小元素。 A=input('输入一个向量 A = '); x=length(A); i=1; y=A(i); while (iA(i)) y=A(i); end end disp('最小元素是:') disp(y) % 7、某系统由四个典型环节构成,试根据四阶龙格—库塔公式,求输出量y的阶跃响应,取仿真时间Tf=10s, %步长h=。

Matlab 期末考试题库(共12套卷)

第一套 华东交通大学2015-2016学年第一学期Matlab期末考试 一、填空题(4*6=24分) 1、在MATLAB命令窗口中的“>>”标志为MATLAB的提示符,“│”标志为提示符。 2、符号表达式sin(2*a+t)+m 中独立的符号变量为__ _。 3、在通常情况下,左除x=a\b是的解,右除x=b/a是的解,一般情况下,。 4、为了使两个plot的图形在同一个坐标显示,可以使用_____命令进行图形保持;可以使用_ __命令为图形添加网格。 5、倘若要是对x进行赋值,从5到25,间隔是0.1,为;倘若要是对x进行赋值,从2到20,中间间隔100个点,为 6、A=[1,2;3,4];B=[1,0;0,1]; A*B= _ , A.*B=_ _; 二、选择题(4*6=24分) 7、如果x=1: 2 : 8,则x(1)和x(4)分别是( ) A.1,8 B.1, 7 C.2, 8 D.2, 7 8、运行如下程序后,输入9回车,命令窗口(command windows)显示的结果为( ) c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+abs('a')-abs('A'))); elseif c>='a'& c<='z' disp(setstr(abs(c)- abs('a')+abs('A'))); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end A. 9 B. 8 C. 7 D. 6 9、MATLAB表达式2*2^3^2的结果是() A.128 B.4096 C. 262144 D.256 10、在循环结构中跳出循环,执行循环后面代码的命令为( ) (A) return (B) break (C) continue (D) keyboard 11、在图形指定位置加标注命令是() A. title(x,y,?y=sin(x)?); B. xlabel(x,y,?y=sin(x)?); C. text(x,y,?y=sin(x)?); D. legend(x,y,?y=sin(x)?); 12、下列哪个变量的定义是不合法的()。 (A) abcd-3 (B) xyz_3 (C) abcdef (D) x3yz 三、程序题(52分) 13(10分)、在同一窗口绘制6个子图,已知t=0.1:0.1:2*pi,每个子图分别绘制(其中y1=sin(t),y2=cos(2t),y3=sin(t)+cos(t),y4=3t, y5=2ln(t),y6=et); 14(10分)、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price<200 没有折扣 200≤price<500 3%折扣 500≤price<1000 5%折扣 1000≤price<2500 8%折扣 2500≤price<5000 10%折扣

Matlab考试题库答案

填空题 1、标点符号; %—用来表示该行为注释行。 可以使命令行不显示运算结果, 2、x 为0 ~4pi ,步长为 的向量,使用命令 x=0:*pi:4*pi 创建。 3、输入矩阵A=[1323?57569 ] ,使用全下标方式用A(2,2)取出元素“-5 ”,使用单下标方式用A(5)取出元素“-5 ”。 4、符号表达式sin(2*a+t)+m 中独立的符号变量为 t 。 5、M 脚本文件和M 函数文件的主要区别是M 脚本文件没有函数定义和M 函数文件有函数定义_______。 6. 设x 是一维数组,x 的倒数第3个元素表示为x(_end-2_) 设y 为二维数组,要删除y 的第34行和48列,可使用命令y(34,:)=[] ; y(:,48)=[]; 7. 将变量x 以Ascii 文本格式存储到文件,应使用命令 save _x ; 8. 在while 表达式, 语句体, End 循环语句中,表达式的值 非零 时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 9.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she ”,应使用命令x=input(‘Who is she’,’s’) ; 10.设A=(a ij )m?n 和B=(b ij )m?n 和C=(c ij )m?n 均为m*n 矩阵,且存在于WorkSpace 中,要产生矩阵D=(a ij ?c ij b ij c ij ?)m?n ,可用命令D=(A-C)/B.^C , 计算|(A ′B )?1| 可用命令det(inv(A’*B) 11. 在MATLAB 命令窗口中的“>>”标志为MATLAB 的 命令行 提示符,“│”标志为 输入 提示符。 12.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。 A+B ; A.*B ; A==B ; ans= [2,2,6;5,10,0;7,9,11] ans= [1,0,9;4,25,0;0,8,18] ans= [1,0,1;0,1,1;0,0,0] 13.已知A 是矩阵,求A 的对角矩阵函数是 diag ; 求A 的下三角矩阵函数是 tril 。 的程序文件和Simulink 模型文件的扩展名分别是.m 、.mdl 最基本的绘图函数为plot() 16. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A= [2;5] 17. fix= -1 , round= -2 . 18.已知A=[1 3;4 6];C=[A,eye(sizeA);A ,ones(sizeA)] 则C= [1 3 1 0;4 6 0 1;1 3 1 1;4 6 1 1]

西安石油大学MATLAB期末试卷

实用文档 标准文案 一、填空题。(30分,每小空1分) 1. MATLAB 变量命名,需要满足3条规则,分别是 、 、 2. 将变量值进行最小整数比的有理格式命令: 3. 标点符号_______可以使命令行不显示运算结果, 用来表示该行为注释行。 4. x 为0~π,步长为0.1π的向量,创建x 语句为 。 5. 输入矩阵A=[1 2 3 4;-2 -3 -4 -5;0 6 7 8],使用全下标方式用 取出元素“-5”,使用单下标方式用_______取出元素“-5”。 6. 对多行进行注释的快捷键为 对多行去掉注释的快捷键为 7. 设x 是一维数组,x 的倒数第3个元素表示为_______; 8. 设y 为二维数组,要删除y 的第34行和48列,可使用命令_______;_______; 9. 在while 表达式, 语句体, end 循环语句中,表达式的值为____时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 10. 要从键盘读入一个字符串并赋值给变量x ,且给出提示“What is your name?”,应使用命令_________; 11.已知A 、B 和C 均为n*n 矩阵,且存在于WorkSpace 中,要产生矩阵 () 1 ()C A C D A B B --= ,可用命令________ _,计算 12. 已知A=[123;450;789];B=[103;150;012];写出下列各指令运行的结果。A+B ;A.*B ;A==B ; 13. 已知A 是矩阵,求A 的对角矩阵B 的命令是_______,求A 的下三角矩阵C 的命令是_______。 14. 生成正态分布4?6随机矩阵A 的命令是 ,删除矩阵A 的第一列和第三列命令是 __________________ 15. 已知A=[1 5 3;4 2 6; 11 1 0]; A(7)=__________。

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试卷合集附答案

一、填空题 1、求可逆矩阵A的逆矩阵的指令是 inv(A) 2、A=[0 2 3 0],B=[4 5 0 0],则X=A&B的显示结果为 0 1 0 0 3、求矩阵A的转置矩阵的指令是: A’ 4、x=[10 -20 30]; a=sign(x);显示结果为 1 -1 1 5、Notebook是Matlab的文字处理工具,启动Notebook有两种方法,即一 种是在 Word 中启动,另一种是在 Matlab 中启动。 6、Matlab7.3提供了非常强大的帮助系统,包括帮助命令、帮助 窗口、HTML格式帮助、pdf格式帮助和帮助演示等。 7、clc命令和clear命令的区别是 clc清除命令窗口所有显示内容; Clear清除所有显示的变量 . 8、命令窗口中的type命令的功能为显示文件的内容 . 9、matlab7.3提供了三种程序调试的工具,包括直接检测调试、专用调试命 令和使用 M文件编辑/调试器。 10、matlab除了最常用的主函数和子函数外,还提供了嵌套函数、私有函数、 重载函数和匿名函数。 11、在matlab7.3中,创建句柄图形对象的命令格式为____________ h_obj=funname(‘PropertyName’,PropertyValue,……)_ 12、计算5*e3*|cos175°|语句为 5*exp(3)*abs(cos(175*pi/180)). 13、创建随机矩阵的指令用rand,创建稀疏矩阵用sparse 14、为图形添加网格使用grid on,使用legend命令添加图例。 1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、 命令历史窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、 帮助导航/浏览器、图形窗口等。 2、MATLABInf或inf表示无穷大、NaN或nan表示不是一个数、nargout表 示函数输出宗量数目。 3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔; 用作输入量与输入量之间的分隔符;用作数组元素分隔符号。 4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。 5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全 下标的指令为Ind2sub。 6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。 7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第 2行第3列元胞中的内容用A{2,3}。 8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear 用于清除MATLAB工作空间中保存的变量。 1.已知A=[0 9 6;1 3 0];B=[1 4 3;1 5 0];写出下列各指令运行的结果。 A & B 的运行结果ans= ; A ./ B 的运行结果ans= 。 2. 产生4阶全0方阵的命令为;产生3阶全1方阵的命令为。 3. A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为和。

MATLAB复习题.doc

MATLAB期末考试题目 ------电气二班 一.选择题。 1.下列哪个变量的定义是不合法的(A) A. abcd-3 B. xyz_3 C. abcdef D. x3yz 2.在同一个图形窗口中画出三行两列的图形并指定当前可编辑图形为第3个图 的正确的 MATLAB命令是: A.subplot(3,2,1)B subplot(3,3,) C.subplot(3,2,3 ) D.subplot(1,3,2) 3.x=[1234],y=[1111],x.*y的结果是:(B) A.1234 B.出错信息 C.4 3 2 1 D.1111 4.角度x=[30 45 60],计算其正弦函数的运算为(D) A. sin(deg2rad(x)) B. sin(x) C. sin(x) D. sin(deg2rad(x)) 5.i=2;a=2i;b=2*i;c=2*sqrt(-1);执行程序后,a,b,c的值分别是多少?(C) A.a=4,b=2,c=2.0000i B.a=4,b=2.0000i,c=2.0000i C.a=2.0000i,b=4,c=2.0000i D.a=2.0000i,b=2.0000i,c=2.0000i 6. legend()命令是(A) A.在图中标注“图例” B..在图中加上网格线C.在图中加上标题 D.打印图形 7.命令plot(x,y,′m:*′),其中字符串“m:o”中,第一个字符“m”(A) A. 表示曲线为m符号构成的线 B. 表示曲线颜色为紫色 C. 表示曲线x坐标的最大值为m变量的值 D. 表示曲线y坐标的最大值为m变量的值 8. 下列可作为matlab合法变量名的是(D) A、合计 B、123 C、@h D、xyz_2a 9. 使用语句t=0:7生成的是()个元素向量(A) A、8 B、7 C、6 D、5 10. 输入字符串或选项时,要用(D)括住 A、() B、【】 C、{} D、‘’ 11 . 清空 Matlab 工作空间内所有变量的指令是(A)。 A.clc B. cls C.clear D. clf

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考试题库+答案(中北大学)

1、标点符号; _______可以使命令行不显示运算结果, %——用来表示该行为注释行。 2、x 为0 ~4pi ,步长为0.1pi 的向量,使用命令_______创建。 x=0:0.1*pi:4*pi 3、输入矩阵A= 错误!未找到引用源。 ,使用全下标方式用A(2,2) 取出元素“-5 ”,使用单下标方式用_______取出元素“-5 ”。 A(5) 4、符号表达式sin(2*a+t)+m 中独立的符号变量为_______。 t 5、M 脚本文件和M 函数文件的主要区别是M 脚本文件没有函数定义和M 函数文件有函数定义_______。 6. 设x 是一维数组,x 的倒数第3个元素表示为_______; 设y 为二维数组,要删除y 的第34行和48列,可使用命令_______; _______; x(_end-2_) y(34,:)=[] y(:,48)=[] 7. 将变量x 以Ascii 文本格式存储到文件fname.txt ,应使用命令_________ _; save _x 8. 在while 表达式, 语句体, End 循环语句中,表达式的值__ __时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 非零 9.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she?”,应使用命令_________; x=input(‘Who is she?’,’s’)_ 10.设A=错误!未找到引用源。和B=错误!未找到引用源。 和C=错误!未找到引用源。均为m*n 矩阵,且存在于WorkSpace 中,要产生矩阵 D=错误!未找到引用源。 ,可用命令________ _, 计算错误!未找到引用源。 可用命令________; D=(A-C)/B.^C det(inv(A’*B ) 11. 在MATLAB 命令窗口中的“>>”标志为MATLAB 的_______ 提示符,“│”标志为_______提示符。 命令行 输入 12.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。 A+B ; A.*B ; A==B ; ans= [2,2,6;5,10,0;7,9,11] ans= [1,0,9;4,25,0;0,8,18] ans= [1,0,1;0,1,1;0,0,0] 13.已知A 是矩阵,求A 的对角矩阵函数是_______, 求A 的下三角矩阵函数是_______ 。 diag tril 14.MATLAB 的程序文件和Simulink 模型文件的扩展名分别是_______、 。 .m .mdl 15.MATLAB 最基本的绘图函数为_______ 。 plot() 16. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A=__________________ [2;5] 17. fix(-1.5)=___ ________, round(-1.5)=__ _______________. -1 -2

matlab考题题整理带答案

MATLAB 考试试题 (1) 产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!(注:要程序和运行结果的截屏) 答案: a=10*rand(1,10)-5; b=sort(a,'descend') 1.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5] 2. 已知变量:A=’ilovematlab’;B=’matlab’, 请找出: (A) B在A中的位置。 (B)把B放在A后面,形成C=‘ilovematlabmatlab’ 3. 请修改下面的程序,让他们没有for循环语句! A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c if (A(i,j)>8 | A(i,j)<2)

A(i,j)=0; end end end 4. 请把变量A=[1 2 3; 4 5 6; 7 8 9]写到文件里,写完后文件看起来是这样的 1 2 3 4 5 6 7 8 9 5.试从Yahoo网站上获得微软公司股票的2008年9月的每日收盘价。 6.编写M文件,从Yahoo网站批量读取至在2008年9月份的每日收盘价(提示:使用字符串函数)。 7. 将金牛股份(000937)2005年12月14日至2006年1月10日的交易记录保存到Excel中,编写程序将数据读入MATLAB中,进一步将数据读入Access数据库文件。 8.已知资产每日回报率为,标准差为,资产现在价值为亿,求5%水平下资产的10天在险价值(Var)。 =[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单哦。

MATLAB《数学软件及应用》公选课期末考试题目

《数学软件及应用》期末考试题目 1.计算表达式 5cos(/5) pi +x 。 2. 在matlab 的命令窗口里完成如下计算,其中t 的值分别取-2,-1,0,1,2,表达式如下: 4/3) 2t y e π-=+。 3.计算23sin cos 0.5(1)x y x x ??=+??+?? 在x=1,2,3处的函数值 4.用语句a=fix(rand(4,4)*20)产生一个矩阵。解释下列语句的功能: (:,3)b a =, ([1,2],[3,4])c a =, a(:,5)=[ ] 5. 已知12536 4a ?? =??-??,8743 62b -??=???? 写出以下指令的结果并加以解释: a>=b a.*b 6.用创建数组的方法生成0~100以内3的倍数,将此数组赋给变量d 。(要求使用冒号法和linspace 两种方法) 7.创建一个数组,其元素分布在区间[0, 2]上。(使用冒号法和linspace) 8.自定义一个矩阵,取出它的第二行;将它第一行第二列的元素改为3. 9.求方程432234180x x x x ----=的所有根。 10.求方程323210x x x --+=的根。 11.对于B AX =,如果4 92764357A ????=? ????? ,372628B ????=??????,求解X 12.解线性方程组?? ? ????=+-+-=-+=++-=--+410256958424754 12743w z y x w z x w z y x w z y x 13.解非线性方程组221231 x xy y x y ?--=?-=? 14.求解微分方程2 /5)1(12+=+-x x y dx dy ; 15.求解微分方程2 )0(,1)0(),sin(32322='==++y y x y dx dy dx y d

MATLAB实验上机易错题汇总

1、完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。(2) 建立一个字符串向 量,删除其中的大写字母。 (1) m=100:999; n=find(mod(m,21)==0); length(n) ans = 43 (2)>> ch='Maybe One Day' p=find(ch>='A'&ch<='Z') ch(p)=[] ch = Maybe One Day 2、自行产生一个5行5列的数组,分别得到最中间的三行三列矩阵、右下角2行2列矩阵, 奇数行矩阵、奇数列矩阵、奇数行奇数列矩阵。 >> t=rand(5)%生成矩阵 A=t(2:4,2:4)%中间三行散列矩阵 B=t(4:5,4:5)%右下角两行两列矩阵 C=t(1:2:end,:)%奇数行矩阵 D=t(:,1:2:end)%奇数列矩阵 E=t(1:2:end,1:2:end)%奇数行列矩阵 3、求方程组的根 syms x y z [X Y Z]=solve('x+4*y-3*z=2','2*x+5*y-z=11','x+6*y+z=12',x,y,z) 4、已知矩阵A=[1 2;3 4],运行指令B1=A.^(0.5), B2=A^(0.5), 可以观察到不同运算方法所得结果不同。(1)请分别写出根据B1, B2恢复原矩阵A的程序。(2)用指令检验所得的两个恢复矩阵是否相等(利用norm(…,’fro’)指令,误差矩阵F-范数,接近eps量级,认为实际相等)。 5、先运行clear,format long,rng('default'),A=rand(3,3),然后根据A写出两个矩阵:一个对角 阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同(diag指令的使用)。 >> format long >> rand('twister',1) >> A=rand(3,3) A = 0.417022004702574 0.302332572631840 0.186260211377671

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