数学软件与数学实验报告册.docx
《数学软件与数学实验报告册.docx》由会员分享,可在线阅读,更多相关《数学软件与数学实验报告册.docx(21页珍藏版)》请在冰豆网上搜索。
![数学软件与数学实验报告册.docx](https://file1.bdocx.com/fileroot1/2022-11/21/2e9ab964-3ad6-4c2f-8f94-bd62f8cd2fc6/2e9ab964-3ad6-4c2f-8f94-bd62f8cd2fc61.gif)
数学软件与数学实验报告册
实
验
报
告
册
信计
姓名:
学号:
钟培华编
2013年3月
实验一数学软件MATLAB基础知识
一.实验目的
1.熟悉MATLAB向量的生成及其运算;
2.熟悉MATLAB矩阵的生成及其运算;
3.熟悉MATLAB数组的生成及其运算;
4.熟悉稀疏矩阵的生成与操作.
5.熟悉MATLAB向量的生成及其运算;
6.熟悉MATLAB矩阵的生成及其运算;
7.熟悉MATLAB数组的生成及其运算;
8.熟悉稀疏矩阵的生成与操作;
9.熟悉常用快捷键和命令.
二.实验准备
阅读课本MTLAB7.0简介、MATLAB7.0的安装和用户界面、基本使用方法等相关内容.阅读课本的第四数值计算功能、五章单元数组等相关内容.
三.实验内容
1.MATLAB的启动:
双击matlab图标.
2.熟悉界面四个窗口:
命令窗口、命令历史窗口、当前目录窗口、工作间管理窗口、发行说明书窗口.
3.在命令窗口中输入下列命令,观察运行结果,然后填空.
>>dir%功能是:
显示当前目录下的文件;
>>clc%功能是:
清除命令窗口;
>>helpsin%观返回的结果是.
>>lookforsin%观返回的结果是.
“help”的功能是:
显示函数并解释函数的用法
“lookfor+函数”的功能是:
给出与此相关的函数用法
4.写出下列标点符号的功能:
标点符号
功能
标点符号
功能
;
区分行,不显示结果,
.
小数点
域访问等
,
区分列,参数分隔
…
续行符
:
数组中运用较多
‘
字符串标示符号
()
指定运算优先级
=
赋值符合
[]
矩阵定义符号
!
调用操作系统运算
{}
构成单元数组
%
注释语句标识
5.熟悉下列常用快捷键:
6.MATLAB对所使用的变量有哪些规定?
不要对使用的变量进行声明,不用指定类型,直接赋值即可;
变量不超过31个字符;
变量区分大小写;
以字母开头,可含字母、下划线、数字,不能有标点符号。
工作间的同名变量被覆盖。
7.打开记事本,在上面输入“peaks”五个字母,将记事本另存为”test01.m”(选‘所有文件’),并保存在电脑D盘根目录的“newfile”文件夹中,请问如何设置路径并调用”test01.m”,并借助帮助系统写出“peaks”调用格式与的功能.
将matlab保存路径设置为D:
/newfile
在命令窗口输入savetest01;loadtest01
Load加载指定文件的变量
10.在命令窗口中输入:
>>a=[1,2;3,4];b=[10;02];a1=a(1,:
);a2=a(:
2);a3=a*b;a4=a.*b;a5=a^2;
>>a6=~b;a7=b>a;a8=2*a;a9=2+a;a10=a.^2;a11=2.^a;a12=2^a;
>>a13=a/b;a14=a\b;
则在workspace中可见a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、a12各为何值?
a1=[12],a2=[2;4],a3=[14;38],a4=[10;08],a5=[710;1522],a6=[0,1;1,0],
a7=[0,0;0,0],a8=[2,4;6,8],a9=[3,4;5,6],a10=[1,4;9,16],a11=[2,4;8,16].
a12=[10.4827,14.1519;21.2278,31.7106](a13=[1,1;3,2],a14=[-2.0000,2.0000;1.5000,-1.0000])
11.在命令窗口中输入语句:
>>a=[1428;9142;3690;4851];b=[7478;9646;3790;4857];
c=[103.3406.6];a1=find(a>0.5);a2=find(a
>>a3=find(c-floor(c)>0);a4=a&b;a5=a|b;a6=~c;a7=a==b;
则在workspace中可见a1、a2、a3、a4、a5、a6、a7各为何值?
a1=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;16],a2=[1;6;7;9;14;16],a3=[3,6],a4=[1,1,1,1;1,1,1,1;1,1,1,0;1,1,1,1],a5=[1,1,1,1;1,1,1,1;1,1,1,0;1,1,1,1],
a6=[0,1,0,0,1,0],a7=[0,1,0,1;1,0,1,0;1,0,1,1;1,1,1,0]
12.在命令窗口中输入语句:
>>x=[0:
0.2*pi:
pi];y=sin(x)+1;x1=linspace(0,1,51);x2=[x(1:
2:
5)101];
>>x3=zeros(size(x));x4=exp(x.^2);x5=x./y;x6=x.^3-2*x.^2+x-6.3;
>>x(:
2)=[];x(:
[14])=[];
能写出x1,x2,…,x6的值么?
x1=[00.02000.04000.06000.08000.10000.12000.14000.16000.18000.20000.22000.24000.26000.28000.30000.32000.34000.36000.38000.40000.42000.44000.46000.48000.50000.52000.54000.56000.58000.60000.62000.64000.66000.68000.70000.72000.74000.76000.78000.80000.82000.84000.86000.88000.90000.92000.94000.96000.98001.0000],x2=[01.25662.51331.000001.0000],x3=[0,0,0,0,0,0],x4=1.0e+004*
[0.00010.00010.00050.00350.05541.9334]
X5=[00.39570.64410.96611.58293.1416],x6=[-6.3000-6.2132-6.2172-4.8238-0.54468.1087]
1.在命令窗口中输入语句:
>>a=4*[1428;9142;3690;4851]-2;b=a
(2);c=a(2:
6);d=a([13975])
写出a,b,c,d的值.
a[2,14,6,30;34,2,14,6;10,22,34,-2;14,30,18,2],b=34,c=[34,10,14,14,2],d=[2,10,6,22,14]
13.在命令窗口中输入语句:
>>a=[1010;1300;0301];b=[1234;0120;0001];ab=a&b
>>ahb=a|b;fa=~a;c=a.^b;d=a.^3;e=3.^a写出a,b,ab,ahb,e,d,fa的值.
a=[1010;1300;0301],b=[1234;0120;0001],ab=[1,0,1,0;0,1,0,0;0,0,0,1]
ahb=[1,1,1,1;1,1,1,0;0,1,0,1],e=[3,1,3,1;3,27,1,1;1,27,1,3],d=[1,0,1,0;1,27,0,0;0,27,0,1],fa=[0,1,0,1;0,0,1,1;1,0,1,0]
14..通过帮助文件了解函数“eig”的功能及其调用格式,运行命令“>>a=[123;406;078];>>x=eig(a);[y,z]=eig(a);”并指出a的特征值和特征向量.
x=[-3.7530;0.4775;12.2755],y=[0.0385,0.7427,0.3044;-0.8585,0.4902,0.4965;0.5113,-0.4561,0.8129],z=[-3.7530,0,0;0,0.4775,0;0,0,12.2755]
15.通过帮助文件了解函数“null”的功能及其调用格式,并求方程
的基础解系,其中
.A=[1,0,0,0;1,1,0,0;0,0,1,0;2,1,0,],y=null(A)
实验二MATLAB单元数组、结构变量和字符串生成与操作、文件操作
一.实验目的
1.熟悉MATLAB单元数组和结构变量的生成及其操作;
2.熟悉MATLAB字符串的生成及其操作.
3.文件操作
二.实验准备
阅读课本的单元数组和字符串.文件操作等相关内容.
三.实验内容:
1.>>a={[12;34],’love’;100+i,[123;234;345]};x=a{1}(3);y=a{4}(4);
>>student.name=’lihua’;student.test=[60708090];student
(2).name=’liping’;student
(2).test=[50408070];z=sum(student
(2).test)/length(student
(2).test);
t=student
(2).test(3);写出x,y,t,z的值.
x=2,y=2,t=80,z=60
2.写出在命令窗口中分别用单元数组和结构变量保存你的入校年月、所在院系、姓名、和学号的命令.
student={2012,’xinji’;’caodan’,20123209}
3.在命令窗口中输入语句:
>>s1='Thisisastring!
Itcanbeusedeasily!
'
>>s2='Thisagirle!
'
>>s3=s1(6);s4=s1(10:
16);s5=s1(16:
-1:
10);s6=strcmp(s1,s2);
>>s7=strcmp(s1,s1);s8=strncmp(s1,s2,5);s9=strncmp(s1,s2,5);
>>s10=strncmp(s1,s2,5);s11=strncmp(s1,s2,6);s12=findstr(s1,'a');>>a13=findstr(s2,'girl')
利用帮助文件弄清楚上面所有语句的功能;能写出s1,s2,…,s12的值么?
S1=Thisisastring!
Itcanbeusedeasily!
S2=Thisagirle!
S3=I,s4=string,s5=gnirts,s6=0,s7=1,s8=1,s9=1,s10=1,s11=0,s12=[9,22,34],
4.举例说明如何添加和删除成员变量和调用成员变量.
>>student.test=[9998979695];>>student.name=‘huangling’;
>>Student.weight=50;>>student.tel=‘3813574’;
写出在结构变量中加成员变量‘age’和‘height’的命令
>>student.age=20,student.height=180
写出在结构变量中删除成员变量‘student.tel’命令:
>>student=rmfield(student,’tel’)
5.在命令窗口中输入下列命令:
>>a='Thisisanexample.’;ascii_a=double(a)
>>a14=a(1:
4);ra=a(end:
-1:
1);char(ascii_a)
>>w=find(a>=‘a’&a<=‘z’);ascii_a(w)=ascii_a(w)-32
>>tt=char(ascii_a)
则a14,ra,w,tt的值是什么?
a14=This,ra=.elpmaxenasisihTw=[2346791012131415161718],tt=THISISANEXAMPLE.
6.通过帮助查询下列函数的功能,说明函数“strcmp”的用法并举例.
>>word1='situate',word2='situp';n=strcmp(word1,word2);
>>y1=strncmp(word1,word2,3);y2=strncmp(word1,word2,4);
>>y3=strncmp(word1,word2,5);写出y1,y2,y3的值.
y1=1,y2=1,y3=0
7.写出下列语句的运行结果.
>>forn=3:
5
>>eval([‘M’,num2str(n),‘=magic(n)’])
>>end
M3=[8,1,6;3,5,7;4,9,2],M4=[16,2,3,13;5,11,10,8;9,7,6,12;4.14,15,1],M5=[17,24,1,8,15;23,5,7,14,16;4,6,13,20,22;10,12,19,21,3;11,18,25,2,9]
8.如果要将工作间的变量a=1;b=2;c=3;d=[1,2;3,4];保存存到‘work’目录下的‘file.mat’文件中,然后用‘clear’命令清除工作间,再用‘load’命令加载上述变量.请写出完成上述操作的命令.
savefile
loadfile
9.如果要先建立文件data.txt写入矩阵a(a=magic(5)),关闭文件后重新打开文件data.txt将b(b=rand(5))写入文件末尾关闭文件后,将a,b调入工作空间,并把a赋值给c,b赋值给d.请写出完成上述操作的m文件.
a=b=c=a,d=b
实验三MATLAB的程序设计
一.实验目的
1.熟悉脚本文件和函数文件的特点与区别;
2.掌握MATLAB函数的种类和编写方法;
3.掌握变量的种类和作用域;
4.掌握函数文件的编写方法,会编写简单的程序.
二.实验准备
阅读课本的第十章MATLAB7.0程序设计等相关内容.
三.实验内容:
1.请问脚本文件和函数文件的区别是什么?
函数文件相对于脚本文件而言,函数文件是较为复杂的,函数文件需要给定输入参数,并能够对输入参数进行若干操作,实现特定的功能,最后给出结果或图形等,其操作对象为函数的输入变量和函数内的变量等。
脚本文件不需要输入参数,不需要给出输出变量来接受处理结果,,脚本文件对变量的一切操作均会被保留在哦内存中。
2.函数文件有几种类型?
一个函数文件又包含几个部分?
试举例说明.
(1)函数声明
(2)h1行(3)帮助信息(4)函数体(5)注释部分
3.编程函数文件‘sushu.m’,使得在命令窗口调用‘y=sushu(n)’求小于n的所有素数,即函数返回值y是一个矩阵,它的每个元素都是小于n的素数.
functiony=sushu(n)
y=2;
fori=3:
2:
n
flag=1;
forj=2:
sqrt(i)
ifrem(i,j)==0
flag=0;
end
end
ifflag==1;
y=[y,i]
end
end
4.编函数文件‘myfun1.m’调用格式为‘[x,y]=myfun1(m,n)’,用于求m和n的最大公约数x最小公倍数y.
[x,y]=myfunction(m,n)
x=gcd(m,n);
y=lcm(m,n);
5.编写函数文件计算
.
s=0;t=1;
fork=1:
10
t=t*k;s=s+t;
end
s
6.编求任意n阶可逆方阵A的逆矩阵的函数y=ni(A),要求按高等代数的初等行变换求逆矩阵来编写,如果调用时A是奇异阵,给出提示‘对不起,A不可逆!
’.
functiony=qiuni(A)
%若A不可逆,返回字符串”A不可逆“给y;
%若A可逆,返回逆矩阵给y;
[m,n]=size(A);
ifabs(det(A))<0.000001
y='A不可逆';
y=[];
return
end
b=[A,eye(n)];
fori=1:
n
ifabs(b(i,i))<0.00001
forj=i+1:
n
ifabs(b(j,i))>0.00001
t=b(i,:
);
b(i,:
)=b(j,:
);
break
end
end
end
b(i,:
)=b(i,:
)/b(i,i);
forj=i+1:
n
b(j,:
)=b(j,:
)-b(i,:
)*b(j,i);
end
end
fori=n:
-1:
2
forj=1:
i-1
b(j,:
)=b(j,:
)-b(i,:
)*b(j,i);
end
end
y=b(:
n+1:
2*n);
7.编写m文件,用冒泡法将任意输入的向量
按从小到大的次序排序.
functiony=maopao(a)
y=[];
n=length(a);
fori=1:
n
forj=1:
n-i
ifa(j)>a(j+1)
t=a(j);a(j)=a(j+1);a(j+1)=t;
end
end
end
y=a
实验四特殊函数与图形
一实验目的:
1.掌握二维函数图形的画法;
2.掌握三维图形的画法
二实验的准备:
阅读课本的相关内容
三实验的内容:
1.运行下列命令观察得到的结果:
x=0:
pi/100:
2*pi;y1=sin(x);y2=cos(x);
plot(x,y1,'go',x,y2,'b-.')
2.在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,运行下列程序,把观察到的图形贴上来,并填空.
x=linspace(0,2*pi,60);
y=sin(x);
z=cos(x);
t=sin(x)./(cos(x)+eps);%eps为系统内部常数等于2.2204-e016
ct=cos(x)./(sin(x)+eps);
subplot(2,2,1);%该语句的功能是画出2行2列的第一个图象
plot(x,y);
title('sin(x)');
axis([02*pi-11]);
subplot(2,2,2);
plot(x,z);
title('cos(x)');
axis([02*pi-11]);
subplot(2,2,3);
plot(x,t);
title('tangent(x)');%该语句的功能是在图像上标上标题tangent(x)
axis([02*pi-4040]);%该语句的功能是xy的范围分别给出
subplot(2,2,4);
plot(x,ct);
title('cotangent(x)');
axis([02*pi-4040])
3.写出绘制螺旋曲线
的命令.
clear,clc,clf
ezplot3('cos(t)','sin(t)','t',[0,10*pi])
4.写出完成下列各题的命令:
(1)用函数mesh画出
表示的图形;
clf
x=-10:
0.1:
10;y=-10:
0.1:
10;
[X,Y]=meshgrid(x,y);
Z=X.*Y
mesh(X,Y,Z)
view(35,40)
(2)用函数surf画出
表示的图形;
clf
x=-10:
0.01:
10;y=-10:
0.01:
10;
[x,y]=meshgrid(x,y);
z=x.^2+2*y.^2;
surf(x,y,z)
(3)用函数meshc画出
表示的图形;
clf
x=-10:
0.1:
10;y=-10:
0.1:
10;
[x,y]=meshgrid(x,y);
z=x.^2-2*y.^2;
meshc(x,y,z)
(4)绘制
的三维网格(mesh)和带等高线的三维曲面图(surfc),x,y的变化范围均为[0,2π].
clf
x=0:
0.1:
2*pi;y=0:
0.1:
2*pi;
[x,y]=meshgrid(x,y);
z=sin(x).*cos(y);
mesh(x,y,z)
clf
x=0:
0.1:
2*pi;y=0:
0.1:
2*pi;
[x,y]=meshgrid(x,y);
z=sin(x).*cos(y);
surfc(x,y,z)
实验五定积分的近似计算
一.实验目的
1.掌握定积分近似计算的的方法;
2.掌握MATLAB定积分计算的函数使用方法;
3.掌握函数文件的编写方法,编写用梯形法计算定积分的M文件.
二.实验准备
阅读课本的第十章MATLAB7.0程序设计等相关内容.
三.实验内容:
1.写出下列命令运行的结果和数学意义.
symsxztalpha%定义变量xztalpha
INT1=int(-2*x/(1+x^3)^2)%求-2*x/(1+x^3)^2不定积分
INT2=int(x/(1+z^2),z)%求x/(1+z^2)不定积分
INT3=int(INT2,x)%求x/(1+z^2)二重积分
INT4=int(x*log(1+x),0,1)%求(0,1)内x*log(1+x)的定积分
INT5=int(2*x,sin(t),1)%求(sin(t),1)内2*x的定积分
INT6=int([exp(t),exp(alpha*t)])%求1的定积分在(exp(t),exp(alpha*t))内
2.通过帮助了解quad、trapz、dblquad的用法及调用格式,请用它们分别计算
和
.
F=dbquad(@(x,y)exp(x.^2+y.^2),0,1,0,1)
4.分别用梯形法公式
和抛物线法公式
,编程计算
,并将这两种方法计算的结果分别与quad.trapz直接调用的结果比较.
G=@(x)(sin(x)./x);
G=quad(G,1,5)
x=1:
0.1:
5;
y=sin(x);
f=trapz(x,y)
实验六求代数方程的近似根
一.实验目的
5.掌握求方程近似根的二分法.迭代法.牛顿切线法;
6.掌握MATLAB求根的函数使用方法;
7.掌握函数文件的编写方法,编写计算近似根的M文件.
二.实验准备
阅读课本的第十章MATLAB7.0程序设计等相关内容.
三.实验内容:
1.请写出用“roots”命令求
的根的命令.
P=[12-18],
Y=roots(p)y=-3.1337
0.5669+1.4938i
0.5669-1.4938i
2.请写出用“linsolve”命令求解
命令,其中
,
.
A=[1234;0101;0015;13