MATLAB程序设计.docx

上传人:b****6 文档编号:8216897 上传时间:2023-01-29 格式:DOCX 页数:74 大小:202.14KB
下载 相关 举报
MATLAB程序设计.docx_第1页
第1页 / 共74页
MATLAB程序设计.docx_第2页
第2页 / 共74页
MATLAB程序设计.docx_第3页
第3页 / 共74页
MATLAB程序设计.docx_第4页
第4页 / 共74页
MATLAB程序设计.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

MATLAB程序设计.docx

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

MATLAB程序设计.docx

MATLAB程序设计

 

南通广播电视大学

2011年--2012年第一学期

 

教案

 

系(部)艺术传媒学院

教师姓名

课程名称MATLAB程序设计

授课班级09电气自动化

总时数36

 

授课日期

9/19

授课时数

4

授课形式

讲授

实验

授课章节名称

第一章数值计算功能

1.1矩阵及其运算

1.2微分和积分

1.3MATLAB与线性代数

教学目的

通过对本章的学习,读者可以编写简单且功能完善的MATLAB7程序,从而解决各类基本问题,用户可以通过本章逐步掌握MATLAB7的数值计算方法

教学重点、难点

1矩阵的生成和基本的数值运算

2稀疏型矩阵的生成和基本操作

3数值微分的求解方法

更新、补充、删节内容

概率统计(删节)

课外作业

 

打印稿或电子稿(附后)

课后体会

MATLAB是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。

授课主要内容或提纲

使用教具、挂图或其它教学手段

时间分配

一、组织教学(教具检查,考勤)

二、新课导入:

MATLAB软件是一种功能强大,运行效率很高的数字工具软件,他几乎可以解决科学计算中的所有问题,因此,大家掌握后对学习其他课程也大有裨益。

三、新课讲授:

1.1矩阵及其运算

矩阵的生成有多种方式,通常使用的有4种方法:

1在命令窗口中直接输入矩阵

2通过语句和函数产生矩阵

3在M文件中建立矩阵

4从外部的数据文件中导入矩阵

例如:

在MATLAB7命令窗口输入矩阵

>>matrix=[1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4]

matrix=

1111

2222

3333

4444

矩阵与常数的四则运算

矩阵之间的四则运算

>>A=[21-1;210;1-11]

A=

21-1

210

1-11

>>B=[1-13;432];

>>X=B/A

X=

-2.00002.00001.0000

-2.66675.0000-0.6667

零矩阵和全1矩阵的生成(zeros、ones)

对角矩阵的生成(diag)

随机矩阵的生成(rand、randn)

范德蒙德矩阵的生成(vander)

魔术矩阵的生成(magic)

Hilbert矩阵和反Hilbert矩阵的生成(hilb、invhilb)

>>rand(5)

ans=

0.95010.76210.61540.40570.0579

0.23110.45650.79190.93550.3529

0.60680.01850.92180.91690.8132

0.48600.82140.73820.41030.0099

0.89130.44470.17630.89360.1389

>>

1.2微分和积分

1数值微分

2使用diff函数求数值微分

3使用gradient函数求近似梯度

4jacobian函数求多元函数的导数

5函数的数值积分

6矩形求积

7trapz函数(梯形求积)

8自适应法(Simpson法)

9高阶自适应法(Newton-Cotes法)

(1)数值微分

>>symsxyz

>>jacobian([x*y*z;y;x+z],[xyz])

ans=

[y*z,x*z,x*y]

[0,1,0]

[1,0,1]

>>symsuv

>>jacobian(u*exp(v),[u;v])

ans=

[exp(v),u*exp(v)]

 

(2)函数的数值积分

一元函数的数值积分

●对于向量x,cumsum(x)命令返回一个向量,该向量的第N个元素是x的前N个元素的和。

●对于矩阵x,cumsum(x)命令返回一个和x同型的矩阵,该矩阵的列即为对x的每一列的累加和。

