《数学软件与数学实验报告册2013.doc》由会员分享,可在线阅读,更多相关《数学软件与数学实验报告册2013.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验报告册信 计 姓名: 学号: 钟 培 华 编2013年3月实验一 数学软件MATLAB基础知识一.实验目的1 熟悉MATLAB向量的生成及其运算;2 熟悉MATLAB矩阵的生成及其运算;3 熟悉MATLAB数组的生成及其运算;4 熟悉稀疏矩阵的生成与操作.5 熟悉MATLAB向量的生成及其运算;6 熟悉MATLAB矩阵的生成及其运算;7 熟悉MATLAB数组的生成及其运算;8 熟悉稀疏矩阵的生成与操作;9 熟悉常用快捷键和命令.二.实验准备阅读课本MTLAB7.0简介、MATLAB7.0的安装和用户界面、基本使用方法等相关内容.阅读课本的第四数值计算功能、五章单元数组等相关内容.三.实验内
2、容1. MATLAB的启动: 双击matlab图标 .2. 熟悉界面四个窗口:命令窗口、命令历史窗口、当前目录窗口、工作间管理窗口、发行说明书窗口.3. 在命令窗口中输入下列命令,观察运行结果,然后填空.dir %功能是: 显示当前目录下的文件 ;clc %功能是: 清除命令窗口 ;help sin %观返回的结果是.lookfor sin%观返回的结果是.“help”的功能是: 显示函数并解释函数的用法 “lookfor 函数”的功能是: 给出与此相关的函数用法 4. 写出下列标点符号的功能:标点符号功能标点符号功能; 区分行,不显示结果,. 小数点域访问等, 区分列,参数分隔 续行符: 数
3、组中运用较多 字符串标示符号( ) 指定运算优先级赋值符合 矩阵定义符号! 调用操作系统运算 构成单元数组 注释语句标识5. 熟悉下列常用快捷键:6. MATLAB对所使用的变量有哪些规定?不要对使用的变量进行声明,不用指定类型,直接赋值即可;变量不超过31个字符;变量区分大小写;以字母开头,可含字母、下划线、数字,不能有标点符号。工作间的同名变量被覆盖。7. 打开记事本,在上面输入“peaks”五个字母,将记事本另存为”test01.m”(选所有文件),并保存在电脑D盘根目录的“newfile”文件夹中,请问如何设置路径并调用”test01.m”,并借助帮助系统写出“peaks”调用格式与的
4、功能. 将matlab保存路径设置为D:/newfile 在命令窗口输入save test01 ; load test01 Load 加载指定文件的变量10. 在命令窗口中输入:a=1,2;3,4;b=1 0;0 2;a1=a(1,:);a2=a(:,2); a3=a*b;a4=a.*b;a5=a2; a6=b;a7=ba; a8=2*a;a9=2+a; a10=a.2;a11=2.a;a12=2a;a13=a/b;a14=ab;则在workspace中可见a1、a2、a3、a4、a5、a6、a7、a8、a9、a10、a11、a12各为何值?a1=1 2,a2=2;4,a3=1 4;3 8,a
5、4=1 0;0 8,a5=7 10;15 22,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=1 4 2 8;9 1 4 2;3 6 9 0;4 8 5 1; b=7 4 7 8;9 6 4 6;3 7 9 0;4 8 5 7;c=1 0 3.3 4 0 6.6;a1=find(a0.5); a2=fin
6、d(aa3=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,012 在命令窗口中输入语句: x = 0:0.2*pi:p
7、i;y=sin(x)+1; x1=linspace(0,1,51); x2=x(1:2:5) 1 0 1; x3=zeros(size(x);x4= exp(x.2);x5= x./y ;x6 = x.3 - 2*x.2 + x - 6.3; x(:, 2) = ;x(:,1 4) = ;能写出x1,x2,x6的值么?x1= 0 0.0200 0.0400 0.0600 0.0800 0.1000 0.1200 0.1400 0.1600 0.1800 0.2000 0.2200 0.2400 0.2600 0.2800 0.3000 0.3200 0.3400 0.3600 0.3800 0
8、.4000 0.4200 0.4400 0.4600 0.4800 0.5000 0.5200 0.5400 0.5600 0.5800 0.6000 0.6200 0.6400 0.6600 0.6800 0.7000 0.7200 0.7400 0.7600 0.7800 0.8000 0.8200 0.8400 0.8600 0.8800 0.9000 0.9200 0.9400 0.9600 0.9800 1.0000,x2= 0 1.2566 2.5133 1.0000 0 1.0000,x3=0,0,0,0,0,0,x4= 1.0e+004 * 0.0001 0.0001 0.00
9、05 0.0035 0.0554 1.9334X5= 0 0.3957 0.6441 0.9661 1.5829 3.1416,x6= -6.3000 -6.2132 -6.2172 -4.8238 -0.5446 8.10871 在命令窗口中输入语句: a=4*1 4 2 8;9 1 4 2;3 6 9 0;4 8 5 1-2; b=a(2);c=a(2:6);d=a(1 3 9 7 5)写出a,b,c,d的值.a2,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,1413 在命令窗口中输入语
10、句:a=1 0 1 0;1 3 0 0; 0 3 0 1 ;b=1 2 3 4;0 1 2 0;0 0 0 1 ;ab=a&bahb=a|b;fa=a;c=a.b;d=a.3;e=3.a写出a,b,ab,ahb,e,d,fa的值.a=1 0 1 0;1 3 0 0; 0 3 0 1 , b=1 2 3 4;0 1 2 0;0 0 0 1 ,ab=1,0,1,0;0,1,0,0;0,0,0,1ahb=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;
11、1,0,1,014.通过帮助文件了解函数“eig”的功能及其调用格式,运行命令“a=1 2 3;4 0 6;0 7 8;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.275515.通过帮助文件了解函数“null”的功能及其调用格式,并求方程的基础解系,其中 . A=1,0,0,0;1,1,0,0;0,0,1,0;2,1,0,
12、y=null(A)实验二 MATLAB单元数组、结构变量和字符串生成与操作、文件操作一.实验目的1. 熟悉MATLAB单元数组和结构变量的生成及其操作;2. 熟悉MATLAB字符串的生成及其操作.3. 文件操作二.实验准备阅读课本的单元数组和字符串.文件操作等相关内容.三.实验内容:1. a=1 2 ;3 4,love;100+i,1 2 3;2 3 4; 3 4 5;x=a1(3);y=a4(4);student.name=lihua; student.test=60 70 80 90; student(2).name=liping; student(2).test=50 40 80 70;
13、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=602. 写出在命令窗口中分别用单元数组和结构变量保存你的入校年月、所在院系、姓名、和学号的命令.student=2012,xinji;caodan,201232093. 在命令窗口中输入语句: s1=This is a string!It can be used easily! s2=This a girle! s3=s1(6);s4=s1(10:16); s5=s1(16:-1:10); s6=str
14、cmp(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= This is a string!It can be used easily! S2= This a girle!S3=I,s4=string ,s5=gnirts ,s6=0,s7=1,s8=1,s9=1,s10=1
15、,s11=0,s12=9,22,34,4. 举例说明如何添加和删除成员变量和调用成员变量.student.test=99 98 97 96 95;student.name=huang ling;Student.weight=50;student.tel=3813574;写出在结构变量中加成员变量age和height的命令student.age=20, student.height=180 写出在结构变量中删除成员变量student.tel命令: student=rmfield(student,tel) 5. 在命令窗口中输入下列命令:a=This is an example.;ascii_a=
16、double(a) a14=a(1:4);ra=a(end:-1:1);char(ascii_a) w=find(a=a&att=char(ascii_a)则a14,ra,w,tt的值是什么?a14= This ,ra= .elpmaxe na si sihT w=2 3 4 6 7 9 10 12 13 14 15 16 17 18,tt= THIS IS AN EXAMPLE.6. 通过帮助查询下列函数的功能,说明函数“strcmp”的用法并举例.word1=situate,word2=situp;n=strcmp(word1,word2);y1=strncmp(word1,word2,3
17、);y2=strncmp(word1,word2,4);y3=strncmp(word1,word2,5);写出y1,y2,y3的值.y1=1,y2=1,y3=0 7. 写出下列语句的运行结果.for n=3:5eval(M, num2str(n), =magic(n)endM3=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,98 如果要将工作间的变量a=1;b=2;c=3;d=1,2;3
18、,4;保存存到work目录下的file.mat文件中,然后用clear命令清除工作间,再用load命令加载上述变量.请写出完成上述操作的命令.save fileload file9 如果要先建立文件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. 掌握变量的种类和作用域
19、;4. 掌握函数文件的编写方法,会编写简单的程序.二.实验准备阅读课本的第十章MATLAB7.0程序设计等相关内容.三.实验内容:1. 请问脚本文件和函数文件的区别是什么?函数文件相对于脚本文件而言,函数文件是较为复杂的,函数文件需要给定输入参数,并能够对输入参数进行若干操作,实现特定的功能,最后给出结果或图形等,其操作对象为函数的输入变量和函数内的变量等。脚本文件不需要输入参数,不需要给出输出变量来接受处理结果,脚本文件对变量的一切操作均会被保留在哦内存中。2. 函数文件有几种类型?一个函数文件又包含几个部分?试举例说明.(1)函数声明(2)h1行(3)帮助信息(4)函数体(5)注释部分3.
20、 编程函数文件sushu.m,使得在命令窗口调用y=sushu(n)求小于n的所有素数,即函数返回值y是一个矩阵,它的每个元素都是小于n的素数.function y=sushu(n)y=2;for i=3:2:nflag=1;for j=2:sqrt(i)if rem(i,j)=0flag=0;endendif flag=1;y=y,iendend4. 编函数文件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;for k=1
21、:10t=t*k;s=s+t;ends6. 编求任意n阶可逆方阵A的逆矩阵的函数y=ni(A),要求按高等代数的初等行变换求逆矩阵来编写,如果调用时A是奇异阵,给出提示对不起,A不可逆!. function y=qiuni(A)%若A不可逆,返回字符串”A不可逆“给y;%若A可逆,返回逆矩阵给y;m,n=size(A);if abs(det(A)0.000001 y=A不可逆; y=; returnendb=A,eye(n);for i=1:n if abs(b(i,i)0.00001 t=b(i,:); b(i,:)=b(j,:); break end end end b(i,:)=b(i,
22、:)/b(i,i); for j=i+1:n b(j,:)=b(j,:)-b(i,:)*b(j,i); endendfor i=n:-1:2 for j=1:i-1 b(j,:)=b(j,:)-b(i,:)*b(j,i); endendy=b(:,n+1:2*n);7. 编写m文件,用冒泡法将任意输入的向量按从小到大的次序排序. function y=maopao(a)y=;n=length(a);for i=1:n for j=1:n-i if a(j)a(j+1) t=a(j);a(j)=a(j+1);a(j+1)=t; end end endy=a实验四 特殊函数与图形一 实验目的:1.
23、掌握二维函数图形的画法;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)
24、; 该语句的功能是 画出2行2列的第一个图象 plot(x,y);title(sin(x); axis (0 2*pi -1 1); subplot(2,2,2);plot(x,z);title(cos(x);axis (0 2*pi -1 1);subplot(2,2,3);plot(x,t);title(tangent(x); 该语句的功能是 在图像上标上标题tangent(x)axis (0 2*pi -40 40); 该语句的功能是 x y的范围分别给出 subplot(2,2,4);plot(x,ct);title(cotangent(x);axis (0 2*pi -40 40)
25、3. 写出绘制螺旋曲线的命令. clear,clc,clfezplot3(cos(t),sin(t),t,0,10*pi)4.写出完成下列各题的命令:(1)用函数mesh画出 表示的图形;clfx=-10:0.1:10;y=-10:0.1:10;X,Y=meshgrid(x,y);Z=X.*Ymesh(X,Y,Z)view(35,40)(2)用函数surf画出表示的图形;clfx=-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画出表示的图形;clfx=-10:0.1:10;y=-10:
26、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.clfx=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定积分
27、计算的函数使用方法;3. 掌握函数文件的编写方法,编写用梯形法计算定积分的M文件.二.实验准备阅读课本的第十章MATLAB7.0程序设计等相关内容.三.实验内容:1.写出下列命令运行的结果和数学意义.syms x z t alpha % 定义变量xztalpha INT1 = int(-2*x/(1+x3)2) % 求-2*x/(1+x3)2不定积分 INT2 = int(x/(1+z2),z) % 求x/(1+z2)不定积分 INT3 = int(INT2,x) % 求x/(1+z2)二重积分 INT4 = int(x*log(1+x),0,1) % 求(0,1)内x*log(1+x)的定积
28、分 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
29、);f=trapz(x,y)实验六 求代数方程的近似根一.实验目的5. 掌握求方程近似根的二分法.迭代法.牛顿切线法;6. 掌握MATLAB求根的函数使用方法;7. 掌握函数文件的编写方法,编写计算近似根的M文件.二.实验准备阅读课本的第十章MATLAB7.0程序设计等相关内容.三.实验内容:1.请写出用“roots”命令求的根的命令. P=1 2 -1 8, Y=roots(p) y= -3.1337 0.5669 + 1.4938i 0.5669 - 1.4938i2.请写出用“linsolve”命令求解命令,其中,.A=1 2 3 4;0 1 0 1;0 0 1 5;1 3 4 5,b=
30、1;3;4;5,Y=linsolve(A,b) y=-9.2000;2.4000;0.60003.请写出用“fzero”求的根的命令.f=(x)exp(x)+x.3-1,fzero(f,1) 结果-4.4816e-0174.请写出迭代法求的根的命令,能用牛顿法计算它的根么?试写出命令. 牛顿法:x=1.5;k=0;f=(x)x3-3*x+1;df=(x)3*x2-3;k,f(x)while abs(f(x)0.000001 x=x-f(x)/df(x); k=k+1; k,f(x)End迭代法:实验七 求微分方程的解一.实验目的1. 掌握微分方程的解析解法;2. 了解微分方程的数值解法,掌握M
31、ATLAB求微分方程的数值解的命令和函数,及其调用格式二.实验准备阅读课本的第十章MATLAB7.0程序设计等相关内容.三.实验内容:1 写出求下列微分方程的解析解的命令,并画解函数图形.(1)S=dsolve(Dy=-2*x*y+x*exp(-X),ezplot(x,y)(2) S=dsolve(Dy+x+y-exp(x)=0,y(1)=2*exp(1),ezplot(x,y)(3)x,y=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0,x(0)=1,y(0)=0),simple(x),simple(y),ezplot(x,y)2写出求下列微分方程的数值解的命令.(1)
32、(2)(1)function dx = rigid(t,x)dx = zeros(2,1); dx(1) = x(1)*(1-0.1*x(2);dx(2) = (-0.5 +0.02*x(1)*x(2);在命令窗口输入:t,x = ode45(rigid,0 15,25 2)(2) function dy = rigid1(t,y)dy = zeros(2,1); dy(1) = y(2);dy(2) = 1000*(1-y(1)2)*y(2)-y(1); 在命令窗口输入:t,y = ode45(rigid1,0 20,0 1)2 用Euler折线公式编程求微分方程的数值解.clear,clc
33、f=sym(y2+exp(x)/y);a=0;b=2;h=0.4;n=(b-a)/h+1;x=0;y=1;szj=x,y;for i=1:n-1 y=y+h*subs(f,x,y,x,y); x=x+h; szj=szj;x,y;endszjplot(szj(:,1),szj(:,2)实验八 古典密码学一.实验目的1. 学习古典密码学加密解密原理;2. 学习模M逆矩阵的求法.二.实验准备阅读课本实验6 中MATLAB7.0程序设计等相关内容.三.实验内容:1. 设,编程计算出中所有元素的模27倒数并填写下表.1245781011131416171920222325261147114171952
34、52228102316201326m=27;for a=1:m for j=1:m if mod(a*i,m)=1 fprintf(the inverse(mod %d)of number : %dn,a,i); break; endendend3 编程实现以为密钥矩阵,对任意输入的拼音明文加密,并写出密文.然后并对密文进行解密,其中汉语拼音ABCZ对应126,空格对应0.4. 设,编写m文件求中元素的模27倒数. 同第一题实验九 概率与频率(一)实验目的1加深对概率和频率等概念的理解和认识;2掌握计算机模拟的原理;3掌握matlab的相关函数功能及调用格式.(二)实验准备阅读课本实验8 概率与频率的相关内容.(三)实验内容:1设计实验利用蒙特卡罗投点法计算的值,写出相应的程序.n=100000;a=2;m=0;for i=1:n x=rand(1)*a/2; y=rand(1)*a/2; if x2+y2epsa=a*x/n;e=e+a;n=n+1;ende 结果:2.71828180114638