搜档网
当前位置:搜档网 › matlab课后知识题目解析第四章

matlab课后知识题目解析第四章

matlab课后知识题目解析第四章
matlab课后知识题目解析第四章

第4章数值运算

习题 4 及解答

1 根据题给的模拟实际测量数据的一组t和)(t y试用数值差分diff

或数值梯度gradient指令计算)(t y',然后把)(t y和)(t y'曲线绘制在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得)

〖目的〗

●强调:要非常慎用数值导数计算。

●练习mat数据文件中数据的获取。

●实验数据求导的后果

●把两条曲线绘制在同一图上的一种方法。

〖解答〗

(1)从数据文件获得数据的指令

假如prob_data401.mat文件在当前目录或搜索路径上

clear

load prob_data401.mat

(2)用diff求导的指令

dt=t(2)-t(1);

yc=diff(y)/dt; %注意yc的长度将比y短1

plot(t,y,'b',t(2:end),yc,'r')

grid on

(3)用gradent 求导的指令(图形与上相似)

dt=t(2)-t(1); yc=gradient(y)/dt; plot(t,y,'b',t,yc,'r') grid on

〖说明〗

● 不到万不得已,不要进行数值求导。

● 假若一定要计算数值导数,自变量增量dt 要取得比原有数据相对误差高1、2个量级

以上。

● 求导会使数据中原有的噪声放大。

2 采用数值计算方法,画出dt t

t

x y x

?

=0

sin )(在]10 ,0[区间曲线,并计算)5.4(y 。

〖提示〗

● 指定区间内的积分函数可用cumtrapz 指令给出。 ● )5.4(y 在计算要求不太高的地方可用find 指令算得。

〖目的〗

● 指定区间内的积分函数的数值计算法和cumtrapz 指令。 ● find 指令的应用。

〖解答〗

dt=1e-4;

t=0:dt:10;

t=t+(t==0)*eps;

f=sin(t)./t;

s=cumtrapz(f)*dt; plot(t,s,'LineWidth',3) ii=find(t==4.5);

s45=s(ii)

s45 =

3 求函数x

e

x

f3sin

)

(=的数值积分?=π

) (dx x

f

s,并请采用符号计算尝试复算。

〖提示〗

●数值积分均可尝试。

●符号积分的局限性。

〖目的〗

●符号积分的局限性。

〖解答〗

dx=pi/2000;

x=0:dx:pi;

s=trapz(exp(sin(x).^3))*dx s = 5.1370

符号复算的尝试

syms x

f=exp(sin(x)^3); ss=int(f,x,0,pi)

Warning: Explicit integral could not be found. > In sym.int at 58 ss =

int(exp(sin(x)^3),x = 0 .. pi)

4 用quad 求取dx x e

x

sin 7.15?

--π

π

的数值积分,并保证积分的绝对精

度为910-。

〖目的〗

● quadl ,精度可控,计算较快。

● 近似积分指令trapz 获得高精度积分的内存和时间代价较高。 〖解答〗

%精度可控的数值积分

fx=@(x)exp(-abs(x)).*abs(sin(x)); format long

sq=quadl(fx,-10*pi,1.7*pi,1e-7) sq =

1.08784993815498

%近似积分算法

x=linspace(-10*pi,1.7*pi,1e7); dx=x(2)-x(1);

st=trapz(exp(-abs(x)).*abs(sin(x)))*dx st =

1.08784949973430

%符号积分算法

y='exp(-abs(x))*abs(sin(x))' si=vpa(int(y,-10*pi,1.7*pi),16) y =

exp(-abs(x))*abs(sin(x)) si =

1.087849499412911

5 求函数5.08.12cos 5.1)

5(sin )(2

06.02

++-=t t t e t t f t 在区间]5,5[-中的最

小值点。

〖目的〗

● 理解极值概念的邻域性。 ● 如何求最小值。

● 学习运用作图法求极值或最小值。 ● 感受符号法的局限性。 〖解答〗

(1)采用fminbnd 找极小值点

在指令窗中多次运行以下指令,观察在不同数目子区间分割下,进行的极小值搜索。然后从一系列极小值点中,确定最小值点。 clear

ft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-1.5*t.*cos(2*t); disp('计算中,把[ -5,5] 分成若干搜索子区间。')

N=input(' 请输入子区间数 N ,注意使N>=1 ?');%该指令只能在指令窗中运行 t t=linspace(-5,5,N+1); f or k=1:N

[tmin(k),fobj(k)]=fminbnd(ft,tt(k),tt(k+1));

e nd

[fobj,ii]=sort(fobj); %将目标值由小到大排列 t min=tmin(ii);

%使极小值点做与目标值相应的重新排列

fobj,tmin

(2)最后确定的最小值点

在10,,2,1 =N 的不同分割下,经观察,最后确定出

最小值点是 -1.28498111480531 相应目标值是

-0.18604801006545

(3)采用作图法近似确定最小值点(另一方法)

(A )在指令窗中运行以下指令: clear

ft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-1.5*t.*cos(2*t);

t=-5:0.001:5;

ff=ft(t);

plot(t,ff)

grid on,shg

(B)经观察后,把最小值附近邻域放到足够大,然后运行以下指令,那放大图形被推向前台,与此同时光标变为“十字线”,利用它点击极值点可得到最小值数据

[tmin2,fobj2]=ginput(1)

tmin2 =

-1.28500000993975

fobj2 =

-0.18604799369136

出现具有相同数值的刻度区域表明已达最小可分辨状态

(4)符号法求最小值的尝试

syms t

fts=sin(5*t)^2*exp(0.06*t*t)-1.5*t*cos(2*t)+1.8*abs(t+0.5);

dfdt=diff(fts,t); %求导函数

tmin=solve(dfdt,t) %求导函数的零点

fobj3=subs(fts,t,tmin) %得到一个具体的极值点 tmin =

-.60100931947716486053884417850955e-2 fobj3 =

.89909908144684551670208797723124

〖说明〗

● 最小值是对整个区间而言的,极小值是对邻域而言的。

● 在一个区间中寻找最小值点,对不同子区间分割进行多次搜索是必要的。这样可以避免

把极小值点误作为最小值点。最小值点是从一系列极小值点和边界点的比较中确定的。 ● 作图法求最小值点,很直观。假若绘图时,自变量步长取得足够小,那么所求得的最小

值点有相当好的精度。

● 符号法在本例中,只求出一个极值点。其余很多极值点无法秋初,更不可能得到最小值。

6 设0)0(,1)0(,1)(2)(3)

(22===+-dt

dy y t y dt t dy dt t y d ,用数值法和符号法求

5.0)(=t t y 。

〖目的〗

● 学习如何把高阶微分方程写成一阶微分方程组。 ● ode45解算器的导数函数如何采用匿名函数形式构成。 ● 如何从ode45一组数值解点,求指定自变量对应的函数值。 〖解答〗

(1)改写高阶微分方程为一阶微分方程组

令dt

t dy t y t y t y )

()(),()(21=

=,于是据高阶微分方程可写出 ?????

++-==1)(3)(2)