此程序实现累加和积分

>>x=0:

0.1:

10;

>>y=sin(x);

>>z=cumsum(y)*0.1;

>>plot(x,y,'r-',x,z,'k*')

自适应法(Simpson法)

Q=quad(fun,a,b)命令使用Simpson法则的自适应法求函数f从a到b的相对误差为1.e-6的积分近似值。

Q=quad(fun,a,b,tol)命令使用一个绝对误差容限tol代替默认的1.e-6,当tol值比较大时,可以使计算速度加快,但精度降低。

[q,fcnt]=quad(…)命令用于返回函数计算的步数。

1.3MATLAB与线性代数

functiony=myfun3(x)

y

(1)=3*x

(1)^2-x

(2)^2;

y

(2)=3*x

(1)*x

(2)^2-x

(1)^2-1;

 

课后作业:

1创建符号表达式f(x)=sin(x)+cos(x)-tan(x)

2计算题1中符号表达式在x=0,x=1,x=2pi处的值

3设x为符号变量,f(x)=x^4+2x^2+1;g(x)=x^3+6x^2+3x+5,试计算如下表达式

(1)f(x)+g(x)

(2)f(x)*g(x)

(3)对f(x)进行因式分解

(4)求g(x)的反函数

4求tan(x)/x当x->0时的极限

5求sin(x)/(x-pi)当x->pi时的极限

6求sin(x)+x在x=[0,8]上的定积分

7求解线性方程组3x+4y=1

4x+3y=-1

8求解非线性方程组

y

(1)=3*x

(1)^2-x

(2)^2;

y

(2)=3*x

(1)*x

(2)^2-x

(1)^2-1;

参考答案:

1>>symsx

>>f=sin(x)+cos(x)-tan(x)

f=

sin(x)+cos(x)-tan(x)

2>>subs(f,x,0)

ans=

1

>>subs(f,x,1)

ans=

-0.1756

>>>>subs(f,x,2*pi)

ans=

1

3

>>symsx

>>f=x^4+2*x^2+1

f=

x^4+2*x^2+1

>>g=x^3+6*x^2+3*x+5

g=

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

>>f+g

ans=

x^4+8*x^2+6+x^3+3*x

>>f*g

ans=

(x^4+2*x^2+1)*(x^3+6*x^2+3*x+5)

>>horner(f)

ans=

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

>>finverse(g)

Warning:

finverse(x^3+6*x^2+3*x+5)isnotunique.

>InD:

\MATLAB6p5dd\toolbox\symbolic\@sym\finverse.matline43

ans=

1/2*(-60+4*x+4*(117-30*x+x^2)^(1/2))^(1/3)+6/(-60+4*x+4*(117-30*x+x^2)^(1/2))^(1/3)-2

>>

7>>[x,y]=solve('3*x+4*y=1','4*x+3*y=-1')

x=

-1

y=

1

>>

8

functiony=myfun3(x)

y

(1)=3*x

(1)^2-x

(2)^2;

y

(2)=3*x

(1)*x

(2)^2-x

(1)^2-1;

 

多媒体教学

 

5分钟

 

10分钟

 

30分钟

 

25分钟

 

20分钟

 

授课日期

9/26

授课时数

4

授课形式

讲授

实验

授课章节名称

第二章MATLAB7符号运算

2.1符号变量

2.2符号变量的基本操作

2.3符号表达式

教学目的

通过对本章的学习,读者应该掌握符号表达式和符号矩阵的操作、符号微积分、符号线性方程和符号微分方程等的运算。

教学重点、难点

符号表达式和符号矩阵的操作

符号微积分

符号线性方程

符号微分方程

更新、补充、删节内容

课外作业

 

补充

课后体会

MATLAB是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。

授课主要内容或提纲

使用教具、挂图或其它教学手段

时间分配

一、组织教学(教具检查,考勤)

二、新课导入:

