实验6答案Matlab数值计算
- 格式:doc
- 大小:140.50 KB
- 文档页数:14
实验6 Matlab数值计算
实验目的:
1、 掌握数据统计与分析的方法;
2、 掌握数据插值和曲线拟合的方法及其应用;
3、 掌握多项式的常用运算。
实验内容:
1. 利用randn函数生成符合正态分布的10×5随机矩阵A,进行如下操作:
(1) 求A的最大元素和最小元素;
(2) 求A的每行元素的和以及全部元素的和;
(3) 分别对A的每列元素按升序、每行元素按降序排列。
a = randn(10,5)+10;
ma = max(max(a))
mi = min(min(a))
s = sum(a,2)
sa = sum(sum(a))
p = sort(a)
p1 = -sort(-a,2)
2. 用3次多项式方法插值计算1-100之间整数的平方根。
N 1 4 9 16 25 36 49 64 81 100
平方根 1 2 3 4 5 6 7 8 9
10
n= (1:10).^2;
f = sqrt(n);
interp1(n,f,(1:100),'cubic')
3. 某气象观测站测得某日6:00-18:00之间每隔2h的室内外温度(°C)如下表所示。
时间 6 8 10 12 14 16 18
室内温度 18.0 20.0 22.0 25.0 30.0 28.0 24.0 室外温度 15.0 19.0 24.0 28.0 34.0 32.0 30.0
使用三次样条插值分别求出该日室内外6:30-17:30之间每隔2h各点的近似温度,并绘制插值后的温度曲线。
n= 6:2:18;
f1 = [18 20 22 25 30 28 24];
f2 = [15 19 24 28 34 32 30];
r = 6.5:2:17.5;
w = interp1(n,f1,r,'spline');
w1 = interp1(n,f2,r,'spline');
subplot(211),plot(r,w)
subplot(212),plot(r,w1)
4. 已知lgx在[1,101]区间10个整数采样点的函数值如下表所示,
x 1 11 21 31 41 51 61 71 81 91 101
lgx 0 1.0414 1.3222 1.4914 1.6128 1.7076 1.7853 1.8513 1.9085 1.9590 2.0043
试求lgx的5次拟合多项式p(x),并绘制lgx和p(x)在[1,101]区间的函数曲线。
x = linspace(1,101,10);
y = log(x) /log(10);
p = polyfit(x,y,5)
y1 = polyval(p,x)
plot(x,y,':o',x,y1,'-*')
legend('sin(x)','fit')
5. 有3个多项式(),(),()PxxxxPxxPxxx4322123245223,试进行下列操作:
(1) 求()()()()PxPxPxPx123。
(2) 求()Px的根。
(3) 当x取矩阵A的每一元素时,求()Px的值。其中:
.....A112140752350525
p1 = [1 2 4 0 5];
p2 = [0 0 0 1 2]; p3 = [0 0 1 2 3];
p = p1 +p2 +p3
r = roots(p)
a = [-1 1.2 -1.4;0.75 2 3.5;0 5 2.5];
s = polyval(p,a)
6. 求函数在指定点的数值导数。
(),,,fxxx21123
f = inline('sqrt(x.^2+1)');
x = 1:3;
dx = diff(f([x,4]))/1
7. 用数值方法求定积分。
(1)cossin()Ittdt22210421的近似值。
(2)ln()xIdxx122011
(1)I = inline('sqrt((cos(t)).^2+4*sin(2*t).^2+1)','t');
quad(I,0,2*pi)
(2)I = inline('log(1+x)./(1+x.^2)','x');
quad(I,0,1)
实验二 Matlab矩阵的初等运算
实验目的:掌握Matlab的运算方法
实验内容:
2.1 在Matlab命令窗口输入:
H1=ones(3,2) H2=zeros(2,3) H3=eye(4)
观察以上各输入结果,并在每式的后面标注其含义。
>> format compact
>> H1=ones(3,2),disp('3行2列的全1矩阵')
H1 =
1 1
1 1
1 1
3行2列的全1矩阵
>> H2=zeros(2,3),disp('2行3列的全零矩阵')
H2 =
0 0 0 0 0 0
2行3列的全零矩阵
>> H3=eye(4),disp('4阶的单位矩阵')
H3 =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
4阶的单位矩阵 2.2 已知123456Q,789P,10R,3S,试把这四个矩阵组合为一个大矩阵,看看有几种组合方式?8
>> format compact
>> Q=[1 2 3;4 5 6];P=[7 8 9];R=[1;0]; S=3;
>> [Q,R;P,S]
ans =
1 2 3 1
4 5 6 0
7 8 9 3
>> [R,Q;P,S]
ans =
1 1 2 3
0 4 5 6
7 8 9 3
>> [Q,R;S,P]
ans =
1 2 3 1
4 5 6 0
3 7 8 9
>> [R,Q;S,P]
ans =
1 1 2 3
0 4 5 6 3 7 8 9
>> [S,P;R,Q]
ans =
3 7 8 9
1 1 2 3
0 4 5 6
>> [S,P;Q,R]
ans =
3 7 8 9
1 2 3 1
4 5 6 0
>> [P,S;R,Q]
ans =
7 8 9 3
1 1 2 3
0 4 5 6
>> [P,S;Q,R]
ans =
7 8 9 3
1 2 3 1
4 5 6 02.4 建立一个字符串向量,删除其中的大写字母。提示:利用find函数和空矩阵。
>> a='ABCDefgijKLMN123'
a =
ABCDefgijKLMN123
>> k=find(a>='A'&a<='Z')
k =
1 2 3 4 10 11 12 13
>> a(k)=[]
a =
efgij123
2.3 在命令窗中分别输入who和whos,观察检查结果是否与2.1-2.4所得结果相符。
>> who
Your variables are: H1 H2 H3 P Q R S a ans k
>> whos
Name Size Bytes Class Attributes
H1 3x2 48 double
H2 2x3 48 double
H3 4x4 128 double
P 1x3 24 double
Q 2x3 48 double
R 2x1 16 double
S 1x1 8 double
a 1x8 16 char
ans 3x4 96 double
k 1x8 64 double
2.5 已知矩阵131254709716282113S,计算以下表达式的结果,体会*,^,sqrtm,expm与.*,.^,sqrt,exp的区别。
(1) r1=S^2, r2=2.^S , r3=S.^2,
(2) u1=sqrtm(S), v1=u1*u1
(3) u2=sqrt (S), v2=u2.*u2
(4) u3=expm(S), v3=logm(u3)
(5) u4=exp(S), v4=log(u4)
>> S=[1 3 12 5;4 7 0 9;7 1 6 2;8 2 11 3]
S =
1 3 12 5
4 7 0 9
7 1 6 2
8 2 11 3
>> r1=S^2
r1 =
137 46 139 71
104 79 147 110
69 38 142 62