《matlab程序设计》课程体系Word格式.docx

上传人:b****3 文档编号:17817245 上传时间:2022-12-11 格式:DOCX 页数:36 大小:132.49KB
下载 相关 举报
《matlab程序设计》课程体系Word格式.docx_第1页
第1页 / 共36页
《matlab程序设计》课程体系Word格式.docx_第2页
第2页 / 共36页
《matlab程序设计》课程体系Word格式.docx_第3页
第3页 / 共36页
《matlab程序设计》课程体系Word格式.docx_第4页
第4页 / 共36页
《matlab程序设计》课程体系Word格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

《matlab程序设计》课程体系Word格式.docx

《《matlab程序设计》课程体系Word格式.docx》由会员分享,可在线阅读,更多相关《《matlab程序设计》课程体系Word格式.docx(36页珍藏版)》请在冰豆网上搜索。

《matlab程序设计》课程体系Word格式.docx

④命令查询系统

help函数名;

demos->

search+函数名。

第二讲:

Matlab基本运算

一、数值类型

(1)变量

①命名规则

(a):

变量名以英文字母开始,由字母、数字、下划线组成,不能有空格和标点符号;

(b):

区分大小写;

(c):

变量名长度不能超过31位,超过部分将被忽略;

(d):

某些常量也可作变量名,如虚数单位i。

②变量的显示

format:

短格式(5位定点数);

formatlong:

长格式(15位定点数);

formate:

短格式e方式;

formatlonge:

长格式e方式;

formatbank:

2位十进制格式;

③变量存取

save:

存储

load:

读取

(2)常量

matlab中常见常量:

pi:

圆周率

i(j):

虚数单位

inf:

无穷大

nan:

“notanumber”即不定值

自然对数的底e:

[exp(x):

计算e的x次方],故e=exp

(1).

二、关系运算与逻辑运算

(1)关系运算符:

大于:

>

大于等于:

=

小于:

<

小于等于:

等于:

==不等于:

~=

(2)逻辑运算符:

逻辑与:

&

逻辑或:

|逻辑非:

~

三、数学运算符和基本数学函数

(1)数学运算符

加:

+减:

-乘:

*

右除:

/左除:

\乘方:

^

(2)常用数学函数

abs(x):

sqrt(x):

exp(x):

log(x):

log2(x):

log10(x):

sin(x):

cos(x):

tan(x):

cot(x):

sec(x):

csc(x):

asin(x):

acos(x):

atan(x):

acot(x):

real(z):

imag(z):

conj(z):

取整函数:

round(x):

4舍5入

fix(x):

向零取整

floor(x):

向小取整

ceil(x):

向大取整

rem(x,y):

x除以y的余数

gcd(x,y):

求整数x与y的最大公因子

lcm(x,y):

求正整数的最小公倍数

四、矩阵及其运算

(1)矩阵的创建

向量(横向量、列向量),矩阵

例如:

a=[1234]%建立一个4维行向量

b=[2;

4;

6;

8]%建立一个4维列向量

c=[1011;

0011;

0101;

1110]%建立4行4列的矩阵

d=[1234;

4356;

2213]%建立3行4列矩阵

(2)矩阵的访问

向量单个元素访问:

a(i)

矩阵单个元素访问:

c(i,j)

访问矩阵某一行:

