数学实验作业汇总

余年寄山水
973次浏览
2021年01月30日 00:36
最佳经验
本文由作者推荐

党员申请书-鼓励自己的话

2021年1月30日发(作者:网站制作系统)

1
)产生一个
5
阶魔方矩阵
M

M=m agic(5)


2
)将矩阵
M
的第
3

4
列元素赋值给变量
t

t=M(3,4)


3
)将由矩阵
M

2

3

4< br>行第
2,5
列构成的子矩阵赋给变
N

N=M(2:4,2: 3:5)

4
)将由矩阵
M
的前
3
行赋给变量< br>N


N=M(1:3,:)

5
)将由矩阵M
的后
3
列赋给变量
N


N=M(:,end:-1:end-2)


6

提取< br>M
的主对角线元素,
并以这些对角线元素构成对角矩阵
N


N=diag(diag(M))

N=tril(triu(M))
(7 )
随机产生
1000

100
以内的整数赋值给变量
t

t=round(rand(1,1000)*100)

8)随机产生
100*5

100
以内的实数赋值给变量
M

M=rand(100,5)*100

1
)删除矩阵
M
的第
7
个元素


M(7)=[]


2
)将含有
12
个 元素的向量
t
转换成
3*4
的矩阵:
reshape(t,3,4)


3
)产生和
M
同样大小的单位矩阵:

eye(size(M))


4
)寻找向量
t
中 非零元素的下标:
find(t)


5
)逆序显示向量
t
中的元素:
t(end:-1:1)


6
)显示向量
t
偶数位置上的元素:

t(2:2:end)

7
)利用
find
函数,将向量
t
中小于
10
的整数置为
0

t(find(t< 10&rem(t,1)==0))=0

8
)不用
find
函数 ,将向量
t
中小于
10
的整数置为
0


t(t<10&rem(t,1)==0)=0

9
)将向量
t< br>中的
0
元素用机器
0

realmin
)来代替:< br>
t(find(t=0))=realmin

10
)将矩阵M
中小于
10
的整数置为
0


M(find(M<10)&rem(M,1)==0)=0
2
、写出完成下列操作的命令及结果。


1
)将
1~50

50
个整数按行优先存放到
5*10
的矩阵中,求该矩阵 四周元素的和;

>> t=[1:10];

>>

M=[t;t+10;t+20;t+30;t+40]
M =
1



2


3


4



5


6



7



8


9


11


12


13


14


15


16


17


18


19


21


22


23


24


25


26


27


28


29


31


32


33


34


35


36


37


38


39


41


42


43


44


45


46


47


48


49
>>

N=M(2:4,2:9)
N
=
12


13


14


15


16


17


18


19

22


23


24


25


26


27


28


29


32


33


34


35


36


37


38


39


>> sum(sum(M))-sum(sum(n))
ans =


663

2

n

100

1000< br>、
10000
,求序列
1

1/2

1/3
……
1/n
的和。

20
30
40
50
10








>> n=100;
>> t=[1:n];
>> format rat
>> M=t.^-1;
>> S=sum(M)
S =
2630/507
>>
n=1000;
>> t=[1:n];
>> format rat
>> M=t.^-1;
>> S=sum(M)
S =
1804/241
>>
n=10000;
>> t=[1:n];
>> format rat
>> M=t.^-1;
>> S=sum(M)
S =
1106/113
1.

在同一坐标 系下绘制
y1=sin(t),y2=sin(2t),y3=sin(3t),
其中
y1
的数据点用星号,线形为黑色虚线,
y2
的数据点用方块,线形为红色实线,y3
的数据点用小圆圈,线形为蓝色点线。
(要求采用一次绘出
和逐次填加两种方 式完成绘图)

>> t=linspace(0,2*pi,100);
>> y1=sin(t);
>> y2=sin(2*t);
>> y3=sin(3*t);
>> plot
(t,y1,’*k:’,t,y2,’sr< br>-
’,t,y3,’ob
-
.’)

>> t=linspace(0,2*pi,100);
>> y1=sin(t);
>>
plot(t,y1,’*k:’)

>> hold on
>> y2=sin(2*t);
>> plot(t,y2,’sr
-
’)

>> hold on
>> y3=sin(3*t);
>> plot(t,y3,’ob
-
.’)

>> hold off
2.

分别用
plot

fplot
函数绘制y=sin

1/x
)的曲线,分析两曲线的差别

>> x=linspace(0,1/(2*pi),100);
>>
y=sin(x.^-1);
>>
plot(x,y,’*
-
’)


>> fplot(’ sin(x.^
-
1)’,[0,1/(2*pi)],’o
-
’)

两曲线的差别
:plot
曲线在确定自变量
x
的取值间隔时采用平均 间隔,图像不是十分准确;
fplot
曲线自动取
值,在函数值变化平稳时,它的数值 点会自动相对稀疏一点,在函数值变化剧烈处,所取点会自动密集一
点,所以曲线更加光滑准确。

6.
已知曲面方程
f

x,y

=
sin(
x
2

y
2
)
1

x< br>
y
2
2
,x


[-1.5
< br>,
1.5

]

