重庆大学数学实验 温罗生.docx
《重庆大学数学实验 温罗生.docx》由会员分享,可在线阅读,更多相关《重庆大学数学实验 温罗生.docx(10页珍藏版)》请在冰豆网上搜索。
重庆大学数学实验温罗生
重庆大学
学生实验报告
实验课程名称数学实验
开课实验室DS1404
学院2014年级电子科学与技术专业班01
学生姓名学号
开课时间2016学年第2学期
总成绩
教师签名
数学与统计学院制
开课学院、实验室:
DS1404实验时间:
2016年3月10日
课程
名称
数学实验
实验项目
名称
实验项目类型
验证
演示
综合
设计
其他
指导
教师
温老师
成绩
1.代码
x=3.14;
y1=sign(x);
y2=x^3;
y3=sin(x);
y4=cos(x);
y5=tan(x^2);
y6=2*tan(x);
y7=3^x;
y8=log(abs(x-x^x));
y9=log2(x)/log2(3);
y10=fix(x);
y11=asin(x^2-3*pi);
y12=x^(1/6);
y13=sqrt(2*x^2+(4*x/(log(x+exp(x)*sin(x))/2*x^2)));
y=[y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13];
y
结果
y=
1.000030.95910.0016-1.00000.4645-0.003231.48913.50251.04153.00000.44981.21014.6822
2.代码
y=rand(5,10)
max(y),max(y,[],2)
min(y),max(y,[],2)
sum(y)
sort(y)
length(y)
size(y)
说明:
rand(x)随机产生矩阵,max(y)求取矩阵y每一行最大值,max(y,[],2)求取矩阵y每一列最大值;其中min(y)类似。
sum(y)相应的与max(y)相似的用法,表示求矩阵每一行或每一列的和;这几个函数在用法上大体一致,只是实现的功能有所不同而已。
结果
y=
0.42290.69990.53090.96860.77880.28100.51810.67610.25480.78050.09420.63850.65440.53130.42350.44010.94360.28910.22400.67530.59850.03360.40760.32510.09080.52710.63770.67180.66780.00670.47090.06880.82000.10560.26650.45740.95770.69510.84440.60220.69590.31960.71840.61100.15370.87540.24070.06800.34450.3868
ans=
0.69590.69990.82000.96860.77880.87540.95770.69510.84440.7805
ans=
0.9686
0.9436
0.6718
0.9577
0.8754
ans=
0.09420.03360.40760.10560.09080.28100.24070.06800.22400.0067
ans=
0.9686
0.9436
0.6718
0.9577
0.8754
ans=
2.28251.76043.13132.54171.71322.58103.29782.40012.33552.4515
ans=
0.09420.03360.40760.10560.09080.28100.24070.06800.22400.00670.42290.06880.53090.32510.15370.44010.51810.28910.25480.38680.47090.31960.65440.53130.26650.45740.63770.67180.34450.60220.59850.63850.71840.61100.42350.52710.94360.67610.66780.67530.69590.69990.82000.96860.77880.87540.95770.69510.84440.7805
ans=
10
3.代码(n阶行列式)
function[u,v]=DET(x,y)
A=rand(x);
u=det(A);
v=0;
fori=1:
x
a=A;
a(y,:
)=[];
a(:
i)=[];
v=A(y,i)*det(a)*(-1)^(y+i)+v;
end
end
(下面任意选取n阶行列式进行验证,例如四阶行列式)
结果:
[u,v]=DET(4,2)
u=-0.0261
v=-0.0261
4.代码
x=-10:
0.1:
10;
y=exp(-((x-2).^2)/4);
subplot(2,2,1);
plot(x,y);
theta=-pi:
0.1:
pi;
rou=sin(3.*theta);
subplot(2,2,2);
plot(theta,rou);
t=-10:
0.1:
10;
y1=(3*t)./(1+t.^3);
y2=(3*t.^2)./(1+t.^3);
subplot(2,2,3);
plot(y1,y2);
subplot(2,2,4);
ezplot('9*(x+2)^2+4*(y-6)^2-36',[-6,2,-4,10])
图形
5.代码
[x,y]=meshgrid(-5:
0.1:
5);
z=sin(pi*sqrt(x.^2+4*y.^2));
mesh(x,y,z)
图形
6.代码
H=[];
n=1;
fora=1:
9
forb=0:
9
forc=0:
9
h=100*a+10*b+c;
j=a^3+b^3+c^3;
ifh==j
H(n)=j;
n=n+1;
end
end
end
end
H
结果:
H=
153370371407
7.代码:
(1)
functionf=judge(x)
f=1;
ifx<4
elsefori=2:
x-1
k=mod(x,i);
ifk==0
f=0;
end
end
end
end
(2)
n=0;
H=[];
fori=2:
20000
f=judge(i);
iff==1
n=n+1;
H(n)=i;
end
end
H
L=size(H)
hist(H,10)
等距区间内质数的个数的直方图(以1000为间距)
8.代码:
function[f1,f2,f3]=PI(x)
h=[];
H=[3,1,3];
fori=10^(x-1):
10^x-1
j=fix(i/3);
k=fix(i/3.3);
forl=k:
j
h=[i,l,i/l];
ifabs(h(3)-pi)H=h;
end
end
end
f1=H
(1);
f2=H
(2);
f3=H(3);
end
结果:
[a,b,x]=PI
(2)
a=22b=7x=3.1429
[a,b,x]=PI(3)
a=355b=113x=3.1416
[a,b,x]=PI(4)
a=1065b=339x=3.1416
说明:
[a,b,x]=PI(y),其中a代表分子,b代表分母,y为位数
附加:
验证克莱姆法则(n阶)
程序:
functionX=cramer(a,b)
A=det(a);
k=size(a);
ifA==0
disp('输入有错,解不唯一。
');
elsefori=1:
k
(1)
D=a;
D(:
i)=b;
Di=det(D);
X(i)=Di/A;
end
end
X=X';
End
结果验证(如验证4阶)
a=rand(4);
b=[1;2;3;4];
X=cramer(a,b)
c=a*X
Ycramer
X=73.6009
6.6966
-69.4126
3.4100
c=
1.0000
2.0000
3.0000
4.0000
总结与体会
第一次写实验报告是初次将学到的东西进行运用,也将平时老师讲的一些知识点进行连接,实验有助于巩固自己学到的知识。
一二题是老师上课讲的一些比较基础的知识;三题需要用到矩阵的知识;四五题则是相应的作图知识,尤其是在四小问中的作图不同于老师上课讲的一些基本的方式,而用了ezplot做出了图形;后面三道题就是M-文件的练习求解,包括如何建立函数式M-文件等等;在做题中我了解了程序设计中的一些基本思想,代码的优化;但是感觉在第一次做起来还是比较吃力,但是我认为将老师上课讲的一些东西,知识点必须要吃透,其次最重要的是一步一步多加练习,总结代码编写的一些经验。