()()(21221t y t y dt

t dy t y dt t dy

(2)运行以下指令求y(t)的数值解

format long ts=[0,1]; y0=[1;0];

dydt=@(t,y)[y(2);-2*y(1)+3*y(2)+1];

%<4>

%匿名函数写成的ode45所需得导数函数

[tt,yy]=ode45(dydt,ts,y0);

y_05=interp1(tt,yy(:,1),0.5,'spline'), %用一维插值求y(0.5)

y_05 =

0.78958020790127

(3)符号法求解

syms t;

ys=dsolve('D2y-3*Dy+2*y=1','y(0)=1,Dy(0)=0','t')

ys_05=subs(ys,t,sym('0.5'))

ys =

1/2-1/2*exp(2*t)+exp(t)

ys_05 =

.78958035647060552916850705213780

〖说明〗

●第<4>条指令中的导数函数也可采用M函数文件表达,具体如下。

function S=prob_DyDt(t,y)

S=[y(2);-2*y(1)+3*y(2)+1];

7 已知矩阵A=magic(8),(1)求该矩阵的“值空间基阵”B ;

(2)写出“A的任何列可用基向量线性表出”的验证程序(提示:利用rref检验)。

〖目的〗

●体验矩阵值空间的基向量组的不唯一性,但它们可以互为线性表出。

●利用rref检验两个矩阵能否互为表出。

〖解答〗

(1)A的值空间的三组不同“基”

A=magic(8); %采用8阶魔方阵作为实验矩阵

[R,ci]=rref(A);

B1=A(:,ci) %直接从A中取基向量

B2=orth(A) %求A值空间的正交基

[V,D]=eig(A);

rv=sum(sum(abs(D))>1000*eps); %非零特征值数就是矩阵的秩

B3=V(:,1:rv) %取A的非零特征值对应的特征向量作基

B1 =

64 2 3

9 55 54

17 47 46

40 26 27

32 34 35

41 23 22

49 15 14

8 58 59

B2 =

-0.3536 0.5401 0.3536

-0.3536 -0.3858 -0.3536

-0.3536 -0.2315 -0.3536

-0.3536 0.0772 0.3536

-0.3536 -0.0772 0.3536

-0.3536 0.2315 -0.3536

-0.3536 0.3858 -0.3536

-0.3536 -0.5401 0.3536

B3 =

0.3536 0.6270 0.3913

0.3536 -0.4815 -0.2458

0.3536 -0.3361 -0.1004

0.3536 0.1906 -0.0451

0.3536 0.0451 -0.1906

0.3536 0.1004 0.3361

0.3536 0.2458 0.4815

0.3536 -0.3913 -0.6270

(2)验证A的任何列可用B1线性表出

B1_A=rref([B1,A]) %若B1_A矩阵的下5行全为0,

%就表明A可以被B1的3根基向量线性表出B1_A =

1 0 0 1 0 0 1 1 0 0 1

0 1 0 0 1 0 3 4 -3 -4 7

0 0 1 0 0 1 -3 -4 4 5 -7

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0

B2_A=rref([B2,A])

B2_A =

Columns 1 through 7

1.0000 0 0 -91.9239 -91.9239 -91.9239 -91.9239 0 1.0000 0 51.8459 -51.8459 -51.8459 51.8459 0 0 1.0000 9.8995 -7.0711 -4.2426 1.4142 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 8 through 11

-91.9239 -91.9239 -91.9239 -91.9239

51.8459 -51.8459 -51.8459 51.8459

-1.4142 4.2426 7.0711 -9.8995

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

B3_A=rref([B3,A])

B3_A =

Columns 1 through 7

1.0000 0 0 91.9239 91.9239 91.9239 91.9239 0 1.0000 0 4

2.3447 -38.1021 -3

3.8594 29.6168 0 0 1.0000 12.6462 -16.8889 -21.1315 25.3741 0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Columns 8 through 11

91.9239 91.9239 91.9239 91.9239

25.3741 -21.1315 -16.8889 12.6462

29.6168 -33.8594 -38.1021 42.3447

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

〖说明〗

●magic(n)产生魔方阵。魔方阵具有很多特异的性质。就其秩而言,当n为奇数时,该

矩阵满秩;当n 为4的倍数时,矩阵的秩总是3;当 n 为偶数但不是4倍数时,则矩阵的秩等于 (n/2+2)。关于魔方阵的有关历史,请见第6.1.3节。

8 已知由MATLAB指令创建的矩阵A=gallery(5),试对该矩阵

进行特征值分解,并通过验算观察发生的现象。

〖目的〗

●展示特征值分解可能存在的数值问题。

●condeig是比较严谨的特征值分解指令。

●Jordan分解的作用。

〖解答〗

(1)特征值分解

A=gallery(5)

[V,D]=eig(A);

diag(D)' %为紧凑地显示特征值而写

A =

-9 11 -21 63 -252

70 -69 141 -421 1684

-575 575 -1149 3451 -13801

3891 -3891 7782 -23345 93365

1024 -1024 2048 -6144 24572

ans =

Columns 1 through 4

-0.0181 -0.0054 - 0.0171i -0.0054 + 0.0171i 0.0144 - 0.0104i

Column 5

0.0144 + 0.0104i

(2)验算表明相对误差较大

AE=V*D/V

er_AE=norm(A-AE,'fro')/norm(A,'fro') %相对F范数

AE =

1.0e+004 *

Columns 1 through 4

-0.0009 + 0.0000i 0.0011 - 0.0000i -0.0021 + 0.0000i 0.0063 - 0.0000i

0.0070 - 0.0000i -0.0069 + 0.0000i 0.0141 - 0.0000i -0.0421 + 0.0000i

-0.0575 + 0.0000i 0.0575 - 0.0000i -0.1149 + 0.0000i 0.3451 - 0.0000i

0.3891 - 0.0000i -0.3891 + 0.0000i 0.7781 - 0.0000i -2.3343 + 0.0000i

0.1024 - 0.0000i -0.1024 + 0.0000i 0.2048 - 0.0000i -0.6144 + 0.0000i

-0.0252 + 0.0000i

0.1684 - 0.0000i

-1.3800 + 0.0000i

9.3359 - 0.0001i

2.4570 - 0.0000i

er_AE =

6.9310e-005

(3)一个更严谨的特征值分解指令

[Vc,Dc,eigc]=condeig(A) %eigc中的高值时,说明相应的特征值不可信。Vc =

Columns 1 through 4

-0.0000 -0.0000 + 0.0000i -0.0000 - 0.0000i 0.0000 + 0.0000i

0.0206 0.0207 + 0.0000i 0.0207 - 0.0000i 0.0207 + 0.0000i

-0.1397 -0.1397 + 0.0000i -0.1397 - 0.0000i -0.1397 + 0.0000i

0.9574 0.9574 0.9574 0.9574

0.2519 0.2519 - 0.0000i 0.2519 + 0.0000i 0.2519 - 0.0000i

Column 5

0.0000 - 0.0000i

0.0207 - 0.0000i

-0.1397 - 0.0000i

0.9574

0.2519 + 0.0000i

Dc =

Columns 1 through 4

-0.0181 0 0 0

0 -0.0054 + 0.0171i 0 0

0 0 -0.0054 - 0.0171i 0

0 0 0 0.0144 + 0.0104i

0 0 0 0

Column 5

0.0144 - 0.0104i

eigc =

1.0e+011 *

5.2687

5.2313

5.1725

5.1724

(4)对A采用Jordan分解并检验

[VJ,DJ]=jordan(A); %求出准确的广义特征值,使A*VJ=VJ*D成立。

DJ

AJ=VJ*DJ/VJ

er_AJ=norm(A-AJ,'fro')/norm(A,'fro')

DJ =

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

0 0 0 0 0

AJ =

1.0e+004 *

-0.0009 0.0011 -0.0021 0.0063 -0.0252

0.0070 -0.0069 0.0141 -0.0421 0.1684

-0.0575 0.0575 -0.1149 0.3451 -1.3801

0.3891 -0.3891 0.7782 -2.3345 9.3365

0.1024 -0.1024 0.2048 -0.6144 2.4572

er_AJ =

2.0500e-011

〖说明〗

●指令condeig的第3输出量eigc给出的是所谓的“矩阵特征值条件数”。当特征条件

1相当时,就意味着矩阵A可能“退化”,即矩阵可能存在“代数重数”大数与

eps

于“几何重数”的特征值。此时,实施Jordan分解更适宜。

●顺便指出:借助condeig算得的特征值条件数与cond指令算得的矩阵条件数是两个

不同概念。前者描述特征值的问题,后者描述矩阵逆的问题。

●本例矩阵A的特征值条件数很高,表明分解不可信。验算也表明,相对误差较大。

●当对矩阵A进行Jordan分解时,可以看到,A具有5重根。当对Jordan分解进行验

算时,相对误差很小。

9 求矩阵b

Ax=的解,A为3阶魔方阵,b是)1