y


[-2.5


2.5

]
,用建立子窗
口的方法在同一图形 窗口绘制出三维线图,网线图,曲面图。

>>
x=-1.5*pi:pi/50:1.5*pi;
>> y=-2.5*pi:pi/50:2.5*pi;
>> [X,Y]=meshgrid(x,y);
>> Z=sin(sqrt(X.^2+Y.^2))./sqrt(1+X.^2+Y.^2);
>> subplot(1,3,1);plot3(X,Y,Z);
>> subplot(1,3,2);mesh(X,Y,Z);
>> subplot(1,3,3);surf(X,Y,Z);
8.

peaks函数生成的最高峰削去,并用色图矩阵“
cool
”修饰。

>> [x,y,z]=peaks(30);
>> x1=x(1,:);y1=y(:,1);
>> i=find(y1>1&y1<3);
>> j=find(x1>-1&x1<1);
>> z(i,j)=NaN*z(i,j);
>> surf(x,y,z)
>> colormap(cool)
3. 定义一个函数,函数的自变量为整数
n
,函数的功能是:随机产生
n
个三 位整数,将其中小于平均值
的数用
0
代替。

function [mean,x]=ff (n)

x=floor (100+899*rand (1,n));

m=length (x);

mean=sum (x)/m;

x (x4.
编写函数,用来求 下列函数的和,并给出
n
分别为
100,1000,10000
时,下列各式 的值。


2

2

4

4< br>
6

6



2n



2n







=








…< br>


1

3
3

5
5< br>
7
2n-1

2n-1





2







function y=s(n)
y=1;
for i=1:1:n




x=4*i^2/(4*i^2-1);




y=y*x;
end
disp(y)
s(100)=1.5669
s(1000)=1.5704
s(10000)=1.5708

5.
通过命令文件实现:随机产生20
个数,输出其中的最大数和最小数。通过函数文件实现:随机产生
n
个数,输 出其中的最大最小数。

命令文件

>> t=rand(1,20);
>> disp('max=');disp(max(t))
max=




0.7942

>> disp('min=');disp(min(t))
min=
0.0503
函数文件

function f3(n)
t=rand(1,n); < br>disp('max=');disp(max(t));disp('min=');disp(min (t));
end
3.
求下列函数的一阶和二阶导数

cos

x

2


y=

tan

x

3
>> syms x
>> diff(2/tan(x)+cos(x)/3,’x’,1)

ans =
- sin(x)/3 - (2*(tan(x)^2 + 1))/tan(x)^2
>> syms x
diff(2/tan(x)+cos(x)/3,’x’,2)

4.
求积分


e
x
+1
dx


>> syms x
int(sqrt(exp(x)+1),x)
ans =
2*(exp(x) + 1)^(1/2) + 2*atan((exp(x) + 1)^(1/2)*i)*i
5.
求下列级数的和

>> syms n
>> s=symsum((-1)^(n+1)*1/n,1,inf)
s =
log(2)
6.
求函数在
x=0
处的泰勒展开式

>> syms x
>> taylor((exp(x)+exp(-x))/2,x,5,0)
ans =
x^4/24 + x^2/2 + 1
1.
利用
randn
函数声称符合正态分布的
10*5
随机矩阵
A
,进行以下操作:

(1).A
的各列元素的均值和标准方差

(2).A
的最大元素及其所在位置

(3).A
的每行元素的和以及全部元素之和

(4).
分别对
A
的每行元素按升序排序

(5).

A
中的每行元素的总和按从大到小的顺序存入
line_sum
中,相应 的行号存入
line_num


>> A=randn(10,5);
>> a1=mean(A)
>> a2=std(A)
>> AA=max(max(A))
>> [i j]=find(A==AA)
>> a3=sum(A,2)
>> a4=sum(sum(A))
>> a5=sort(A,2)
>> [line_sum,line_num]=sort(sum(A,2),'descend')
2
、补充题:

利用导入向导(或借助函数
imread
) 导入一幅单色图片存入变量
ima_data
中,然后依次完成下列操
作:(
1
)用
imshow
函数显示图片;(
2
)删除图片前若干行(例如 前
100
行)再次显示该图片。


3
)将图片上、下翻转再次显示图片。

先找到一个
.b mp
的文件,把它放入工作目录下,并修改名称为
‘’,
执行下列操作。

i
ma_data=imread(’’);

(1)imshow(ima_data);
(2)a=ima_data(101:end,:);imshow(a);
(3)imshow(flipud(ima_data));
3.
下表所示是
0~90
度内某些数的正弦近似值

x


Sinx
0
0
15
0.2588
30
0.5
45
0.7071
60
0.866
75
0.9659
90
1
利用线性、 样条差值求
x=20

40

80
度时正弦值,这两种方法 哪个好?为什么

实验步骤:利用
inerp1
函数先分别求出线性插值和三 次样条插值所得到的
y11

y12
,再利用
sin
x

函数得到准确的
y1
,比较
y11

y1

y12

y12
,不难得出结论。

所用语句

