MATLAB程序设计Word文档下载推荐.docx
- 文档编号:21353201
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:74
- 大小:202.14KB
MATLAB程序设计Word文档下载推荐.docx
《MATLAB程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《MATLAB程序设计Word文档下载推荐.docx(74页珍藏版)》请在冰豆网上搜索。
例如:
在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])
[y*z,x*z,x*y]
[0,1,0]
[1,0,1]
symsuv
jacobian(u*exp(v),[u;
v])
[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求解非线性方程组
参考答案:
1>
symsx
f=sin(x)+cos(x)-tan(x)
f=
sin(x)+cos(x)-tan(x)
2>
subs(f,x,0)
1
subs(f,x,1)
-0.1756
subs(f,x,2*pi)
3
f=x^4+2*x^2+1
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
x^4+8*x^2+6+x^3+3*x
f*g
(x^4+2*x^2+1)*(x^3+6*x^2+3*x+5)
horner(f)
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
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)
多媒体教学
5分钟
10分钟
30分钟
25分钟
20分钟
9/26
第二章MATLAB7符号运算
2.1符号变量
2.2符号变量的基本操作
2.3符号表达式
通过对本章的学习,读者应该掌握符号表达式和符号矩阵的操作、符号微积分、符号线性方程和符号微分方程等的运算。
符号表达式和符号矩阵的操作
符号微积分
符号线性方程
符号微分方程
补充
MATLAB提供了功能强大的符号运算功能,他专门提供了符号工具相SymbolimathToolbox,完全可以替代其他符号专用的计算机语言。
2.1符号变量、符号表达式和符号方程的生成
使用sym函数定义符号变量和符号表达式
使用syms函数定义符号变量和符号表达式
符号方程的生成
(1)使用sym函数定义符号变量和符号表达式
sqrt
(2)
1.4142
a=sqrt(sym
(2))
a=
2^(1/2)
sym
(2)/sym(5)
2/5
2/5+1/3
0.7333
(2)使用syms函数定义符号变量和符号表达式
symsabcx
f=sym('
a*x^2+b*x+c'
a*x^2+b*x+c
g=f^2+4*f-2
(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
findsym函数用于寻找符号变量
任意精确度的符号表达式
数值型变量与符号型变量的转换形式
(1)findsym函数用于寻找符号变量
symsaalphabx1y
findsym(alpha+a+b)
a,alpha,b
findsym(cos(alpha)*b*x1+14*y,2)
x1,y
findsym(y*(4+3*i)+6*j)
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'
)%有理数形式
f'
)%浮点数形式
'
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
sin(x)+cos(y)+a+b
fun1*fun2
(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)
(y-1)*x^2+(y-2)*x
f=-1/4*x*exp(-2*x)+3/16*exp(-2*x);
collect(f)
-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
2*x^3+2*x^2-32*x+40
horner(fun1)
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)
-6+(11+(-6+x)*x)*x
(4)符号表达式的简化(simplify)
Simplify(S)命令将符号表达式S中的每一个元素进行化解,但不一定能得到最简表达式。
fun1=(1/x+7/x^2+12/x+8)^(1/3)
(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替换。
f=x^2*y+5*x*sqrt(y)
x^2*y+5*x*y^(1/2)
subs(f,x,3)
9*y+15*y^(1/2)
subs(f,y,3)
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包括不止一个变量时最好使用该指令。
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)
1/(1+sin(y)^2)
compose(f,g,t)
1/(1+sin(t)^2)
10/10
2.4符号矩阵的生成与运算
2.5符号微积分
知道矩阵的生成和符号的微积分
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)
limit((x-2)/(x^2-4),2)
1/4
limit((1+2*t/x)^(3*x),x,inf)
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函数进行符号微分和求导
diff(x^3+3*x^2+4*x+6)
3*x^2+6*x+4
diff(sin(x^3),4)
81*sin(x^3)*x^8-324*cos(x^3)*x^5-180*sin(x^3)*x^2
对多个变量中的某个自变量求导。
diff(x*y+y^2+sin(x)+cos(y),y)
x+2*y-sin(y)
diff(x*y+y^2+sin(x)+cos(y),y,3)(把x看成常数,进行三次对Y求导)
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)]
[cos(x*t),sin(x*t)]
[-sin(x*t),cos(x*t)]
int(1/(1+x^2))
atan(x)
int(sin(alpha*u),alpha)
-1/u*cos(alpha*u)
int(besselj(1,x),x)
-besselj(0,x)
int(x1*log(1+x1),0,1)
1/4
int(4*x*t,x,2,sin(t))
2*t*(sin(t)^2-4)对F(X)从2到sin(t)进行积分
int([exp(t),exp(alpha*t)])
[exp(t),1/alpha*exp(alpha*t)]
int(A,t)
[1/x*sin(x*t),-cos(x*t)/x]
[cos(x*t)/x,1/x*sin(x*t)]
6.符号积分变换
Fourier变换及其逆变换
Fourie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计