3(?的全1列向量。〖提示〗

●了解magic指令

●rref 用于方程求解。

●矩阵除法和逆阵法解方程。

〖目的〗

●满秩方阵求解的一般过程。

●rref 用于方程求解。

●矩阵除法和逆阵法解方程。

〖解答〗

A=magic(3); %产生3阶魔方阵

b=ones(3,1); %(3*1)全1列向量

[R,C]=rref([A,b]) %Gauss Jordan消去法解方程,同时判断解的唯一性

x=A\b %矩阵除解方程

xx=inv(A)*b %逆阵法解方程

R =

1.0000 0 0 0.0667

0 1.0000 0 0.0667

0 0 1.0000 0.0667

C =

1 2 3

x =

0.0667

0.0667

0.0667

xx =

0.0667

0.0667

0.0667

〖说明〗

●rref指令通过对增广矩阵进行消去法操作完成解方程。由分解得到的3根“坐标向量”

和(或)C3指示的3根基向量,可见A3满秩,因此方程解唯一。

●在本例情况下,矩阵除、逆阵法、rref法所得解一致。

10 求矩阵b

Ax=的解,A为4阶魔方阵,b是)1

4(?的全1列向量。

〖提示〗

●用rref 可观察A不满秩,但b在A的值空间中,这类方程用无数解。

●矩阵除法能正确求得这类方程的特解。

●逆阵法不能求得这类方程的特解。

●注意特解和齐次解

〖目的〗

●A不满秩,但b在A的值空间中,这类方程的求解过程。

●rref 用于方程求解。

●矩阵除法能正确求得这类方程的特解。

●逆阵法不能求得这类方程的特解。

●解的验证方法。

●齐次解的获取。

●全解的获得。

〖解答〗

(1)借助增广矩阵用指令rref求解

A=magic(4); %产生3阶魔方阵

b=ones(4,1); %全1列向量

[R,C]=rref([A,b]) %求解,并判断解的唯一性

R =

1.0000 0 0 1.0000 0.0588

0 1.0000 0 3.0000 0.1176

0 0 1.0000 -3.0000 -0.0588

0 0 0 0 0

C =

1 2 3

关于以上结果的说明:

●R阶梯阵提供的信息

?前4列是原A阵经消元变换后的阶梯阵;而第5列是原b向量经相同变换后的结

果。

?R的前三列为“基”,说明原A阵秩为3;而第4列的前三个元素,表示原A阵

的第4列由其前三列线性组合而成时的加权系数,即方程的一个解。

?R的第5列表明:b可由原A阵的前三列线性表出;b给出了方程的一个解;由于

原A阵“缺秩”,所以方程的确解不唯一。

●C数组提供的信息

?该数组中的三个元素表示变换取原A阵的第1,2,3列为基。

?该数组的元素总数就是“原A阵的秩”

(2)矩阵除求得的解

x=A\b

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.306145e-017.

x =

0.0588

0.1176

-0.0588

运行结果指示:矩阵除法给出的解与rref解相同。(实际上,MATLAB在设计“除法”程序时,针对“b在A值空间中”的情况,就是用rref求解的。)

(3)逆阵法的解

xx=inv(A)*b

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate. RCOND = 1.306145e-017.

xx =

0.0469

0.1875

-0.0625

-0.0156

(3)验证前面所得的解

b_rref=A(:,C)*R(C,5) %验算rref的解

b_d=A*x %验算矩阵除的解

b_inv=A*xx %验算逆阵法的解

b_rref =

1

1

1

1

b_d =

1

1

1

1

b_inv =

0.7344

1.5469

1.1719

1.8594

显然,在本例中,逆阵法的解是错误的。原因是:A不满秩,A的逆阵在理论上不存在。这里所给出的逆阵是不可信的。

(4)求齐次解

xg=null(A) %Ax=0的齐次解

xg =

0.2236

0.6708

-0.6708

-0.2236

(5)方程的全解

齐次解的任何倍与特解之和就构成方程的全解。下面通过一组随机系数验证。

rng default %为本书结果可被读者核对而设,并非必要。

f=randn(1,6) %6个随机系数

xx=repmat(x,1,6)+xg*f %产生6个不同的特解

A*xx %所得结果的每列都应该是全1,即等于b.

f =

0.5377 1.8339 -2.2588 0.8622 0.3188 -1.3077

xx =

0.1790 0.4689 -0.4463 0.2516 0.1301 -0.2336

0.4783 1.3479 -1.3976 0.6960 0.3315 -0.7596

-0.4195 -1.2890 1.4565 -0.6372 -0.2727 0.8184

-0.1202 -0.4101 0.5051 -0.1928 -0.0713 0.2924

ans =

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

〖解答〗

(在用除法和逆阵法求解时出现)警告信息中RCOND = 1.306145e-017是矩阵A的估计条件倒数。该数愈接近0,A就愈“病态”;该数接近1时,A就愈“良态”。该条件数由rcond(A)给出。注意:rcond条件倒数与cond条件数的算法不同。

11 求矩阵b Ax =的解,A 为4阶魔方阵,????

?

???????=4321b 。

〖提示〗

● 由rref 可以看出A 不满秩,b 不在A 的值空间中,方程没有准确解。 ● 但可求最小二乘近似解。 〖目的〗

● A 不满秩,b 不在A 的值空间中,方程没有准确解。 〖解答〗

(1)借助增广矩阵用指令rref 求解

A=magic(4);

%产生3阶魔方阵

b=(1:4)';

[R,C]=rref([A,b])

%求解,并判断解的唯一性

R =

1 0 0 1 0 0 1 0 3 0 0 0 1 -3 0 0 0 0 0 1 C =

1 2 3 5

(2)用伪逆求最小二乘近似解(超出范围,仅供参考。)

x=pinv(A)*b

%非准确解 b_pinv=A*x %验算

x = 0.0235 0.1235 0.1235 0.0235 b_pinv = 1.3000 2.9000 2.1000 3.7000

〖解答〗

● C 表明,A 的秩为3,A 不满秩;R 第5列第4元素非零,说明b 不在A 的值空间中,

因此方程没有准确解,但可以求最小二乘近似解。

12 求0

5.02.0=

10

sin[sin

]

t t的实数解。

e

+

-

--t

〖提示〗

●在适当范围内,作图观察一元复杂函数的形态:观察解的存在性;解的唯一性。进而,

借助图形法求近似解。

●匿名函数的使用方法。

●fzero指令的用法。

〖目的〗

●作图法求一元复杂函数解上的作用:观察解的存在性;解的唯一性;得近似解。

●匿名函数的使用方法。

●fzero指令的用法。

〖解答〗

(1)作图观察函数并求近似解

t=-1:0.001:5;

y=@(t)-0.5+t-10*exp(-0.2*t).*abs(sin(sin(t)));

plot(t,y(t)) %利用匿名函数求y函数值

grid on,shg

[tt1,yy1]=ginput(1) %从图形获得近似解

tt1 =

2.7370

yy1 =

(2)进一步利用fzero 求精确解

[t,yt]=fzero(y,tt1) t = 2.7341 yt =

2.2204e-015

〖说明〗

● 假如在从图上获取数据前,先把零点附近图形放大,可以得到精度更高的近似解。

13 求解二元函数方程组??

?=+=-0

)cos(0

)sin(y x y x 的解。 〖目的〗

● solve 指令的用法。 〖解答〗 (1)符号法

只能得到两组解

S=solve('sin(x-y)','cos(x+y)','x','y');

X=S.x,Y=S.y X = [ 1/4*pi] [ -1/4*pi] Y = [ 1/4*pi] [ -1/4*pi]

(2)数值法

可以看到许多解,并从中找到规律

x=-6:0.1:6;y=x;[X,Y]=meshgrid(x,y);

Z1=sin(X-Y); Z2=cos(X+Y);

contour(X,Y,Z1,3) %在Z1的取值范围内取3个等分点作为等位线取值。

%由于Z1关于z1=0对称,所以中间线,即Z1=0的等位线。

axis square hold on

contour(X,Y,Z2,3) %注意:所有绿线交点都是解 hold off grid on;shg

使用Matlab需要掌握的一些知识点

1.滤波:medfilt1,smooth,filter,无法解决数据NAN污染周边数据 2.aa([1,3],:) = aa([3,1],:); 可以交换行与行之间的数据 3.用一下整体乘法,提高计算效率 4.2019.10.4纠错:程序进入循环出不来,原因是小循环中的条件计算程 序参数与大循环参数冲突 5.[SNR,I] = min(Data_Ze,[],1,'omitnan'); %排除每一列中的NAN, 求每一列中的最小值,SNR为每列的最小值,I为每列最小值的下标 6.ncdisp()可以充分地体现nc文件的方方面面的信息 7.命令行窗口显示信息: X = ['仰角',num2str(elevtation_number), '下的ML总点数:']; % 命令窗口要显示的信息 disp(X); 8.弹出提示框显示信息 msgbox('中间数据图像显示完毕!','温馨提示','modal'); errordlg('参数超出范围或者参数输入不足,请重新配置!', 'Warning'); 9.在图中标记数据 str=[ num2str(r') 'km']; 显示的文本 text(x,y,cellstr(str)); (x,y)要显示的位置 10.标记图中线条内容 l = legend('温度廓线','露点温度廓线'); %标注线条代表内容 title(l,'线条表示内容'); %线条标题 11.matlab求和取均值以及计算标准差的时 数据有nan使用下面三个特定的函数(nansum,nanmean,nanstd)12.Matlab 简化运算 ZH_Data1=mod((ZH_Data0+33)*2,256)*0.5-33; ZH_Data1(ZH_Data1==-33)=NaN; ZH_Data=ZH_Data1(1:1192,:,1); 13.完成仰角方位距离三维元素位置的转换 permute(ZH_data,[3,2,1]); 14.shading阴影函数 控制曲面和图形对象的颜色着色,即用来处理色彩效果的,包括以下三种形式: shading faceted:默认模式,在曲面或图形对象上叠加黑色的网格线; shading flat:是在shading faceted的基础上去掉图上的网格线;

第一章 基本MATLAB基本命令

MATLAB学习指南 第1章.基本MATLAB指令 1.1.基本数量运算 首先,我们来谈一谈怎样向程序中添加注释(例如此行)。注释就是我们向程序中添加的文字,用来解释我们在做什么。所以,如果我们或其他人以后读到此代码,就能很容易地理解代码在执行什么指令。在一个MATLAB文件中,如果百分号%出现在一行文字中,百分号后面的所有文字都是注释,而不是MATLAB想要进行解释的指令。首先,我们向屏幕输入信息,告诉计算机我们开始运行1.1节。 指令disp('字符串')在屏幕上展示了文本字符串。 接下来,我们令一个变量等于1。 如果x没有被声明,这一指令先为变量x在内存中分配一个空间,然后又将x的值1存储在所分配的空间中。同时,这一指令会将"x = 1"显示在屏幕上。通常,我们不希望像这样的输出结果把屏幕弄得杂乱,所以我们在指令的最后加上一个分号就可以使指令变得“不可见”。例如,我们使用下列指令把x的值“不可见地”变为2,然后将结果显示在屏幕上。x=2;x的值发生了改变,但是却没有显示在屏幕上 disp('我们已经改变了x的值'); 然后,通过输入“x”,不带分号,我们显示x的值。 现在,我们来看如何声明其它变量。 y=2*x; 对y的值进行初始化,使其等于x的值的2倍。 x=x+1;使x的值增加1。 z=2*x; 声明了另一变量z。 因为在声明变量z时x的值已经发生了变化,所以z不等于y。 接下来,我们想看存储在内存中的变量的列表。我们使用指令“who”来实现。 通过使用“whos”我们能得到更多的信息 我们也可使用这些指令来得到有关仅有的某些变量的信息。

我们想要去掉变量“差”。 使用指令“clear”来实现。 接下来,我们想要去掉变量x和y。 我们再次使用指令“clear”。 一般来说,好的程序设计模式都要求每行只编写一个指令;但是,MATLAB却允许将多个指令放在一行。 更普遍的情况是,由于语句结构的长度使得我们希望一个指令能够分成多行。这可通过使用3个点来实现。 最后,当使用指令“clear all”时,我们可一次去掉所有变量。 1.2.基本向量运算 声明一个变量最简单的,但不值得推荐的方法就是逐一输入其分量。 x显示x的值 一般来说,最好一下子声明一个变量,因为这样的话MATLAB从一开始就知道它需要分配多少内存。对于大型向量,这会更加有效。 y=[1 4 6] 与上述代码作用相同。 注意到这次声明了一个行向量。为得到一个列向量,我们或者使用转置(复合x的伴随矩阵)算符xT=x’;把实行向量x进行转置,或从一开始就将其变成列向量。 为了看到行向量和列向量在大小上的不同,使用指令“size”便可返回向量或矩阵的大小。

matlab基础知识

第2章基础知识 本章着重介绍MATLAB的一些基础知识,包括数据类型、基本矩阵操作、运算符和字符串处理函数。本章是MATLAB编程的基础。 2.1 数据类型 MATLAB中定义了很多种数据类型,包括字符、数值、单元、结构、java类、函数句柄等类型,用户还可以自己定义数据类型。 在MATLAB中有15种基本数据类型,每种基本数据类型均以数组/矩阵的形式出现,该矩阵可以是最小的0*0矩阵到任意大小的n维矩阵。 1.数值类型 数值类型包含整数、浮点数和复数3种类型。另外MATLAB还定义了Inf和NaN两个特殊数值。 (1)整数类型 MATLAB支持1、2、4和8字节的有符号整数和无符号整数。这8种数据类型的名称、表示范围、转换函数如表2-1所示,其中转换函数可以把其它数据类型的数值强制转换为对应的整数类型。尽可能使用字节少的数据类型,这样可以节约存储空间和提高运算速度。 表2-1 整数类型 名称范围转换函数名称范围转换函数 有符号1字节整数int8() 无符号1字节整数uint8() 有符号2字节整数int16() 无符号2字节整数uint16() 有符号4字节整数int32() 无符号4字节整数uint32() 有符号8字节整数int64() 无符号8字节整数uint64() (2)浮点数类型 MATLAB有单精度和双精度两种浮点数,其中双精度浮点数为MATLAB默认的数据类型。这2种数据类型的名称、存储空间、表示范围和转换函数如表2-2所示。

表2-2 浮点数类型 名称存储空间表示范围转换函数 单精度浮点数4字节single() 双精度浮点数8字节double() (3)复数类型 复数包含实部和虚部。在MATLAB中可以用i或j来表示虚部。 例如:在命令窗口中用赋值语句产生复数5+10i,代码如下: A=5+10i 例如:在命令窗口用函数complex()产生复数5+10i,具体代码如下: X=5; Y=10; z=complex(x,y) (4)Inf和NaN 在MATLAB中用Inf和-Inf分别表示正无穷大和负无穷大。除法运算中除数为0或者运算结果溢出都会导致inf或-inf的运行结果。 在MATLAB中用NaN(not a number)来表示一个既不是实数也不是复数的数值。类似0/0、inf/inf等运算产生的结果均为NaN。 2.逻辑类型 在MATLAB中逻辑类型包括true和false,分别由1和0表示。在MATLAB中用函数logical()将任何非零的数值转换为true(即1),将数值0转换为false(即0)。 3.字符和字符串类型 在MATLAB中,数据类型(char)表示一个字符。一个char类型的1*n数组称为字符串string。用单引号对表示字符串。 例如:str=‘I am a great person’

MATLAB复习知识点汇总

MATLAB 复习 1、实现符号函数 运算功能的函数m 文件为: function y=sgn(x) if x<0 y1=-1; elseif x==0 y1=0; else y1=1; end y=y1; 2、求满足1+2+3+…n<100的最大正整数n 的MATLAB 程序为: sum=0;n=0; while sum<100 n=n+1; sum=sum+n; end 1,0,sgn()0,0, 1,0x y x x x >?? ===??-

sum=sum-n; n=n-1; n,sum 3、m文件有两种形式,一种称为命令文件(Script File),另一种称为函数文件(Function File),两种文件的扩展名都是m。 4、反馈控制系统品质要求:稳定性、准确性、快速性 5、按不同系统的特征方程式,可将自动控制系统分为线性系统和非线性系统。 6、MATLAB控制相关的工具箱 (1)控制系统工具箱 (2)系统辨识工具箱 (3)模型预测控制工具箱 (4)鲁棒控制工具箱 (5)神经网络工具箱 7、MATLAB系统的构成 (1)开发环境(2)数学函数库(3)MATLAB语言(4)图形处理系统(5)应用程序接口 8、常用工具箱 (1)控制类工具箱(2)应用数学类工具箱(3)信号处理类工具箱(4)其他常用工具箱 9、MATLAB语句形式:>>变量=表达式 10、MATLAB常用命令 quit 关闭MATLAB

exit 关闭MATLAB clc 清除MATLAB 命令窗口中的所有显示内容 clear 清除工作空间中保存的所有变量 11、MATLAB 基本数据类型:双精度数组、字符串数组、元胞数组、结构数组 12、矩阵的创建 (1)直接输入法(2)通过数据文件创建矩阵(3)通过m 文件创建矩阵(4)通过函数创建矩阵(5)冒号法 13、冒号法 [1]冒号法构造向量 冒号表达式的一般格式为:向量名=初值:步长:终值 [2]冒号法构造矩阵 一般格式为: A(:,j ):表示矩阵A 的第j 列; A(i ,:):表示矩阵A 的第i 行。 A(i,j)表示取矩阵A 的第i 行第j 列交叉位置的元素 14、矩阵的运算 /(矩阵的右除)或\(矩阵的左除) A -1=inv(A) 矩阵的逆 15、求下面方程组的根 1231231 2323532255316 x x x x x x x x x +-=?? -+=??--=?

MATLAB学习知识重点

1,计算矩阵的特征值和特征向量 【V,D 】=eig (A ) 其中A 指的是矩阵 V 指的是特征向量组成的矩阵 D 指的是特征值所组成的矩阵 A=[0 1 0;1 0 1;0 1 0]; >> [V,D]=eig(A) V = 0.5000 -0.7071 0.5000 -0.7071 0.0000 0.7071 0.5000 0.7071 0.5000 D = -1.4142 0 0 0 -0.0000 0 0 0 1.4142 2,求线性方程的解 1231231232314354578950x x x x x x x x x ++=-+=++= 这是一个非齐次方程方程,对于线性代数来讲,很难求解,但是利用MATLAB 来求 A=[1 2 3;3 -5 4;7 8 9]; 1 B=[14 5 50]; 2 x=A\B 3 B=[14;5;50]; 4 这4个语句的区别,特别是2.3两句的区别,2语句中B 表示的是1行3列,但是4语句中的表示的3行1列。 同时,X=A\B 很X=A/B 也是很有能区别的,具体的区别如下: X=A\B 表示的是A*X=B 的解 X=A/B 表示的是X*A=B 的解,在这里,具体解释如下;A*X=B ,

在线性代数中,X=A^(-1)B ,所以X=A\B。X*A=B的解为X=BA^(-1),就是X=B/A。 3,一元方程求根 这个在计算中是个难题,一元多次方程式很难求解的,对于纯粹的手工计算来说,所以有MATLAB比较方便,具体语句如下:()23 1.350.6680.4360.69552 =+++ f x x x x P=[0.69552 0.436 0.668 1.35]; >> X=roots(P) X = 0.2817 + 1.2456i 0.2817 - 1.2456i -1.1902 + 0.0000i 对于这个方程来说,要注意的是,在构成向量时,一定要从告辞往低次排列,中间缺少次数的,用0代替,求解语句是roots(P)。4,图形处理功能 A, 可以绘制函数图像,具体的语句如下: >> x=linspace(0,6); 这个表示X轴,在0到6内取100个点,这是默认的数值100。当然还有可以设定数值的方法linspace(0,6,100)表示的是在0到6内取等间隔取100个点。 >> y1=sin(2.*x); >> plot(x,y1)这是绘制函数sin(2X)的图像,在这里要注意的,

最新MATLAB应用基础第一章matlab基础

M A T L A B应用基础第一章m a t l a b基础

MATLAB应用 赵国瑞 天津大学电子信息工程学院计算机基础教学部 2000.3 制作

概述 MATLAB是世界流行的优秀科技应用软件之一。具有功能强大(数值计算、符号计算、图形生成、文本处理及多种专业工具箱)、界面友好,可二次开发等特点。 自1984年由美国MathWorks公司推向市场以来,先后发布了多个版本,1993年发布4.0版,1996年发布5.0版,1999年发布5.3版。目前发布的为6.5版。 MATLAB有专业和学生版之分。二者功能相同,但计算规模和计算难度有差别。 在国内外,已有许多高等院校把MATLAB列为本科生、研究生必须掌握的基本技能。我校自1999年列为研究生选修课程。而且有很多教师、研究生把它作为进行科研的重要工具。 国内关于MATLAB的书籍很多,如: 《精通MATLAB 5.3》张志涌等编著北京航空航天大学出版社,2000.8

《科学计算语言MATLAB简明教程》杜藏等编著南开大学出版社,1999.6 《精通MATLAB 5》张宜华编写清华大学出版社,1999.6 《精通MATLAB--综合辅导与指南》 Duane Hanselman、Bruce Littlefield编著李人厚等译较西安交通大学出版社,1998.1 等等 本课程主要介绍MATLAB 5.3的基本功能和基础知识。至于其包含的多种工具箱,如仿真工具箱、解非线性方程(组)工具箱、优化工具箱等,应通过本学习后,结合各专业自己进一步学习和使用。 第1章MATLAB基础 1.1 源文件(M-文件) 分为两类:函数文件和非函数文件。 都用扩展名.M 1.1.1函数文件

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

中国科学院大学_张敏洪_matlab知识点整理_第二章MATLAB 语言程序设计基础

第二章MATLAB 语言程序设计基础 ——MATLAB 通用命令-3 ——MATLAB 的保留常量,运算符号-10 ——符号变量声明syms var_list var_props-14 ——符号型数值可采用变精度函数求值vpa(A), 或vpa (A,n)-15 ——冒号表达式v=s1:s2:s3该函数生成一个行向量v,其中s1是起始值,s2是步长(若省略步长为1),s3是最大值-18 ——子矩阵提取B=A(v1,v2) v1、v2分别表示提取行(列)号构成的向量。(逗号)-20 ——矩阵翻转-25 ——数学运算符号及标点符号,乘除法,左除右除,乘方-27 ——矩阵的逻辑运算-35 ——矩阵的比较运算>, >=, <, <=, ==,~=, find(), all(), any() -36 ——解析结果的化简与变换s1=simple(s) collect( ) 合并同类项 expand( ) 展开多项式 factor( ) 因式分解 numden( ) 提取多项式的分子和分母 sincos( ) 三角函数的化简-38 ——变量替换-41 ——基本数论运算---下取整、上取整、四舍五入、离0近方向取整、最简有理数、求模的余数、最大公约数、最小公倍数、质因数分解、判定是否为质数-42 ——2.4 MATLAB 语言流程控制-47 ——nargin,nargout 分别表示输入和返回变量的实际个数 varargin, varargout 输入、输出变量列表(可变输入输出个数) ——2.5.2 可变输入输出个数conv( ) 可以计算两个多项式的积-65 ——2.6 二维图形绘制-68 ——图形元素属性获取与修改-74 ——2.6.2 其他二维图形绘制语句-76 ——2.6.3 隐函数绘制及应用-80 ——2.7.1 三维曲线绘制-81 ——2.7.2 三维曲面绘制-83

Matlab入门基础知识整理

MATLAB基础知识 MATLAB的主要功能 1.数值计算和符号计算功能 例如,求解线性方程组 在MATLAB命令窗口输入命令: a=[2,3,-1;3,-5,3;6,3,-8]; b=[7;8;9]; x=inv(a)*b 也可以通过符号计算来解此方程 syms x1 x2 x3 [x1,x2,x3]=solve(2*x1+3*x2-x3-7,3*x1-5*x2+3*x3-8,6*x1+3*x2-8*x3-9) 2.绘图功能 例如,分别绘制函数y=300sinx/x和y=x2的曲线 x=-20:0.1:20; plot(x,300*sin(x)./x,':',x,x.^2); 3.程序设计语言功能 MATLAB是解释性语言,程序执行速度较慢,而且不能脱离MATLAB环境而独立运行。MathWorks公司提供了将MATLAB源程序编译为独立于MATLAB集成环境运行的EXE文件以及将MATLAB程序转化为C语言程序的编译器。4.扩展功能 MATLAB包含两部分内容:基本部分和各种可选的工具箱。 基本部分构成了MATLAB的核心内容,也是使用和构造工具箱的基础。 工具箱扩展了MATLAB的功能。 功能性工具箱 学科性工具箱 MATLAB的集成开发环境 命令窗口(Command Window)用于输入命令并显示除图形以外的所有执行结果。一般来说,一个命令行输入一条命令,命令行以回车或分号结束 但一个命令行也可以输入若干条命令,各命令之间以逗号或分号隔开 如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分。3个小黑点称为续行符,即把下面的物理行看作该行的逻辑继续。例如: z=1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)+ … 1/(1*2*3*4*5) 工作空间(Workspace)是MATLAB用于存储各种变量的内存空间。 当前目录(Current Directory)是指MATLAB运行时的工作目录,只有在当前目录下的文件、函数才可以被运行或调用。 如果没有特殊指明,数据文件也将存放在当前目录下。 命令历史窗口 自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询。而且,通过双击命令可进行历史命令的再运行。 MATLAB的帮助功能 进入MATLAB帮助界面可以通过以下方法。 ●单击MATLAB主窗口工具栏中的Help按钮。

2010matlab复习提纲

2010—2011数值计算与MATLAB复习提纲 考试知识点 第二章 1)变量的命名规则 2)常用预定义变量:ans、eps、pi、i、j、inf、Inf、NaN、nan 3)内存变量文件的生成与加载:save / load 4)常用数学函数:sin、cos、sqrt、log、log10、log2、exp、pow2、abs、rem、 mod、fix、floor、ceil、round 5)矩阵的建立:直接输入法, 利用冒号表达式建立一个向量、linspace的含义与用法、 建立大矩阵 a)熟练掌握书本相关例题 6)矩阵的拆分:矩阵元素,size()\length(),矩阵拆分,利用空矩阵删除矩阵的元素 a)熟练掌握书本相关例题 7)特殊矩阵: zeros/ones/eye/rand/randn/zeros(size(A)) a)给定区间内的随机矩阵的建立 b)给定均值和方差的正态分布随机矩阵的建立 c)熟练掌握相关例题P26,2-4 8)Matlab运算: a)算术运算:+、-、*、/、\、^、点运算 b)关系运算:P32页6种关系运算符、关系运算德运算法则、相关例题 c)逻辑运算P33页3种逻辑运算符& | ~ 逻辑运算德运算法则、相关例题 d)运算优先级:算术> 关系> 逻辑 e)find()函数 9)对角阵与三角阵:diag()、triu()、tril() 10)矩阵的转置与旋转:rot90() 11)矩阵的逆、方阵的行列式:inv()、det() 12)字符串 ?本章相关的上机习题 第三章 matlab程序设计 1)命令文件与函数文件的区别:参数、变量、调用方式 2)程序的顺序结构,input函数及其应用、disp函数及其应用、程序的暂停 3)选择结构if语句,switch语句 4)循环结构for语句,while语句,break语句,continue语句、循环的嵌套P66, 3-8,3-9,3-10 5)函数文件:函数的定义,函数的调用(包括函数的递归调用)P70-71,3-15,3-16 6)全局变量与局部变量的用法:P72,3-18 ?本章相关的例题和布置的上机习题