clear;clc;
x=[0 15 30 45 60 75 90]./180.*pi;
y=sin(x);
x1=[20 40 80]./180.*pi;
y11=interp1(x,y,x1,’linear’);

y12=interp1(x,y,x1,’spline’);

y1=sin(x1);
主要结果

y11= 0.3392
0.6381
0.9773;
y12=0.3420
0.6428
0.9849;
y1=0.3420
0.6428
0.9848;
4.
已知某次实验测得数据如下:

x
y
x
y
1
0.87
5.4
1.4
0.52
5.8
1.8
5.21
6.2
2.2
3.51
6.6
2.6
14.29
7
3
19.43
7.4
3.4
14.13
7.8
3.8
41.53
8.2
4.2
13.91
8.6
4.6
58.56
9
5
14.99
9.4
130.47
44.82
21.25
43.15
281.25
200.09
177.93
344.53
509.84
531.07
260.49

1
)请用
3
次多项式进行拟合,并给出拟合函数在
0

0.5
1

1.5^9

9.5
处的值


2
)估计用几阶多项式拟合的效果较好,并说明理由。

4.(1)clear;clc;
x=1:0.4:9.4;
y=[0.87 0.52 5.21 3.51 14.29 19.43 14.13 41.53 13.91 58.56 14.99 130.47 44.82 21.25 43.15 281.25
200.09 177.93 344.53 509.84 531.07 260.49];
x1=0:0.5:9.5;
p=polyfit(x,y,3);
y1=polyval(p,x1);
主要结果
:y1=[50.55 33.03 18.91 8.38 1.61 -1.23 0.05 5.62 15.65 30.32 49.80 74.28 103.92
138.91 179.41 225.61 277.67 335.79 400.12 470.85]
(2) 19
阶拟合效果最好。理由通过编写 差方和函数
(
基于最小二乘原理)
f(n)
f(n)
函数如下:

function tz=f(n)
t=[];
x=1:0.4:9.4;
y=[0.87 0.52 5.21 3.51 14.29 19.43 14.13 41.53 13.91 58.56 14.99 130.47 44.82 21.25 43.15 281.25
200.09 177.93 344.53 509.84 531.07 260.49];
for i=1:n

p=polyfit(x,y,i);

y1=polyval(p,x);

c=sum((y-y1).^2,2);

t=[t c];
end
tz=find(t==min(t));

n=22< br>(一共
22
组数据)
f
函数值最小时是
19
阶时
所以得出结论
19
阶多项式拟合效果最好。

再用拟合图像(
p=polyfit(x,y,19)

plot(x,y,’:o’,x,poly val(p,x),’
-
*’)
)也可以看出
19
阶多项式拟合效果 最
好。

2
、自行练习题。下列填空题是期中考试出错比较多的题目,请认真考虑并上机调试。


6
)逆序显示向量
t
中的元素:


7
)显示向量
t
偶数位置上的元素




9
)删除向量
t
中最小的
5
个数:
< br>(
17
)将
1~50
按列优先存放到
5*10
的矩阵
M
中:


18
)求矩阵
M
最大值所在的位置:


19
)统计字符串
S
中小写字母的个数:

(< br>20
)设
A

n

0

1
方阵,
A
边界上
1
的个数:

(6).t(end:-1:1)
(7).t(2:2:end)
(9).M=sort(t)

a=find(t
t(a)=[]
(17).t=[1:5:46]
M=[t;t+1;t+2;t+3;t+4]
(18).[i,j]=find(M==max(max(M)))
(19).a=find(s>=’a’&s<=’z’)




num=length(a)
(20).B=A(2:end-1,2:end-1)


num=sum(sum(A))-sum(sum(B))
1.
分别用矩阵求逆、矩阵除法以及矩阵分解求线性方程组的解


2
x
1

2
x
2

x
3

x
4

4

4
x

3
x

x

2
x

6

1
2
3
4




8
x
1

3
x
2

3
x
3

4
x
4

12


3
x
1

3
x
2

2
x
3

2
x
4

6
矩阵求逆

>> A=[2,2,-1,1;4,3,-1,2;8,3,-3,4;3,3,-2,-2];
>> b=[4,6,12,6]’;

>> inv(A)*b
运用左除运算符

>> A=[2,2,-1,1;4,3,-1,2;8,3,-3,4;3,3,-2,-2];
>> b=[4,6,12,6]’;

>> x=Ab
运用矩阵分解

>> A=[2,2,-1,1;4,3,-1,2;8,3,-3,4;3,3,-2,-2];
>> b=[4,6,12,6]’;

>> [Q,R]=qr(A);
>> x=R(Qb)
4.
在区间
[30,50]
内,求
f
(< br>x
)

5sin(
x
)

2log
3
x

1.8

的零点


>> f=’5*sin(x)
-
2*(log(x)/log(3))+1.8’;

>> ezplot(f,30,50)
>> fzero(f,33)
ans =

32.5547
>> fzero(f,34)
ans =

33.3960
>> fzero(f,38)
ans =

39.0426
>> fzero(f,[39.4

39.5])
ans =

39.4785
则方程有四个零点

6.

给出实验数据如下:

党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话


党员申请书-鼓励自己的话