MATLAB提供了功能强大的符号运算功能,他专门提供了符号工具相SymbolimathToolbox,完全可以替代其他符号专用的计算机语言。

三、新课讲授:

2.1符号变量、符号表达式和符号方程的生成

使用sym函数定义符号变量和符号表达式

使用syms函数定义符号变量和符号表达式

符号方程的生成

(1)使用sym函数定义符号变量和符号表达式

>>sqrt

(2)

ans=

1.4142

>>a=sqrt(sym

(2))

a=

2^(1/2)

>>sym

(2)/sym(5)

ans=

2/5

>>2/5+1/3

ans=

0.7333

(2)使用syms函数定义符号变量和符号表达式

>>symsabcx

>>f=sym('a*x^2+b*x+c')

f=

a*x^2+b*x+c

>>g=f^2+4*f-2

g=

(a*x^2+b*x+c)^2+4*a*x^2+4*b*x+4*c-2

(3)符号方程的生成

>>%符号方程的生成

>>%使用sym函数生成符号方程

>>equation1=sym('sin(x)+cos(x)=1')

equation1=sin(x)+cos(x)=1

 

2.2符号变量的基本操作

findsym函数用于寻找符号变量

任意精确度的符号表达式

数值型变量与符号型变量的转换形式

(1)findsym函数用于寻找符号变量

>>symsaalphabx1y

>>findsym(alpha+a+b)

ans=

a,alpha,b

>>findsym(cos(alpha)*b*x1+14*y,2)

ans=

x1,y

>>findsym(y*(4+3*i)+6*j)

ans=

y

(2)任意精确度的符号表达式

>>r=vpa(pi)

r=

3.1415926535897932384626433832795

>>

>>q=vpa(hilb

(2))

q=

[1.,.50000000000000000000000000000000]

[.50000000000000000000000000000000,.33333333333333333333333333333333]

>>

(3)数值型变量与符号型变量的转换形式

>>t=0.1

t=

0.1000

>>sym(t)%有理数形式

ans=

1/10

>>sym(t,'r')%有理数形式

ans=

1/10

>>sym(t,'f')%浮点数形式

ans=

'1.999999999999a'*2^(-4)

2.3.符号表达式(符号函数)的操作

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

(2)合并符号表达式的同类项

(3)符号多项式的因式分解

(4)符号表达式的简化

(5)subs函数用于替换求值

(6)反函数的运算

(7)复合函数的运算

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

>>symsxyab

>>fun1=sin(x)+cos(y)

fun1=

sin(x)+cos(y)

>>fun2=a+b

fun2=

a+b

>>fun1+fun2

ans=

sin(x)+cos(y)+a+b

>>fun1*fun2

ans=

(sin(x)+cos(y))*(a+b)

(2)合并符号表达式的同类项

Collect(S,v)命令将用于符号矩阵S中所有同类项合并,并以v为变量输出。

Collect(S)命令使用findsym函数规定的默认变量代替上式中的v

>>symsxy

>>collect(x^2*y+y*x-x^2-2*x)

ans=

(y-1)*x^2+(y-2)*x

>>f=-1/4*x*exp(-2*x)+3/16*exp(-2*x);

>>collect(f)

ans=

-1/4*x*exp(-2*x)+3/16*exp(-2*x)

>>

(3)符号多项式的因式分解(horner)

在MATLAB7语言中,使用horner函数进行符号多项式的因式分解。

>>symsx

>>fun1=2*x^3+2*x^2-32*x+40

fun1=

2*x^3+2*x^2-32*x+40

>>horner(fun1)

ans=

40+(-32+(2+2*x)*x)*x

>>fun2=x^3-6*x^2+11*x-6

fun2=

x^3-6*x^2+11*x-6

>>horner(fun2)

ans=

-6+(11+(-6+x)*x)*x

(4)符号表达式的简化(simplify)

Simplify(S)命令将符号表达式S中的每一个元素进行化解,但不一定能得到最简表达式。