MATLAB基础知识考试复习总结

第一章MATLAB基础 1系统仿真是根据被研究的真实系统的数学模型研究系统性能的一门学科,现在尤指利用计算机去研究数学模型行为的方法,即数值仿真。 2MATLAB集计算,可视化及编程于一身。其主要产品模块构成:(1)MATLAB(2)MATLABtoolbox(3)MATLAB Compiler(4)simulink(5)stateflow(6)Real-Time Workshop。 3MATLAB语言被称为第四代计算机语言。有以下几个主要特点:编程效率高;使用方便;高效方便的科学计算;先进的可视化工具;开放性、可扩展性强;运行时动态连接外部C或FORTRAN应用函数;在独立C或FORTRAN程序中调用MATLAB 函数;输入输出各种MATLAB及其他标准格式的数据文件;创建图文并茂的技术文档;特殊应用工具箱;高效仿真工具Smulink。 4变量命名规则:变量名、函数名对字母大小写敏感;变量名第一个字母必须是英文字母(只能是英文、数字和下连线)。 5 real(z)求复数Z实部 imag(Z)求复数Z虚部 abs(z) 求复数Z的模angle(Z)求复数Z的相角(单位是弧度) callback回校函数mdata=csvread(‘engdata.txt’) clc清除指令窗 clf清除图形窗 cd设置当前工作目录clear清除工作空间保存的变量 edit打开M文件编辑器exit、quit关闭、退出MATLAB 6 c=3+5i c=3+5*i (a=3;b=5;c=a+b*i) 1.3e-4 2.78e23 A.’转置S.*B S./B B.\S A.^n 7Command History(历史指令)窗记录着用户在命令指令窗中所输入过的所有指令行,且所有这些被记录的指令行都能被复制,并送到指令窗中再运行。 8Workspace Browser(工作空间浏览器)也叫内存浏览器,他保存了指令窗所使用过的全部变量(除非有意删除),可通过该浏览器对内存变量进行操作。 10点击MATLAB桌面工具条上的?图标,或选择下拉菜单项【Help】,都能提供帮助;MATLAB还提供现场帮助,用鼠标点亮指令并点击右键,在弹出的菜单中选择【Help On Selection】。 第二章数据及其运算 1简单数组生成方法:逐个元素输入法;冒号生成法[x=a:intc:b]; [x=linspace(a,b,n)]=[a:(b-a)/(n-1):b];logspace(w1,w2,n) 2>> diag([3,3,3])产生对角形数组 ans =3 0 0 0 3 0 0 0 3 >> eye(3) 产生单位数组 ans =1 0 0 0 1 0 0 0 1 >> magic(3) 产生魔方数组 a ns =8 1 6

