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

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

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

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

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

《matlab程序设计》课程体系

第一讲:

Matlab介绍及桌面操作环境

一、matlab介绍

(1)历史背景

产生的背景

版本:

1992年(v4.0),1997年(v5.0),1999年(v5.3),2000年(v6.0),2002年(v6.5),2004年(v7.0)。

操作系统:

windows(98、2000、xp),Dos(unix、linux)

(2)特点

①工作界面友好,操作简单;

②编程语言简单,程序设计自由;

③计算能力强大,库函数资源丰富;

④超强图形处理能力;

⑤源代码开放,工具箱应用广泛;

⑥图形用户界面(GUI)设计和应用程序接口(API)

(3)安装与卸载

(4)启动与退出

启动:

①单击Windows开始菜单,依次选择程序→MATLAB7.0→MATLAB7.0;②运行MATLAB系统启动程序matlab.exe;③ 如果用户在桌面上建立了快捷方式,也利用快捷方式启动MATLAB系统。

退出:

①在MATLAB主窗口File菜单中选择ExitMATLAB命令;②在MATLAB命令窗口输入Exit或Quit命令;③单击MATLAB主窗口的关闭按钮。

(5)工作界面(主窗口)

二、桌面操作环境

(1)窗口

①命令窗口

主要操作:

输入、输出,运行函数,执行程序。

常见命令及功能:

clc、clear、clearall、clear变量名、clf(清楚图形窗口内容)、delete文件名、help文件名、which文件名(查找文件路径)、svae、load、size、↑、↓、ctrl+c(ctrl+break)。

②M文件编辑/调试器

③历史命令窗口

④当前目录窗口

⑤工作空间窗口

⑥图形窗口

(2)菜单

①file:

常用菜单项:

new、open、importdata、preferences、pagesetup(页面设置)、print、exit。

②edit(编辑菜单),很多时候采用快捷键实现。

③debug(调试菜单)

④desktop

⑤window

⑥help(有效利用帮助信息)

(3)工具条

(4)帮助系统

①联机帮助系统

菜单help或快捷键F1;工具条上问号按钮;在命令行窗口输入helpdesk、helpwin、doc命令;

②联机演示系统

help->demos;在命令窗口输入demos。

③在线帮助系统

help->webresources(网络资源)+checkforupdates(检测更新)。

④命令查询系统

help函数名;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)

②多项式展开

s=sym('(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:

>>symsx;

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

例3求

>>symsx;

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

②导数

一阶导数

命令:

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

例1求

的导数

>>symsx;

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

命令:

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

例2求

的导数

>>symsax;

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

例3求

关于a的导数

>>symsax;

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

高阶导数:

命令:

diff(F,x,n)

例4:

的二阶导数

>>symsx;

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

例5:

关于x的二阶导数

>>symsax;

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

例6:

的二阶混合导数

>>symsax;

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

>>dxa=diff(dx,a)

③积分

不定积分

命令:

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

例1:

>>symsx;

>>int(cos(2*x-1))

例2:

>>symsx;

>>int(x/sqrt(x+1))

定积分

命令:

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

例3:

>>symsx;

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

例4:

计算广义积分

symsx;

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

二重积分:

例5:

计算二重积分

,D由

围成。

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

>>symsxy;

>>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的根

例1:

求方程

的根

>>P=[1-2-3];%用向量表示多项式,即P是多项式的系数向量

>>roots(P)

例2:

求方程

的根

>>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表示正常退出

例3:

求方程

的根

>>[x,fva]=fsolve('x*3^x-1',0.8)

例4:

求方程

的根

>>[x,fva,exi]=fsolve('x*exp(2*x)-8',0.8)

>>[x,fva,exi,out]=fsolve('x*exp(2*x)-8',0.8)

③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表示正常退出

例5:

求方程

的根

>>x=fzero('x^2+x-1',0.5)

>>x=fzero('x^2+x-1',-2)

>>x=fzero('x^2+x-1',[12])

>>x=fzero('x^2+x-1',[02])

>>[x,fva,exi,out]=fzero('x^2+x-1',[02])

(2)其它迭代解法

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

二、求解方程组

(1)线性方程组

①矩阵求逆法

例1:

求解线性方程组

>>A=[123;-137;903];

>>b=[1;4;7];

>>x=A\b

或者

>>A=[123;-137;903];

>>b=[1;4;7];

>>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.

例2:

利用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.

例3:

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

>>A=[10.50.33330.25;0.50.33330.250.2;...

0.33330.250.20.1667;0.250.20.16670.1429;];

>>B=[1;2;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为一正整数。

例4:

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

>>A=[9-3630;-36192-180;30-180180];

>>B=[1;1;1];

>>[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)

例5:

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

>>A=[1-23;410;716;958];

>>B=[1;0;1;0];

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

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

⑤欠定方程AX=B的通解

matlab在求解欠定方程组时,只给出其中一组解,不会给出方程组的通解,但是可以用rref命令<化为行阶梯>(查看增广矩阵的秩和系数矩阵的秩)来分析方程是否有通解。

例6:

求欠定方程的通解

>>A=[123-1;321-1;1-2-51];

>>B=[2;4;0];

>>X=A\B

X=

1.25

0

0.25

0

>>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)

结果为:

r=

0.99999999999957-1.99999999999959

6.000000000000102.99999999999989

val=

1.0e-011*

0.140687461680500.27231550348006

-0.284217094304040.16089352072868

可以验证结果。

②迭代解法

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

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

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

三、解微分方程

(1)直接解法

函数:

dsolve

格式:

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

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

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

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

例1:

计算

的通解。

>>dsolve('Dy=x^2')

ans=

x^2*t+C1

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

>>dsolve('Dy=x^2','x')

ans=

1/3*x^3+C1

此解才是我们想要的解。

例2:

计算

的通解

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

ans=

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

例3:

求微分方程

在初始条件

下的特解。

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

(1)=2*exp

(1)','x')

ans=

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

(1))/x^2

例4:

求二阶微分方程

的通解。

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

ans=

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

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

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

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

四、数理统计

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

①排序

命令:

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

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

例1:

已知某5个同学的数学、外语、计算机成绩分别为math=[8678829185];english=[6248716966];computer=[8879769496],请将按各科分数增序排列,并分别找出各科的最差生和最优生。

②最大、小值

命令:

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

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

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

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

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

例2:

找出数学最高分和英语最低分;将各科成绩写成一个矩阵result=[math;english;computer],利用相应命令寻找各科的最高最低分和每个同学的最高最低分。

③均值(期望)

命令:

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

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

例3:

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

④查找

命令:

find(express)

例4:

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

>>find(math==max(math))

>>find(math>=mean(math))

(2)和与积

①和、累计和

命令:

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

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

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

例5:

求1+3+5+…+99;

>>x=1:

2:

99;

>>sum(x)

例6:

求每个学生的总成绩;

例7:

cs1=[342563];cs2=cumsum(cs1);plot(cs1);holdon;plot(cs2);

例8:

cs3=ones(4);cs4=cumsum(cs3);

②积、累计积

命令:

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

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

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

(3)方差、标准差

命令:

var()%方差

std()%标准差

例8:

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