>>symsx

>>fun1=(1/x+7/x^2+12/x+8)^(1/3)

fun1=

(13/x+7/x^2+8)^(1/3)

>>sfy1=simplify(fun1)

sfy1=

((13*x+7+8*x^2)/x^2)^(1/3)

>>sfy2=simplify(sfy1)

sfy2=

((13*x+7+8*x^2)/x^2)^(1/3)

(5)subs函数用于替换求值

Subs(S)命令用于将符号表达式S中的所有符号变量用调用函数中的值或是MATLAB7工作区间的值代替。

Subs(S,new)命令将符号表达式S中的自由符号变量用数值型变量或表达式new替换,如用户想求表达式f=2x^2-3x+1当x=2时的值,可以使用subs(f,2)

Subs(S,old,new)命令将符号表达式S中的符号变量old用数值型变量或表达式new替换。

>>symsxy

f=x^2*y+5*x*sqrt(y)

f=

x^2*y+5*x*y^(1/2)

>>subs(f,x,3)

ans=

9*y+15*y^(1/2)

>>subs(f,y,3)

ans=

3*x^2+5*x*3^(1/2)

>>

(6)反函数的运算(finverse)

G=finverse(f)命令用于求解f的反函数,其中f为一符号表达式,x为单变量,函数g也是一个符号函数,且满足g(f(x))=x.

G=finverse(f,v)命令所返回的符号函数表达式的自变量是v,这里v是一个符号变量,且是表达式的向量变量,而g的表达式要求满足g(f(x))=v。

当f包括不止一个变量时最好使用该指令。

>>symsxy

>>f=x^2+y

f=

x^2+y

>>finverse(f,y)

ans=

-x^2+y

(7)复合函数的运算(compose)

>>symsxyztu

>>f=1/(1+x^2)

>>g=sin(y)

>>h=x^t

>>p=exp(-y/u)

>>compose(f,g)

ans=

1/(1+sin(y)^2)

>>compose(f,g,t)

ans=

1/(1+sin(t)^2)

 

 

多媒体教学

 

5分钟

 

10分钟

 

30分钟

 

25分钟

 

20分钟

 

授课日期

10/10

授课时数

4

授课形式

讲授

实验

授课章节名称

第二章MATLAB7符号运算

2.4符号矩阵的生成与运算

2.5符号微积分

 

教学目的

知道矩阵的生成和符号的微积分

教学重点、难点

符号微积分

符号线性方程

符号微分方程

更新、补充、删节内容

课外作业

 

补充

课后体会

MATLAB是工程计算的非常实用的软件,可以用于进行数字系统仿真,建模,图像处理,simlink仿真分析,高数中的相关数学运算,因此,MATLAB的应用领域非常广泛,对学生的学习有很大帮助。

通过对本章的学习,读者应该掌握符号表达式和符号矩阵的操作、符号微积分、符号线性方程和符号微分方程等的运算。

授课主要内容或提纲

使用教具、挂图或其它教学手段

时间分配

一、组织教学(教具检查,考勤)

二、新课导入:

MATLAB提供了功能强大的符号运算功能,他专门提供了符号工具相SymbolimathToolbox,完全可以替代其他符号专用的计算机语言。

三、新课讲授:

2.4符号矩阵的生成和运算

(1)符号矩阵的生成

(2)使用sym函数直接生成符号矩阵

(3)用生成子矩阵的方法生成符号矩阵

(4)由数值矩阵转换为符号矩阵

(1)sym函数直接生成符号矩阵

>>a1=sym('[1/32/35/7;9/1111/1313/17;17/1919/2323/29]')

a1=

[1/3,2/3,5/7]

[9/11,11/13,13/17]

[17/19,19/23,23/29]

>>

(2)用生成子矩阵的方法生成符号矩阵

>>a=['[100,cos(x)]';'[1/s,x]']

a=

[100,cos(x)]

[1/s,x]