《MATLAB程序设计》复习资料

Matlab 习题及复习要点 1. Matlab 的英文组成;程序和变量的命名规则; 在MATLAB 语言中是区分字母大小的,也就是说,大写字母和小写字母代表的东西是不同的。 2.Matlab 中注释、关键词等的显示颜色;如何设置当前路径、如何设置搜索路径(例如第一次上机练习过的,新建的“D:\temp ”目录中有脚本文件abc.m ,若要能在命令窗口输入abc 执行则..); 3.熟悉Matlab 中的几种数据类型(int8、double 、logical 等); 4.在MATLAB 中计算数学公式(如三角函数、对数、开根号等)的表达; 5.掌握数组的几个操作(裁剪、扩增、eye 、zeros 等)、对角阵指令、均匀分布随即向量指令;数组中行和列的分隔符; 6. 在循环结构中的几个命令:break 、continue 等; 7. 已知字符'A'、'Z'、'a'、'z'的ASCII 码分别为65、90、97、122,str1为全为大写字母的字符串,采用什么命令可将该字符串转换成小写。 8. 在MATLAB 中求解线性方程组=Ax b 可采用什么指令; 9. 掌握基本运算符,例如*、.*、/、./、^、.^ 的区别 10.读懂逻辑表达式,会写出逻辑表达式的结果(0或1) 11. 掌握集中循环结构,尤其if..elseif…else…end 和swich…case 结构的语法,要准确。 12. 会编写分段函数的程序; x 和y 满足如下关系: 221211212x x y x x x x ?? 编写函数y=f(x),用于计算上述分段函数。 13. 绘图时采用的几个命令的掌握:hold on 、plot 、plot3 14*.用语句[x, y]=meshgrid(a:b)构建网格数据,例子如下: 示例一: x=-3:1:3;y=-2:1:2; [X,Y]= meshgrid(x,y); 这里meshgrid (x ,y )的作用是分别产生以向量x 为行,向量y 为列的两个大小相同的矩阵,其中x 的行是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X ;同理y 的列则是从-2到2,每间隔1记下一个数据,并集成矩阵Y 。即 X= -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3