d(i,:

访问矩阵某一列:

d(:

j)

访问矩阵某一块:

d(1:

2,2:

4)

(3)矩阵的基本运算

加(+)、减(-)、乘(*)、左除(/)、右除(\)、幂(^)、转置(‘)、求逆(inv())

(4)常用矩阵函数

方阵的行列式:

det(A)

矩阵的秩:

rank(A)

矩阵的特征值和特征向量:

eig(A)

计算矩阵特征方程的根:

poly(A)(参考帮助系统)

diag(A):

生成由矩阵A的主对角元素组成的列向量;

diag(X):

生成由向量X的元素为主对角元素,其余元素为零的方阵;

triu(A):

生成上三角矩阵;

tril(A):

生成下三角矩阵;

(5)常见特殊矩阵

zeros():

产生元素全为0的矩阵

ones():

产生元素全为1的矩阵

eye():

产生单位矩阵

rand():

产生均匀分布的随机矩阵

randn():

产生正态分布的随机矩阵

五、符号运算

(1)创建符号对象

①sym函数:

一次定义一个符号;

格式:

符号变量=sym(‘符号字符串’)

②syms函数:

一次定义多个符号;

格式:

symsx1x2x3......

u=sym('

3*x^2+5*y^2+2*x*y+6'

symsxy

v=x^2-2*y^2+x*y

2*u-v+2

(2)符号表达式的四则运算

symsxy;

s1=2*x^2-x+5;

s2=x^2+3*x-2;

s1+s2

s1-s2

s1*s2

s1/s2

①因式分解:

s=sym('

x^2-2*x-3'

);

factor(s)

又如

s=sym('

6*x^4+5*x^3+5*x-6'

factor(s)

再如

f=factor(123)

②多项式展开

(2*x+3)*(3*x-2)*(x^2+1)'

expand(s)

(3)符号微积分运算

①极限

命令:

limit(F,x,a)%计算函数F当x趋向于a时的极限;

例1:

symsx;

limit((x^2-1)/(x-1),x,1)

例2:

limit((cos(x)-cos(3*x))/(x^2),x,0)

例3求

limit((x+sin(x))/x,x,inf)

②导数

一阶导数

diff(F)%计算函数F的导数

例1求

的导数

diff(3*x^2+2*x+1)

diff(F,x)%计算函数F关于x的导数

例2求

symsax;

diff(cos(a*x^2-1),x)

例3求

关于a的导数

diff(cos(a*x^2-1),a)

高阶导数:

diff(F,x,n)

例4:

的二阶导数

diff(3*x^2+2*x+1,2)

例5:

关于x的二阶导数

diff(cos(a*x^2-1),x,2)

例6:

的二阶混合导数

dx=diff(cos(a*x^2-1),x);

dxa=diff(dx,a)

③积分

不定积分

int(F)%求F的不定积分

int(cos(2*x-1))

例2:

int(x/sqrt(x+1))

定积分

int(F,a,b)%求F在[a,b]上的定积分

例3:

int(x^3*atan(x),0,1)

例4:

计算广义积分

int(1/(1+9*x^2),-inf,inf)

二重积分:

计算二重积分

,D由

围成。

若先对y积分,则积分限为:

z=0.5*(2-x-y);

z_y=int(z,y,x^2,x);

z_y_x=int(z_y,x,0,1)

第三讲:

Matlab数值计算

一、解方程

(1)直接解法

①roots函数

roots(P)%计算多项式方程P=0的根

求方程

的根

P=[1-2-3];

%用向量表示多项式,即P是多项式的系数向量

roots(P)

P=[1-203-8];

X=roots(P)

②fsolve函数

fsolve(‘fun’,x0)%计算fun=0的根,x0为估计根的初始值

[x,fva]=fsolve(‘fun’,x0)%输出根x及x处的函数值

[x,fva,exi]=fsolve(‘fun’,x0)%输出根x及x处的函数值,exi为1表示正常退出

[x,fva]=fsolve('

x*3^x-1'

0.8)

[x,fva,exi]=fsolve('

x*exp(2*x)-8'

[x,fva,exi,out]=fsolve('

③fzero函数

fzero(‘fun’,x0)%计算fun=0的根,x0为估计根的初始值,可是是常数,也可以是区间,若是常数则计算x0附近的根,若是区间,则计算区间里的根,无根则输出错误信息。

[x,fva]=fszero(‘fun’,x0)%输出根x及x处的函数值

[x,fva,exi]=fzero(‘fun’,x0)%输出根x及x处的函数值,exi为1表示正常退出

x=fzero('

x^2+x-1'

0.5)

-2)

[12])

[02])

[x,fva,exi,out]=fzero('

(2)其它迭代解法

如二分法、牛顿切线法、不动点迭代法、弦截法等,这些算法的实现将在第五讲应用举例中讲述。

二、求解方程组

(1)线性方程组

①矩阵求逆法

求解线性方程组

A=[123;

-137;

903];

b=[1;

7];

x=A\b

或者

x=inv(A)*b

②矩阵分解法

LU分解

[L,U]=lu(A)%对AX=B的系数矩阵A进行lu分解,使A=LU,则原方程变为LUX=B,则X=U\(L\B)或X=inv(U)*inv(L)*B.

利用LU分解求解线性方程组

A=[1.53-0.84;

20910;

-74.8-0.61;

1412.3-45];

B=[4;

0;

1;

-2];

[L,U]=lu(A)

X=U\(L\B)%或X=inv(U)*inv(L)*B

QR分解

[Q,R]=qr(A)%对AX=B的系数矩阵A进行qr分解,使A=QR,则原方程变为QRX=B,则X=R\(Q\B)或X=inv(R)*inv(Q)*B.

利用QR分解求解线性方程组

A=[10.50.33330.25;

0.50.33330.250.2;

...

0.33330.250.20.1667;

0.250.20.16670.1429;

];

B=[1;

2;

1];

[Q,R]=qr(A)

x=R\(Q\B)或X=inv(R)*inv(Q)*B

Cholesky分解

[R,p]=chol(A)%对AX=B的系数矩阵A进行Cholesky分解,使A=R'

R,则原方程变为R'

RX=B,则X=R\(R'

\B)或X=inv(R)*inv(R'

)*B.若A正定对称,则p为0,否则p为一正整数。

A=[9-3630;

-36192-180;

30-180180];

[R,p]=chol(A)

x=R\(R'

\B)%或X=inv(R)*inv(R'

)*B

③迭代法

如Gauss-Seidel迭代法、Jacobi迭代法等,这些算法的实现将在第五讲应用举例中讲述。

④超定方程的近似解法

伪逆法:

X=pinv(A)*B

最小二乘法:

X=lsqnonneg(A,B)

利用伪逆法和最小二乘法求解超定方程组

A=[1-23;

410;

716;

958];

0];

X1=pinv(A)*B%利用伪逆法

X2=lsqnonneg(A,B)%利用最小二乘法

⑤欠定方程AX=B的通解

matlab在求解欠定方程组时,只给出其中一组解,不会给出方程组的通解,但是可以用rref命令<

化为行阶梯>

(查看增广矩阵的秩和系数矩阵的秩)来分析方程是否有通解。

求欠定方程的通解

A=[123-1;

321-1;

1-2-51];

B=[2;

X=A\B

X=

1.25

0

0.25

rref([AB])

ans=

1.000-1.0001.00

01.002.00-0.500.50

00000

显然有通解为:

就是系统给出的特解。

(2)非线性方程组

①直接解法

直接采用fsolve函数进行求解。

例7:

求方程组

的根,初始解为x=[2,2].

解:

首先建立函数的m文件,文件名为myfun.m:

functionF=myfun(x)

F=[x

(1)^2-x

(2)-2;

-2*x

(1)+x

(2)^2-4];

然后再命令窗口中输入:

x0=[22];

[r,val]=fsolve(@myfun,x0)

结果为:

r=

2.214319743378112.90321192591201

val=

1.0e-011*

0.20752288776293

0.152********251

也可以用fsolve函数求解矩阵方程;

例8:

求矩阵方程

的一个根,初始解为x0=[1,1;

1,1].

首先建立函数的m文件,文件名为matrixfun.m:

functionF=matrixfun(x)

F=[x*x-[-11,-8;

24,-3]];

x0=[1,1;

1,1];

[r,val]=fsolve(@matrixfun,x0)

0.99999999999957-1.99999999999959

6.000000000000102.99999999999989

0.140687461680500.27231550348006

-0.284217094304040.16089352072868

可以验证结果。

②迭代解法

非线性方程组的数值解法大多源于非线性方程的解法,区别是将数的计算换成了矩阵的计算。

常用的非线性方程组的迭代算法有不动点迭代法和牛顿迭代法等。

具体算法实现将在第5讲中讲述。

三、解微分方程

函数:

dsolve

(1)dsolve(‘equation’)%给出微分方程的解析解,表示为t的函数。

(2)dsolve(‘equation’,’v’)%给出微分方程的解析解,表示为v的函数。

(3)dsolve(‘equation’,’condition’)%给出微分方程初值问题的解,表示为t的函数。

(4)dsolve(‘equation’,’condition’,’v’)%给出微分方程初值问题的解,表示为v的函数。

计算

的通解。

dsolve('

Dy=x^2'

ans=

x^2*t+C1

由于系统默认的自变量是t,故在求解时将x看作了常数。

'

x'

1/3*x^3+C1

此解才是我们想要的解。

计算

的通解

Dy+3*x*y=x*exp(-x^2)'

exp(-x^2)+exp(-3/2*x^2)*C1

求微分方程

在初始条件

下的特解。

x*Dy+2*y-exp(x)=0'

y

(1)=2*exp

(1)'

(exp(x)*x-exp(x)+2*exp

(1))/x^2

求二阶微分方程

D2y+2*Dy+exp(x)=0'

-1/3*exp(x)-1/2*exp(-2*x)*C1+C2

(2)微分方程(组)数值解法

请在学了数值计算方法后自学这部分内容。

主要方法有欧拉法、龙格-库塔法、预估-校正法等。

四、数理统计

(1)数据排序、最值、均值、查找

①排序

sort(x)%向量x按曾序排列;

[y,ind]=sort(x)%向量x增序排列为y向量,并输出下表向量;

已知某5个同学的数学、外语、计算机成绩分别为math=[8678829185];

english=[6248716966];

computer=[8879769496],请将按各科分数增序排列,并分别找出各科的最差生和最优生。

②最大、小值

max(x)%求向量的x的最大元素值;

min(x)%求向量x的最小元素值;

max(A)%求矩阵A每一列中最大值组成的行向量;

min(A)%求矩阵A每一列中最小值组成的行向量;

max(A,B)%求矩阵A和B中对应元素最大值组成的矩阵;

找出数学最高分和英语最低分;

将各科成绩写成一个矩阵result=[math;

english;

computer],利用相应命令寻找各科的最高最低分和每个同学的最高最低分。

③均值(期望)

mean(x)%求向量x的平均值;

mean(A)%计算矩阵A每一列的均值

计算每门课程的平均成绩和每个同学的平均成绩;

④查找

find(express)

找出数学成绩最高的是第几个学生、高于平均成绩的是那几个学生;

find(math==max(math))

find(math>

=mean(math))

(2)和与积

①和、累计和

sum(x)%求向量x所有元素之和

sum(A)%求矩阵A的各列元素和;

cumsum(x)%求向量x的累计和向量

求1+3+5+…+99;

x=1:

2:

99;

sum(x)

求每个学生的总成绩;

cs1=[342563];

cs2=cumsum(cs1);

plot(cs1);

holdon;

plot(cs2);

cs3=ones(4);

cs4=cumsum(cs3);

②积、累计积

prod(x)%求向量x所有元素之积

prod(A)%求矩阵A的各列元素积;

cumprod(x)%求向量x的累计积向量

(3)方差、标准差

var()%方差

std()%标准差

a1=rand(1,200);

%在0到1之间产生200个均匀分的随机数

mean(a1)%计算其期望

var(a1)%计算其方差

std(a1)%计算其标准差

(4)协方差、相关系数

cov()%协方差

corrcoef()%相关系数

例9:

cov(a1)%计算a1的协方差(方差)

cov(a1,a2)%计算a1和a2的协方差

corrcoef(a1,a2)%计算a1和a2的相关系数

b1=[1234567];

b2=[24.15.87.910.212.515];

corrcoef(b1,b2)%计算>

corrcoef(a1,a2)%计算b1和b2的相关系数

(5)随机数的产生

random%参考help

例10:

y=random('

normal'

0,1,1,10000);

%产生0均值1方差1行10000列的正太分布随机数;

mean(y)%检验均值

var(y)%检验方差

y1=random('

poisson'

10,1,10000);

%产生均值为10的1行10000列的泊松分布随机数;

mean(y1)%检验均值

var(y1)%检验方差

y2=random('

exp'

2,1,10000);

%产生均值为2的1行10000列的指数分布随机数;

mean(y2)%检验均值

var(y2)%检验方差

综合例:

某校60名学生的一次考试成绩如下:

937583939185848277767795948991888683968179977875676968848381756685709484838280787473767086769089716686738094797877635355

1)计算均值、标准差、极差,画出直方图;

2)检验分布的正态性;

3)若检验符合正态分布,估计正态分布的参数并检验参数。

x=[93758393918584827776779594899188868396817997787567696884838175668570948483828078747376708676

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1