>>

(3)由数值矩阵转换为符号矩阵

>>M=[30111;6159;98254;3245620]

M=

30111

6159

98254

3245620

>>S=sym(M)

S=

[30,1,1,1]

[6,1,5,9]

[9,8,25,4]

[32,45,62,0]

此时,虽然矩阵形式没有发生改变,但是在MATLAB7的工作区间内,系统已经生成了一个新的矩阵,其数据类型为符号型。

2.5.符号微积分

符号极限(limit)

Limit(F,x,a)命令用于计算符号表达式当x->a时F=F(x)的极限值。

Limit(F,a)命令首先用findsym(x)确定F中的自变量,设为变量x,然后计算当x->a时F的极限值。

Limit(F)命令使用findsym(x)确定F中的自变量,设为变量x,然后计算x->0时F的极限值。

Limit(F,x,a,’right’)或Limit(F,x,’left’)命令用来计算符号函数F的单侧极限:

左极限x->a-或右极限x->a+。

(1)符号极限(limit)

>>symsxath;

limit(sin(x)/x)

ans=

1

>>limit((x-2)/(x^2-4),2)

ans=

1/4

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

ans=

exp(6*t)

2.6符号微分和求导

diff函数的使用

Diff(x)命令根据由findsym(x)命令返回自变量v,求表达式x的一阶导数。

Diff(x,n)命令根据由findsym(x)命令返回的自变量v,求表达式x的n阶导数,n必须是自然数。

Diff(x,’v’)或diff(S,sym(‘v’))命令根据findsym(x)命令返回的自变量v,计算x的一阶导数。

Diff(S,’v’,n)命令根据由findsym(x)命令返回的自变量v,计算x的n阶导数。

使用Dff函数进行符号微分和求导

>symsx

>>diff(x^3+3*x^2+4*x+6)

ans=

3*x^2+6*x+4

>>diff(sin(x^3),4)

ans=

81*sin(x^3)*x^8-324*cos(x^3)*x^5-180*sin(x^3)*x^2

对多个变量中的某个自变量求导。

>>symsxy

>>diff(x*y+y^2+sin(x)+cos(y),y)

ans=

x+2*y-sin(y)

>>diff(x*y+y^2+sin(x)+cos(y),y,3)(把x看成常数,进行三次对Y求导)

ans=

sin(y)

符号积分(int)

Int(S)命令根据由findsym(S)命令返回自变量v,求S的不定积分,其中S为符号矩阵或符号常量。

Int(S,v)命令对符号表达式S中指定的符号变量V计算不定积分。

需要注意的是,表达式R只是S的一个原函数。

Int(S,a,b)命令由findsym(S)命令返回的自变量V,对符号表达式S中的符号变量计算从a到b的定积分。

例7-29用int函数求符号积分。

解:

在命令窗口中输入如下命令,并按Enter键确认。

>>symsxx1alphaut;

>>A=[cos(x*t),sin(x*t);-sin(x*t),cos(x*t)]

A=

[cos(x*t),sin(x*t)]

[-sin(x*t),cos(x*t)]

>>int(1/(1+x^2))

ans=

atan(x)

>>int(sin(alpha*u),alpha)

ans=

-1/u*cos(alpha*u)

>>int(besselj(1,x),x)

ans=

-besselj(0,x)

>>int(x1*log(1+x1),0,1)

ans=

1/4

>>int(4*x*t,x,2,sin(t))

ans=

2*t*(sin(t)^2-4)对F(X)从2到sin(t)进行积分

>>int([exp(t),exp(alpha*t)])

ans=

[exp(t),1/alpha*exp(alpha*t)]

>>int(A,t)

ans=

[1/x*sin(x*t),-cos(x*t)/x]

[cos(x*t)/x,1/x*sin(x*t)]

6.符号积分变换

Fourier变换及其逆变换

Fourie

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

当前位置:首页 > 小学教育 > 语文

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

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