计量经济学(英文)重点知识点考试必备

第一章 1.Econometrics(计量经济学): the social science in which the tools of economic theory, mathematics, and statistical inference are applied to the analysis of economic phenomena. the result of a certain outlook on the role of economics, consists of the application of mathematical statistics to economic data to lend empirical support to the models constructed by mathematical economics and to obtain numerical results. 2.Econometric analysis proceeds along the following lines计量经济学 分析步骤 1)Creating a statement of theory or hypothesis.建立一个理论假说 2)Collecting data.收集数据 3)Specifying the mathematical model of theory.设定数学模型 4)Specifying the statistical, or econometric, model of theory.设立统计或经济计量模型 5)Estimating the parameters of the chosen econometric model.估计经济计量模型参数 6)Checking for model adequacy : Model specification testing.核查模型的适用性:模型设定检验 7)Testing the hypothesis derived from the model.检验自模型的假设 8)Using the model for prediction or forecasting.利用模型进行预测 Step2:收集数据 Three types of data三类可用于分析的数据 1)Time series(时间序列数据):Collected over a period of time, are collected at regular intervals.按时间跨度收集得到

Matlab知识点

零、帮助 1、help命令:如help fun 显示某函数的功能和语法描述。如help sin。若单独使用help 命令,则显示出帮助主题。 2、lookfor命令:如lookfor XYZ 在所有的M文件中查找XYZ关键词。 一、变量 1、Matlab区分大小写;标准函数及命令字母必须小写。 2、命令后加分号,则不显示运算结果。 3、注释以%开头。 4 5、who、whos命令:显示工作空间中的变量清单或列表。 6、clear命令:删除工作空间中的变量。 7、较大矩阵数值的输入:在命令窗口中向一个新变量赋空阵,在工作空间窗口中双击该变 量,打开变量编辑器,填表即可。 8、save命令:把一些变量存储到磁盘文件(.mat),文件名中不能出现后缀。 9、load命令:将文件中的变量调入内存。 10、单个数据的算术运算只是矩阵运算的特例。 11、常用算术运算符:+ - * / \ ^ ( ) 12、关系运算符:< <= > >= == ~=(不等于) 13、逻辑运算符:&(与)、|(或)、~(非) 二、常用数学函数

