MATLAB复习指导Word文档格式.docx
- 文档编号:18475300
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:22
- 大小:60.32KB
MATLAB复习指导Word文档格式.docx
《MATLAB复习指导Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB复习指导Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
0
clear
3次执行的结果不一样。
exist()函数是返回变量搜索顺序的一个函数。
在第一次执行时返回5代表变量pi是由Matlab构建的变量。
在第二次执行时已经通过赋值语句定义了变量pi,返回1代表pi是工作空间变量。
第三次执行前清除了工作空间,此时pi为系统默认常量,和第一次执行时性质一样,所以又返回5。
(2)圆周率pi是系统默认常量,为什么会被改变为0。
pi=0为赋值语句,此时pi不再是系统默认常量,而是定义的变量了。
实验二MATLAB语言基础
1、向量的生成和运算
练习:
使用logspace()创建1~4π的有10个元素的行向量。
A=logspace(0,1.0992,10)
A=
1.00001.32471.75502.32493.07994.08015.40517.16039.485612.5661
2、矩阵的创建、引用和运算
(1)矩阵的创建和引用
创建以下矩阵:
A为3×
4的全1矩阵、B为3×
3的0矩阵、C为3×
3的单位矩阵、D为3×
3的魔方阵、E由C和D纵向拼接而成、F抽取E的2~5行元素生成、G由F经变形为3×
4的矩阵而得、以G为子矩阵用复制函数生成6×
8的大矩阵H。
A=ones(3,4),B=zeros(3,3),C=eye(3,3),D=magic(3)
1111
B=
000
C=
100
010
001
D=
816
357
492
E=[C;
D],F=E(2:
5,:
),G=reshape(F,3,4)
E=
F=
G=
0311
0156
8007
H=repmat(G,2)
H=
03110311
01560156
80078007
2)矩阵运算
1)用矩阵除法求下列方程组的解x=
A=[634;
-257;
8-1-3],B=[3;
-4;
-7]
634
-257
8-1-3
3
-4
-7
x=A\B
x=
1.0200
-14.0000
9.7200
2)求矩阵的秩;
r=rank(A)
r=
3)求矩阵的特征值与特征向量
[X,Lamda]=eig(A)
X=
0.8013-0.1094-0.1606
0.3638-0.65640.8669
0.47490.7464-0.4719
Lamda=
9.732600
0-3.29280
001.5602
4)矩阵的乘幂(平方)与开方
A^2
622933
34126
262234
A1=sqrtm(A)
A1=
2.2447+0.2706i0.6974-0.1400i0.9422-0.3494i
-0.5815+1.6244i2.1005-0.8405i1.7620-2.0970i
1.9719-1.8471i-0.3017+0.9557i0.0236+2.3845i
5)矩阵的指数与对数(以e为底)
Ae=expm(A)
Ae=
1.0e+004*
1.06530.54150.6323
0.48300.24650.2876
0.63160.32060.3745
Ael=logm(A)
Ael=
1.7129+0.4686i0.5305-0.2425i0.5429-0.6049i
1.1938+2.8123i0.3658-1.4552i-0.5514-3.6305i
-0.0748-3.1978i0.7419+1.6546i1.8333+4.1282i
6)矩阵的提取(取右上三角)与翻转(逆时针转90度)
a=triu(A)
a=
057
00-3
a1=rot90(A)
a1=
47-3
35-1
6-28
3、多维数组的创建及运算
创建三维数组A,第一页为
,第二页为
,第三页为
。
然后用reshape函数重排为数组B,B为3行、2列、2页。
a=[13;
42],b=[12;
21],c=[35;
71]
A=cat(3,a,b,c)
A(:
:
1)=
13
42
2)=
12
21
3)=
35
71
B=reshape(A,3,2,2)
B(:
41
32
27
15
31
实验三Matlab数值运算
1、多项式运算
求
的商及余多项式。
p1=conv([101],conv([13],[11]))
p1=
14443
[qr]=deconv(p1,[1021])
q=
14
002-5-1
2、多形式插值和拟合
有一组实验数据如附表1-1所示。
请分别用拟合(二阶至三阶)和插值(线性和三次样条)的方法来估测X=9.5时Y的值
X
1
2
3
4
5
6
7
8
9
10
Y
16
32
70
142
260
436
682
1010
1432
1960
x=1:
10;
y=[163270142260436682101014321960];
p1=polyfit(x,y,1)
204.8000-522.4000
y1=polyval(p1,9.5)
y1=
1.4232e+003
p2=polyfit(x,y,2),y2=polyval(p2,9.5)
p2=
32.0000-147.2000181.6000
y2=
1.6712e+003
p3=polyfit(x,y,3),y3=polyval(p3,9.5)
p3=
2.0000-1.00005.000010.0000
y3=
1.6820e+003
y4=interp1(x,y,9.5)
y4=
1696
y5=spline(x,y,9.5)
y5=
1682
3、习题
(1)用函数roots求方程
的根
roots([1-1-1])
-0.6180
1.6180
(2)
,在n个节点(n不要太大,如取5~11)上用分段线性和三次样条插值方法,计算m个插值点(m可取50~100)的函数值。
通过数值和图形输出,将两种插值结果与精度进行比较。
适当增加n,再作比较。
x=linspace(0,2*pi,8),y=sin(x)
00.89761.79522.69283.59044.48805.38566.2832
y=
00.78180.97490.4339-0.4339-0.9749-0.7818-0.0000
xi=linspace(0,2*pi,100);
y0=sin(xi);
y1=interp1(x,y,xi);
y2=interp1(x,y,xi,'
spline'
);
plot(xi,y0,'
*'
xi,y1,'
-.'
xi,y2)
e1=y1-y0;
e2=y2-y0;
plot(xi,e1)
plot(xi,e2)
(3)大气压强p随高度x变化的理论公式为
,为验证这一公式,测得某地大气压强随高度变化的一组数据如表所示。
试用插值法和拟合法进行计算并绘图,看那种方法较为合理,且总误差最小。
高度/m
300
600
1000
1500
2000
压强/Pa
0.9689
0.9322
0.8969
0.8519
0.7989
0.7491
插值法:
x=[0300600100015002000];
p=[0.96890.93220.89690.85190.79890.7491];
xi=linspace(0,2000);
p0=1.0332*exp(-(xi+500)/7756);
p1=interp1(x,p,xi,'
plot(xi,p0,'
xi,p1)
e1=p1-p0;
e=sum(e1.^2)
e=
1.8652e-005
拟合法:
P=log10(p)
P=
-0.0137-0.0305-0.0473-0.0696-0.0975-0.1255
p1=polyfit(x,P,1)
-0.0001-0.0137
b=p1
(1)/0.4343,a=10.^p1
(2)
b=
-1.2863e-004
0.9689
p2=polyval(p1,xi);
P2=10.^p2;
e2=P2-p0;
e=sum(e2.^2)
1.8116e-005
1、数值微积分
瑞士地图如图所示,为了算出其国土面积,首先对地图作如下测量:
以由西向东方向为X轴,由南到北方向为Y轴,选择方便的原点,并将从最西边界点到最东边界点在X轴上的区间适当划分为若干段,在每个分点的Y方向测出南边界点和北边界点的Y坐标Y1和Y2,根据地图比例尺知道18mm相当于40km,试由测量数据计算瑞士国土近似面积,与其精确值41228km2比较。
10.5
13
17.5
34
40.5
44.5
48
56
61
68.5
76.5
80.5
91
Y1
44
45
47
50
38
30
36
41
46
Y2
59
72
93
100
110
117
118
116
96
101
104
106.5
111.5
123.5
136.5
146
150
157
158
43
37
33
28
65
55
54
52
66
68
121
124
122
83
81
82
86
85
x=[7,10.5,13,17.5,34,40.5,44.5,48,56,61,68.5,76.5,80.5,91,96,101,104,106.5,111.5,118,123.5,136.5,142,146,150,157,158];
y1=[44,45,47,50,50,38,30,30,34,36,34,41,45,46,43,37,33,28,32,65,55,54,52,50,66,66,68];
y2=[44,59,70,72,93,100,110,110,110,117,118,116,118,118,121,124,121,121,121,116,122,83,81,82,86,85,68];
X=x./18*40;
Y1=y1./18*40;
Y2=y2./18*40;
t1=trapz(X,Y1),t2=trapz(X,Y2),t=t2-t1
t1=
3.3819e+004
t2=
7.6328e+004
t=
4.2510e+004
expt=t-41228
expt=
1.2819e+003
2、习题
(4)利用梯形法和辛普森法求定积分的值,并对结果进行比较。
如果积分区间改为-5~5结果有何不同?
梯形积分中改变自变量x的维数,结果有何不同?
x=linspace(-3,3);
y=exp(-x.^2/2);
t=(1/2*pi)*trapz(x,y)
3.9267
q=(1/2*pi)*quad('
exp(-x.^2/2)'
-3,3)
3.9268
x=linspace(-5,5);
3.9374
-5,5)
x=linspace(-3,3,150);
(5)分别用矩形法、梯形法、辛普森法和牛顿-科茨4种方法近似计算定积分
,取n=4,保留4位有效数字。
矩形法:
x=linspace(0,1);
y=x./(x.^2+4);
t=cumsum(y)*1/99;
T=t(100)
T=
0.1126
梯形法:
t=trapz(x,y)
0.1116
辛普森法:
q=quad('
x./(x.^2+4)'
0,1)
牛顿-科茨法:
q=quadl('
实验四Matlab符号运算
1、符号矩阵创建
分别用sym和syms创建符号表达式:
,
f1=sym('
cos(x)+(-(sin(x)^2))^(1/2)'
f1=cos(x)+(-(sin(x)^2))^(1/2)
symsyet
f2=y/exp(-2*t)
f2=y/exp(-2*t)
(2)试创建以下2个矩阵:
6、符号表达式的变量替换
(1)已知
按照自变量x和自变量a,对表达式f分别进行降幂排列。
f=sym('
(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)'
f=(a*x^2+b*x+c-3)^3-a*(c*x^2+4*b*x-1)
f1=collect(f),f2=collect(f,'
a'
f1=
a^3*x^6+3*b*a^2*x^5+((c-3)*a^2+2*b^2*a+a*(2*(c-3)*a+b^2))*x^4+(4*(c-3)*b*a+b*(2*(c-3)*a+b^2))*x^3+((c-3)*(2*(c-3)*a+b^2)+2*b^2*(c-3)+a*(c-3)^2-a*c)*x^2+(3*(c-3)^2*b-4*b*a)*x+(c-3)^3+a
f2=
a^3*x^6+3*(b*x+c-3)*x^4*a^2+(3*(b*x+c-3)^2*x^2-c*x^2-4*b*x+1)*a+(b*x+c-3)^3
8、符号方程的求解
(1)求
(x^2-1)/(x^2-3*x+2)'
limit(f,'
x'
2)
ans=NaN
(2)求函数f(x)=cos2x-sin2x的积分;
求函数
的导数。
cos(2*x)-sin(2*x)'
int(f)
ans=1/2*sin(2*x)+1/2*cos(2*x)
g=sym('
(exp(x)+x*sin(x))^(1/2)'
diff(g)
ans=1/2/(exp(x)+x*sin(x))^(1/2)*(exp(x)+sin(x)+x*cos(x))
(3)计算定积分
sin(x)+2'
int(f,'
0,pi/6)
ans=-1/2*3^(1/2)+1/3*pi+1
(4)求下列线性方程组的解
x+y+z=10'
f2=sym('
3*x+2*y+z=14'
f3=sym('
2*x+3*y-z=1'
g=solve(f1,f2,f3,'
'
y'
z'
g=
x:
[1x1sym]
y:
z:
g.x
ans=1
g.y
ans=2
g.z
ans=7
(5)求解当y(0)=2,z(0)=7时,微分方程组的解
[g_y,g_z]=dsolve('
Dy-z=sin(x)'
Dz+y=1+x'
y(0)=2'
z(0)=7'
g_y=cos(x)+6*sin(x)+1/2*sin(x)*x+1+x
g_z=-3/2*sin(x)+6*cos(x)+1+1/2*cos(x)*x
实验五Matlab程序设计
1、程序流程控制结构
(1)请把exp2.函数文件用while循环改写。
functions=exp3(x)
n=1;
s=0;
whilen<
=x
s=s+n;
n=n+1;
end
s
(2)用
公式求pi的近似值,直到最后一项的绝对值小于10-6为止,试编写其M脚本文件。
k=0;
jspi=1;
i=3;
while(1/i)>
=10e-6
k=k+1;
ifrem(k,2)==0
jspi=jspi+1/i;
else
jspi=jspi-1/i;
end
i=i+2;
p=4*jspi,k
2、子函数和参数传递
编写求矩形面积函数rect,当没有输入参数时,显示提示信息;
当只输入一个参数时,则以该参数作为正方形的边长计算其面积;
当有两个参数时,则以这两个参数为长和宽计算其面积。
functions=mianji(a,b)
switchnargin
case0
error('
没有输入参数'
case1
s=a*a;
case2
s=a*b;
(3)编写一个函数project1.m,其功能是判断某一年是否为闰年。
functionryear(year)
ifrem(year,4)==0
s=s+1;
ifrem(year,100)==0
s=s-1;
ifrem(year,400)==0
ifs==1
fprintf('
%4d是闰年.\n'
year)
else
%4d不是闰年.\n'
(4)编制一个函数,使得该函数能对输入的两个数值进行比较并返回其中的最小值。
functionc=bijiao(a,b)
ifnargin==2
ifa<
b
c=a;
else
c=b;
end
输入参数不正确'
(6)观察以下循环语句,计算每个循环的循环次数和循环结束之后var的值。
var=1;
whilemod(var,10)~=0
var=var+1
循环次数10,var=10。
var=2;
w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 复习 指导