1、三角函数以弧度为单位。 2、abs函数还可求字符串的ASCII码。 3、这些函数几乎都可以针对向量或矩阵进行运算。 三、数据的输出格式 1、format命令:设置或改变数据输出的格式。其格式符如下: 四、矩阵运算(向量是特殊的矩阵) 1、直接输入法建立矩阵:矩阵元素用方括号括起来,按矩阵行顺序输入各元素,同一行各 元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。如:A=[1,2,3;4,5,6] 2、利用.m文件建立矩阵:即将矩阵的赋值命令写入到一个.m文件中,并运行该文件。 3、利用冒号表达式建立一个向量:A=e1:e2:e3 其中,e1为初始值、e2为步长、e3为终止 值。e2可省略,如A=e1:e3,则步长为1。 4、linspace函数:也可产生一个行向量,如A=linspace(a,b,n) 其中,a为第1个元素, b为最后一个元素,n为元素总数。n可省略,默认产生100个元素。 5、利用已建好的矩阵建立更大的矩阵:如:A=[B,C;C,B]。 6、矩阵元素的引用:如A(3,2)=200 即对矩阵A的第3行第2列的元素赋值为200。若赋值 时给出的下标超出范围,则将对A进行扩展,扩展后的未赋值矩阵元素置0。 7、矩阵按列存储。矩阵元素也可按序号进行引用,如A(2)=100。 8、size函数:如[l,c]=size(A),返回两个元素的向量,分别是矩阵A的行数和列数。 9、sub2ind函数:如sub2ind(size(A),l,c),返回矩阵A的第l行第c列元素的序号。 10、ind2sub函数:如[l,c]=ind2sub(size(A),n),返回矩阵A中序号为n的元素的行列下 标值。 11、length函数:如length(A) 返回矩阵A的行数和列数中的较大者。 12、ndims函数:如ndims(A) 返回A的维数。 13、利用冒号表达式获得子矩阵 ①如A(a,:) 表示矩阵A的第a行的全部元素。 ②如A(:,b) 表示矩阵A的第b列的全部元素。 ③如A(a:b,:) 表示矩阵A的第a行至第b行的全部元素。

第一章MATLAB基础知识

第一章MATLAB基础知识 1.1 MATLAB开发环境 1.MATLAB操作桌面 MATLAB4.0以上版本都是在Windows以上环境支持下操作与运行的,因此,这里必须假定读者对Windows有一定的了解和掌握。本书以Windows98环境,MATLAB6.5版本为例介绍。书中绝大多数例子在MA TLAB5.3版本中亦能使用. 要想进入MATLAB系统,方法有二: (1)在Windows98的桌面上双击MATLAB快捷图标。 (2)单击Windows98的“开始”按钮,再依次单击:程序/MA TLAB/MA TLAB6.5; 图1-1 MATLAB6.5除保留了传统的命令窗口外,还增加了启动平台窗口、工作空间窗口、命令历史窗口、当前路径窗口等窗口,与新的M文件编辑器和新的在线帮助浏览器等共同构成了MA TLAB6.5的开发环境。 MATLAB的开发环境是MATLAB语言的基础和核心部分,MATLAB语言的全部功能都是在MA TLAB的开发环境中实现的,MA TLAB的仿真工具Simulink、MATLAB

的工具箱等其他附加功能的实现也必须使用MATLAB开发环境,因此,掌握MATLAB 的开发环境是掌握MATLAB语言的关键。 启动MA TLAB后,将显示包括命令窗口、启动平台窗口、工作空间窗口、命令历史窗口和当前路径窗口等5个窗口和主菜单组成的操作桌面(图1-1)。本节对操作桌面的各个窗口作简要介绍,部分窗口的功能和使用将在以后的章节中详细介绍。 操作桌面缺省状态下显示3个窗口,当前路径和工作空间窗口在同一位置显示,可以通过该窗口下方的箭头或窗口标签来切换,命令历史窗口和当前目录窗口在同一位置显示,可以通过该窗口下方窗口标签来切换。每个窗可以脱离操作桌面独立出来。也可以通过菜单View来选择显示哪些窗口。 MATLAB还设定了几种特定的窗口布局方式,在View菜单的Desktop Layout选项中,给定了6种布局方式: Default(缺省方式) Command Window Only(只显示命命令窗口方式) Simple(简单方式,只有命令历史窗口和命令窗口) Short History(低命令历史窗口方式) Tall History(高命令历史窗口方式) Five Panel(5个窗口平铺方式) 2.MATLAB的通用参数设置 MATLAB的通用参数和各功能窗口的参数可以通过主菜单中的file/Preferences项设置,这里先介绍通用参数的设置。 在主菜单中选择Preferences项,打开Preferences窗口(图1-2),缺省状态为通用参数设置,其选项包括: Display(显示选择)Show tooltips(显示相关信息),当单选框选择后,鼠标放在工具栏的快捷按钮上时显示相关信息。 Toolbox caching(工具箱缓冲区)对于远程使用MATLAB的用户,应选择单选框Enable Toolbox caching(打开工具箱缓冲区),建立一个高速缓冲区,以提高使用速度,对单机用户该选项作用不大。 Figure window printing(图形窗口打印)有3个选项,分别为Use printer default(按打印机缺省设置输出)、Always send as black and white(按黑白图形输出)和Always send as color(按彩色图形输出)。

MATLAB重点归纳

MATLAB重点归纳 1、工作空间窗口、命令窗口、历史命令窗口、开始按钮 2、>> 所在行可输入命令;没有>>所在行显示结果 3、MATLAB常用标点符号的功能(9页) 4、cd 设置当前目录。 eg:要设置当前目录为“C:\MY DIR”:>>cd C:\MY DIR save FileName 变量1 变量2 …参数 %将变量保存到文件中 5、save FileName1 %将变量保存到文件中 save FileName2 a b %将变量a,b保存到文件中 save FileName3 a b –append %将变量a,b添加到文件中 6、load FileName变量1 变量2 … %从数据文件中取出变量存放到工作空间 load FileName1 %把文件中的全部变量装入内存 load FileName2 a b %把文件中的a,b变量装入内存 7、who 查阅MATLAB内存变量名 8、whos 查阅MATLAB内存变量变量名、大小、类型和字节数 9、clear 删除工作空间中的变量 10、i=exist(‘X’) 查询工作空间中是否存在‘X’变量 i=1 表示存在一个变量名为‘X’的变量 i=2 表示存在一个名为‘’的文件 i=3 表示存在一个名为‘’的文件 i=4 表示存在一个名为‘’的文件 i=5 表示存在一个变量名为‘X’的内部函数 i=0 表示不存在以上变量和文件 11、path %列出MATLAB的搜索路径 Path(path,’ C:\MY DIR’) %在MATLAB的搜索路径的末尾添加新目录C:\MY DIR 12、what 列出当前目录下的M、MAT、MEX文件清单 13、dir %列出当前目录下的文件和子目录清单 dir 目录名 %列出指定目录下的文件和子目录清单 14、type 文件名 %显示指定M文件的内容 Type %显示文件的注释内容 15、which %指出M、MAT、MEX文件、工作空间变量、内置函数或Simulink模型所在目录 16、matlabroot %返回安装MATLAB的根目录 1、各种整数数据类型的范围和类型转换函数表(30页) 2、>> a=5; >> b=0; >> c=67; >> u1=uint8(a) %转换成无符号整型 u1 =

matlab

1.x=input('请输入一个四位整数:'); a=fix(x/1000); b=rem(fix(x/100),10); c=rem(fix(x/10),10); d=rem(x,10); a=a+7; b=b+7; c=c+7; d=d+7; a=rem(a,10); b=rem(b,10); c=rem(c,10); d=rem(d,10); e=a; a=c; c=e; f=b; b=d; d=f; x=1000*a+100*b+10*c+d; x 2.(1)a=input(‘请输入一个数’); b=input(‘请输入一个数’); c=input(‘请输入一个数’); If x>=0.5&&x<1.5 y=ax^2+bx+c elseif x>=1.5&&x<3.5 y=a(sinb)^c+x elseif x>=3.5&&x<5.5 y=log[abs(b+c/x)] end

disp y end (2)a=input(‘请输入一个数’); b=input(‘请输入一个数’); c=input(‘请输入一个数’); Switch x case[0.5,1.5] y=ax^2+bx+c case[1.5,3.5] y=a(sinb)^c+x case[3.5,5.5] y= log[abs(b+c/x)] end disp y 3. x=fix(rand(1,20)*89)+10; x1=fix(sum(x)/20); if xmax max=m; end if m

Matlab知识点回顾

Matlab中的数学函数 1:创建数组:linspace(first,last,n) logspace(first,last,n) 2:提取数组元素 a(2) a(2:2:10) a([2 4 6 8 10]) 3:特殊矩阵的建立: zeros() ones() rand() magic() eye() 4:简单程序

n=1,2,…,10,求xn=()sin */10;n pi 的值 for n=1:10 x(n)=sin(n*pi/10); end X 2:设银行年利率为11.25%。将10000元钱存入银行, 问多长时间会连本带利翻一番? years=0 money=10000 while money<20000 years=years+1 money=money*(1+11.25/100) end Years 3:编程求 function at=fff(n) sum=0; temp=1; for t=1:n temp=temp*t; sum=sum+temp; ∑=20 1 ! n n

end sum end 4:有一个4*5矩阵,编程求出其最大值及其所处的位置function ss=t(p) a=1; b=1; x=p(1,1); for m=1:4 for n=1:5 if p(m,n)>x x=p(m,n); a=m; b=n; end end end ss=[x a b];

End 5:绘图函数 6:绘图符号

7:meshgrid函数的使用 x=-3:0.1:3; >> y=1:0.1:5; >> [X Y]=meshgrid(x,y); >> Z=(X+Y).^2; >> plot3(X,Y,Z)/surf(X,Y,Z) shading flat/mesh(X,Y,Z)/meshz(X,Y,Z) 8:peaks函数的使用 x=-3:0.1:3; >> y=1:0.1:5; >> [X Y]=meshgrid(x,y); >> Z=peaks(X,Y); >> meshz(X,Y,Z) 9:图形处理

相关主题