MATLAB全部实验及答案_第1页
MATLAB全部实验及答案_第2页
MATLAB全部实验及答案_第3页
MATLAB全部实验及答案_第4页
MATLAB全部实验及答案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验项目序号1 MATLAB基本操作一、实验目的熟悉MATLAB软件环境,掌握命令窗口的使用。二、实验基本知识1、熟悉MATLAB的桌面工具和环境2、Start菜单三、主要仪器及耗材电脑四、实验内容和步骤1、 MATLAB的启动及操作界面认识说明有哪几种启动的方法;操作界面有哪些窗口;对常用的窗口作些简单的介绍。Ø 使用Windows的“开始”菜单。Ø 运行MATLAB系统的启动程序matlab.exe。Ø 利用桌面上的快捷方式。Ø MATLAB主窗口Ø 命令窗口(Command Window)Ø 当前目录窗口(Current Dir

2、ectory)Ø 工作空间窗口(Workspace)Ø 命令历史窗口(Command History)2、 以下符号中哪些是MATLAB的合法变量名?用给变量赋值的方法在机器上验证你的答案3vars、global、help、My_exp、sin、X+Y、_input、E-4、AbCd、AB_C_。help,My_exp,sin,AbCd,AB_C_;3、命令窗口的简单使用1简单矩阵的输入 1 2 3A = 4 5 6 7 8 92求12+2×(7-4)÷32的算术运算结果4、有关向量、矩阵或数组的一些运算1设A=15;B=20;求C=A+B与c=a+b?

3、2设A=1 2 3;4 5 6;7 8 9,B=9 8 7;6 5 4;3 2 1;求A*B与A.*B?A*B遵循矩阵运算,A.*B遵循每个对应元素之间进行相乘3设A=10,B=20;求C=A/B与D=AB?4设a=1 -2 3;4 5 -4;5 -6 7请设计出程序,分别找出小于0的矩阵元素及其位置单下标、全下标的形式,并将其单下标转换成全下标>> a=1 -2 3;4 5 -4;5 -6 7;/%定义矩阵>> b = a(find(a<0);%找到a中小于零的元素b = -2 -6 -4>> c = find(a<0)%找到小于零元素的单下标

4、c = 4 6 8>> x,y = find(a<0)%找到小于零元素的双下标>> x,y = ind2sub(size(a),find(a<0) %单下标转换为双下标5在MATLAB命令行窗口运行A=1,2;3,4+i*5,6;7,8;看结果如何?如果改成运行A=1,2;3,4+i5,6;7,8,结果又如何?6请设计出程序完成以下计算:a=1 2 3;3 4 2;5 2 3,求a2=?,a.2=?解:>> a=1 2 3;3 4 2;5 2 3;>> a2 % 矩阵运算>> a.2%数组与矩阵的乘法7有一段程序设计如下,

5、请思考并说明运行结果及其原因clear X=1 2;8 9;3 6; X( : )解:转化X为列向量8使用两种方法,创建一稀疏矩阵解:1>>a = eye(5);%创建5阶单位矩阵>>sparse(a)%将a构造为稀疏矩阵ans = (1,1) 1 (2,2) 1 (3,3) 1 (4,4) 1 (5,5) 12>> data = 1 2 2 2; >> ir = 1 3 2 4; >> jc = 1 2 4 1; >> s=sparse(ir,jc,data,4,4)s = (1,1) 1 (4,1) 2 (3,2) 2

6、 (2,4) 29写出以下指令的运行结果>> A = 1 2 3 ; B = 4 5 6 ; >> C = 3.A C = 3 9 27>> D = A.B D = 1 32 7295、已知假设需要计算t-1,1,取间隔为0.01,试计算出相对应的y值。>> t = -1:0.01:1;>> y = sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3) %注意要用点乘五、实验注意事项1、 注意区分大小写2、 注意数组、矩阵运算的不同之处六、思考题1、MATLAB桌面环境有几种样式?Default:缺省的

7、界面Command Windows Only:仅包含命令行窗体(Command Window)History and Command Window: 包含两个窗体命令行窗体(Command Window)和命令历史窗体(Command History),两个窗体并列在界面中All Tapped:启动所有MATLAB常用的图形界面工具All but Command Window Minimized:Command Window窗口显示,其他的窗口分别叠加在MATLAB窗体下2、如何使窗体浮动出来?又如何使窗体内嵌回MATLAB的界面中?在MATLAB默认的图形窗体环境下,单击命令行窗体左上角按钮

8、,就可以将MATLAB命令行窗体弹出执行“Desktop”菜单下的“Dock Current Directory”命令,可将命令行窗口重新嵌入到MATLAB的界面中实验项目序号2 MATLAB运算基础一一、实验目的掌握MATLAB各种表达式的书写规则及常用函数的使用二、实验基本知识1、矩阵和向量的创建方法和访问方法1创建方法² 逐个输入向量的元素² 利用运算符“:”语法:X = J:INC:K² 使用函数linspace和logspace语法:x = linspace(x1,x2,n),x = logspace (x1,x2,n)2访问方法:利用向量或矩阵的索引来

9、完成相应的操作。2、数据类型,以及操作不同数据类型数据的函数1数据类型2操作函数整数类型的运算函数创建逻辑类型数据的函数MATLAB的逻辑运算MATLAB的关系运算格式化字符三、主要仪器及耗材电脑四、实验内容和步骤1、已知A=12 34 -4;34 7 87;3 65 7,B=1 3 -1;2 0 3;3 -2 7,求以下表达式的值:1A+6B和A2-B+II为单位矩阵2A*B和A.*B3A3和A.34A,B和A1,3,:;B22、设有矩阵A和B,A=1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25,B=3 0

10、16;17 -6 9;0 23 -4;9 7 0;4 13 111求它们的乘积C2将矩阵C的右下角3x2子矩阵赋给D3、已知A=23 10 -0.778 0;41 -45 65 5;32 5 0 32;6 -9.54 54 3.14,取出其前3行构成矩阵B,其前两列构成矩阵C,其左下角3x2子矩阵构成矩阵D,B与C的乘积构成矩阵E,分别求E<D、E&D、E|D、E|D和 满足(A>=10&A<25)的元素的索引。答案:满足(A>=10&A<25)的元素的索引>> A=23 10 -78 0;41 -45 65 5;32 5 0

11、32;6 -54 92 14;>> a = find(A>=10&A<25)a = 1 5 164、使用函数,实现矩阵左旋90°或右旋90°的功能。左旋:>> rot90(A)ans = 0 5 32 14 -78 65 0 92 10 -45 5 -5423 41 32 6右旋:>> rot90(A,3)ans = 6 32 41 23 -54 5 -45 10 92 0 65 -78 14 32 5 05、求S=20+21+22+23+24+210的值提示:利用求和函数与累乘积函数。>> a=2*one

12、s(1,10);%生成全为2,个数为10的行矩阵>> b=cumprod(a);%得到累乘量如21、22等等>> c=sum(b)+1c = 20476、用reshape指令生成以下矩阵,并取出方框内的数组元素。答案:>>a = 1:5 10:-1:6;>>b = 11:25;>>A = reshape(a,5,2)' reshape(b,5,3)'%生成矩阵A>>d1 = A(2,2:3)>>d2 = A(2:4,4)>>d3 = A(4:5,1:3)五、实验注意事项不同的函数有不

13、同的功能,同一函数又有不同的用法,注意正确使用各函数。六、思考题元素的单下标访问和全下标访问有何关联之处?实验项目序号3 MATLAB运算基础二一、实验目的掌握MATLAB中有关字符串、元胞、结构的函数的使用。二、实验基本知识有关字符串、元胞、结构的函数常用的字符串操作函数数字和字符之间的转换函数不同数值之间的转换函数格式化字符元胞数组的操作函数在cellfun函数中可用的函数结构操作函数三、主要仪器及耗材电脑四、实验内容和步骤1、求100,999之间能被21整除的数的个数提示:先利用冒号表达式,再利用find和length函数。答案:>> t = 100:999>>

14、i = find(rem(t,21)=0)>> length(i)ans = 432、建立一个字符串向量,删除其中的大写字母提示:利用find函数和空矩阵。>> a = 'dadaAf'>> b = find(a>='A'&&a<='Z')>> a(b) = a =dadaf3、写出使以下这段文字成为字符串的MATLAB指令。注意保持这段文字的格式。在英式用法中,引号通常是单引号,如Fire!。In GB usage quotation marks are usually

15、 single: fire!答案:>> disp('In GB usage quotation marks are usually single: ''fire!''')4、用结构体数组来存储2名学生的基本情况数据,每名学生的数据包括学号、专业和3门课程的成绩。>>a = struct('num',1,2,'name','mike','hike', 'major','tele','score', rand(2,1

16、)*100,rand(2,1) *100);5、建立矩阵A并答复有关问题A1,1=1;A1,2=Brenden;A2,1=reshape(1:9,3,3);A2,2=12,34,2;54,21,3;4,23,67;1) 如何使用访问的方式将Brenden改写成BRENDEN?>> A1,2=upper(A1,2)A = 1 'BRENDEN' 3x3 double 3x3 cell2) 分别执行A(3)=和A3=后,A的值各是多少?并说明原因。>> A3=A = 1 3x3 double 3x3 cell>> A(3)=A = 1 3x3 d

17、ouble 3x3 cell6、利用MATLAB提供的rand函数和圆整函数随机生成43整数矩阵A,进行如下操作1A各列元素的平均值和中值平均值>> A_mean=mean(A) A_mean = 中值 >> A_median=median(A)A_median = 2A的最大元素和最小元素及它们的位置最大值>> A_max=max(max(A)A_max = 1位置:>> x,y=find(A=A_max)>> A_maxlocal=x(1) y(1)最小值>> A_min=min(min(A)A_min = 0位置:&

18、gt;> xx,yy=find(A=A_min)>>A_minlocal=xx(1) yy(1)3求A的每行元素的和以及全部元素之和>> A_rsum=sum(A,2)%行的和>> A_sum=sum(sum(A)%全和4分别对A的每列元素按升序、每行元素按降序排列>> A_rsort=abs(sort(-A,2)五、实验注意事项字符串函数的使用细节;对元胞数组中的元胞的访问;结构数组的创建方法。六、思考题访问元胞数组的两种操作符“”和“”之间有什么不同?使用“”直接获取元胞数组的元胞内容使用“”直接访问元胞数组的元胞,获取的数据

19、也是一个元胞数组。实验项目序号4 MATLAB循环结构程序设计一、实验目的1、掌握建立和执行M文件的方法;2、掌握利用for语句和while语句实现循环结构的方法。二、实验基本知识MATLAB的M语言文件是纯文本格式的文件,MATLAB也提供了一个编辑器,叫作meditor,它也是系统默认的M文件编辑器。运行meditor的方法非常简单,在MATLAB命令行窗口中键入下面的指令就可以打开meditor:>> edit这时MATLAB将启动meditor,然后创建一个未命名的空白文件。这时用户就可以直接在编辑器中键入MATLAB指令,开发M语言文件了。M语言文件可以分为两类,其中一类

20、是脚本文件,另外一类叫作函数文件。脚本文件是最简单的一种M语言文件。所谓脚本文件,就是由一系列的MATLAB指令和命令组成的纯文本格式的M文件,执行脚本文件时,文件中的指令或者命令按照出现在脚本文件中的顺序依次执行。脚本文件没有输入参数,也没有输出参数,执行起来就像早期的DOS操作系统的批处理文件一样,而脚本文件处理的数据或者变量必须在MATLAB的公共工作空间中。 脚本文件中常用的MATLAB指令程序流程控制语句:1、for循环结构语法:for i初值:增量:终值 语句1 语句n end 说明:1i初值:终值,则增量为1。 2初值、增量、终值可正可负,可以是整数或小数,只须符合数学逻辑。2、

21、while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。假设表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。假设表达式的值为假,则程序执行end之后的语句。2为了防止因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。 3while循环也可以嵌套、其结构如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end 三、主

22、要仪器及耗材电脑四、实验内容和步骤1、分别使用for循环语句和while循环语句找出最小的n值,使得n!>10100,并求出n!。要求显示的结果为 n=70n!=1.197857e+100>1e100或70!=1.197857e+100>1e100程序for:s =1;for n=1:100 s=s*n; if(s>10100) break; endendstr1='n=',num2str(n);str2='n!=',num2str(s);disp(str1)disp(str2)程序while:n=1;s=1;while(s<=10

23、100) s=s*n; n=n+1;end str1='n=',num2str(n-1);str2='n!=',num2str(s);disp(str1)disp(str2)2、已知 f1=1,n=1f2=0,n=2f3=1,n=3fn=fn-1-2fn-2+fn-3,n>3求f1 f50中:1最大值和最小值及它们的位置,各数之和最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM。程序:f(1)=1;f(2)=0;f(3)=1;for n=4:50f(n)=f(n-1)-2*f(n-2)+f(n-3);endMAX

24、,x=max(f)%×¢Òâ²»Òª·ÖºÅ£¬ÒªÖ´ÐеÄÓï¾ä?MIN,y=min(f)SUM=sum(f)2正数、零、负数的个数依次赋值给变量positive,zero,negative。将MAX,x=max(f)和之后的语句换为:positive=length(find(f>0)zero=length(find(f=0

25、)negative=length(find(f<0)3、Fibonacci数组的元素满足Fibonacci规则:ak+2=ak+ak+1,k=1,2,3,;且a1= a2=1。请设计一段程序,求出该数组中第一个大于10000的元素,要求显示的结果为:i=21a(i)=10946或者a(21)=10946程序为:a= ;a(1)=1;a(2)=1;for i=1:10000 a(i+2)=a(i)+a(i+1); if a(i)>10000 break; endend disp('i=',num2str(i) disp('a(i)=',num2str(

26、a(i)五、实验注意事项1、for语句和while语句的应用场合2、注意输出格式的要求六、思考题请思考以下两段程序及其运行结果,说明原因。1) clear 2clearfor i=1:10; for i=1:10;x(i)=i.2; x(i)=i.2;end endx x(i)实验项目序号5 MATLAB选择结构程序设计一、实验目的1、掌握建立和执行M文件的方法;2、掌握利用if语句和switch语句实现选择结构的方法。二、实验基本知识MATLAB的M语言文件是纯文本格式的文件,MATLAB也提供了一个编辑器,叫作meditor,它也是系统默认的M文件编辑器。运行meditor的方法非常简单,

27、在MATLAB命令行窗口中键入下面的指令就可以打开meditor:>> edit这时MATLAB将启动meditor,然后创建一个未命名的空白文件。这时用户就可以直接在编辑器中键入MATLAB指令,开发M语言文件了。M语言文件可以分为两类,其中一类是脚本文件,另外一类叫作函数文件。脚本文件是最简单的一种M语言文件。所谓脚本文件,就是由一系列的MATLAB指令和命令组成的纯文本格式的M文件,执行脚本文件时,文件中的指令或者命令按照出现在脚本文件中的顺序依次执行。脚本文件没有输入参数,也没有输出参数,执行起来就像早期的DOS操作系统的批处理文件一样,而脚本文件处理的数据或者变量必须在M

28、ATLAB的公共工作空间中。脚本文件中常用的MATLAB指令 程序流程控制语句: 1、if-else-end分支结构语法:if 表达式 1 语句1 else if 表达式 2(可选) 语句2 else(可选) 语句3 end end 说明:1if结构是一个条件分支语句,假设满足表达式的条件,则往下执行;假设不满足,则跳出if结构。2else if表达式2与else为可选项,这两条语句可依据具体情况取舍。3注意:每一个if都对应一个end,即有几个if,记就应有几个end。2、switch-case结构语法:switch表达式case常量表达式1 语句组1 case常量表达式2 语句组2 oth

29、erwise 语句组n end 说明:1switch后面的表达式可以是任何类型,如数字、字符串等。2当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。三、主要仪器及耗材电脑四、实验内容和步骤1、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分100分为A,80分89分为B,70分79为C,60分69分为D,60分以下为E。要求:1分别用if语句和switch语句实现2对不合理的成绩应输出出错信息“输入的成绩不合理”假设成绩出现小数,则只能是“.5”程序swit

30、ch:score=input('ÇëÊäÈë°Ù·ÖÖƳɼ¨:'); if rem(score,0.5)=0 switch score case num2cell(90:0.5:100) disp('ÄúµÄ³É¼¨µÈ¼¶Îª A') case num2cell

31、(80:0.5:89) disp('ÄúµÄ³É¼¨µÈ¼¶Îª B') case num2cell(70:0.5:79) disp('ÄúµÄ³É¼¨µÈ¼¶Îª C') case num2cell(60:0.5:69) disp('Äúµ

32、6;³É¼¨µÈ¼¶Îª D') case num2cell(0:0.5:59.5) disp('ÄúµÄ³É¼¨µÈ¼¶Îª E') otherwise disp('ÄãÊäÈëµÄ³É¼¨²&#

33、187;ºÏÀí') end else disp('ÄãÊäÈëµÄ³É¼¨²»ºÏÀí£¬Èô³öÏÖСÊýÖ»ÄÜÊÇ0.5')end 程序if: 2、 x=i

34、nput('?:'); 3、 if rem(x,0.5)=04、 if (x<=100 & x>=90) 5、 disp('A') 6、 elseif (x>=80 & x<=89) 7、 disp('B') 8、 elseif (x>=70 & x<=79) 9、 disp('C') 10、 elseif (x>=60 & x<=69) 11、 disp('D') 12、 elseif (x<60&x>=0) 13

35、、 disp('E') 14、 else15、 disp('ÊäÈëµÄ³É¼¨²»ºÏÀí')16、 end17、 else18、 disp('?¡§?¨ª?0.5')19、 end20、 设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”

36、。程序:x=round(rand(1)*100);y=round(rand(1)*100);disp('x=',num2str(x);disp('y=',num2str(y);A=input('请输入一个运算符号:','s'); %书上114页有说明switch(A)case '+'a=x+y; disp('a=x+y=',num2str(a);case '-'a=x-y;disp('a=x-y=',num2str(a);case '*'a=x*y;d

37、isp('a=x*y=',num2str(a);case '/'a=x/y;disp('a=x/y=',num2str(a);end3、求以下分段函数的值 要求:用if语句实现,分别输出x = -5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。其中x的值以向量的形式从键盘输入。x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0 if x<0&x=-3 y=x.*x+x-6; elseif x>=0&x<5&x=2&x=

38、3 y=x.*x-5*x+6; else y=x.*x-x-1 end y五、实验注意事项1、if语句和switch语句的应用场合2、编程时对输入和输出的要求六、思考题填写以下程序的执行结果:a=90,70,65,54,76;n=length(a);b=zeros(1,n);for i=1:nif a(i)>75b(i)=100-a(i);elseif a(i)<=75b(i)=a(i)-60;endenddisp(b)b= 10 10 5 -6 24 。实验项目序号6 MATLAB函数文件程序设计一、实验目的1、理解函数文件的概念

39、;2、掌握定义和调用MATLAB函数的方法。二、实验基本知识MATLAB的M语言文件是纯文本格式的文件,MATLAB也提供了一个编辑器,叫作meditor,它也是系统默认的M文件编辑器。运行meditor的方法非常简单,在MATLAB命令行窗口中键入下面的指令就可以打开meditor:>> edit这时MATLAB将启动meditor,然后创建一个未命名的空白文件。这时用户就可以直接在编辑器中键入MATLAB指令,开发M语言文件了。M语言文件可以分为两类,其中一类是脚本文件,另外一类叫作函数文件。M函数文件和脚本文件不同,函数文件不仅有自己特殊的文件格式,不同的函数还分别具有自己的

40、工作空间。同其他高级语言类似,M函数文件也有局部变量和全局变量。函数文件的结构和编写方法:函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构:1 函数定义行function 2 H1行函数帮助文本的第一行 3 函数帮助文本4 函数体5 注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。 三、主要仪器及耗材电脑四、实验内容和步骤1、编写一个函数文件chengji.m,用于求两个矩阵的乘积和点乘,然后在命令行窗口中调用该函数提示:使用varargout函数,要求:1当两矩阵是尺寸相同的方阵时,返回它们的乘

41、积和点乘。 2当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘。 3当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”。 程序为:function varargout=chengji(a,b)x,y=size(a);xx,yy=size(b);if (xx=yy&&x=y&&x=xx) varargout1=a*b; varargout2=a.*b;elseif (x=xx&&y=yy) varargout1=a.*b; disp('Ö»ÄÜ×ö

42、;µã³Ë') varargout2=0;elseif (x=yy&&xx=y)disp('¿ÉÒÔ×öÁ½ÖÖ¾ØÕó³Ë')varargout1=a*b;varargout2=b*a;elseif (x=yy|xx=y)tryvarargout1=a*b;disp('Ö»ÄÜ×ö

43、0;ØÕó³Ë')varargout2=0;catchvarargout1=b*a;disp('Ö»ÄÜ×ö¾ØÕó³Ë')varargout2=0;endelseerror('ÕâÁ½¸ö¾ØÕó²»ÄܳË')end2、编写一

44、函数qiuhe.m,实现sum(A)的功能,其中A为矩阵。程序为:function y=qiuhe(a)y=;x,yy=size(a);if x=1 s=0; for k=1:yy s=s+a(1,k); end y=s;elsefor j=1:yy s=0; for i=1:x s=s+a(i,j);end y(1,j)=s;endend3、编写一个阶乘函数jiecheng.m,然后在试验三的编程题“分别使用for和while语句找出最小的n值,使得n!>10100,并求出n!”程序中调用该函数。程序:function s=jiecheng(n)s=1;if n=0 s=1;elsei

45、f n<0error('n±ØÐë´óÓÚµÈÓÚ0')elsefor i=1:ns=s*i;endend五、实验注意事项1、注意脚本文件和函数文件的区别2、函数文件的调用六、思考题已知一函数文件如下:function y=temf(a)if length(a)<2y=a;elsey=max(a)-min(a);end则在命令窗口执行有:temf(23 45 67 89)= 66 temf(78)= 78 实验项目序号7 数据插值与曲线拟合实验一、

46、实验目的1、掌握数据统计和分析的方法;2、掌握数据插值与曲线拟合的方法及其应用。二、实验基本知识1、数据插值运算MATLAB提供的插值计算函数函数说明函数说明interp1一维插值数值查表griddata3三维数据网格的超外表数据插值interp1q一维快速插值数值查表griddatan多维数据网格的超外表数据插值interp2二维插值数值查表mkpp产生分段多项式interp3三维插值数值查表pchip分段的厄密多项式interpnN维插值数值查表ppval计算分段多项式的数值interpft使用FFT算法的一维插值spline三次杨条插值griddata二维数据网格的外表数据插值unmkp

47、p分段多项式的细节1一维插值:在MATLAB中实现一维插值的函数是interp1。调用格式为:Yi=interp1(X,Y,Xi,method)Ø X和Y为已知的原始数据,分别描述采样点和采样值;Ø Xi为需要计算的插值点,是一个向量或标量;Ø Yi是插值结果;Ø X和Y,Xi和Yi假设都为向量,则等长,假设Y和Yi为矩阵,则length(X) and size(Y,1) must be the same.Ø method是插值方法,允许的取值有多种;Ø 假设进行插值运算时,Xi的取值超过了X的范围,则需要进行外插值运算:Yi=int

48、erp1(X,Y,Xi,method,extrap)。2二维插值:在MATLAB中实现二维插值的函数是interp2。调用格式为:Zi=interp2(X,Y,Z,Xi,Yi,method)Ø X和Y为原始数据,是两个等长的已知向量,分别描述两个参数的采样点;Ø Z是与参数采样点对应的函数值;Ø Xi ,Yi是两个向量或标量,描述欲插值的点;Ø Zi是根据相应的插值方法得到的插值结果;Ø method是插值方法,允许的取值有多种,与一维插值函数相同;Ø X,Y,Z也可以是矩阵的形式;Ø 假设进行插值运算时,Xi的取值超过了X

49、的范围,则需要进行外插值运算:Zi=interp2(X,Y,Z,Xi,Yi,method,extrap)。2、曲线拟合曲线拟合的目的是用一个较简单的函数去逼近一个复杂的或未知的函数。利用MATLAB进行曲线拟合主要有两种方法:回归法拟合和多项式拟合。1回归法拟合主要是使用MATLAB的左除运算来寻找曲线拟合解析函数的系数。2多项式拟合在MATLAB中进行多项式拟合主要使用的函数有:Ø polyfit:用来进行拟合计算P=polyfit(x,y,n)x和y为参与曲线拟合的原始数据,n为进行拟合计算的多项式次数,函数的返回值是多项式的系数,即函数的运算结果为多项式的系数向量Ø

50、polyval:用来计算多项式的数值y=polyval(p,x)p为多项式的系数,x是变量的数值,得到的结果就是函数的数值向量。三、主要仪器及耗材电脑四、实验内容和步骤,插值点为,试用四种不同的插值方法进行插值,并在一副图中绘出四种插值曲线。程序:x=0:1:4*pi;y=sin(x).*exp(-x/5);xi=0:0.3:4*pi;y1=interp1(x,y,xi,'nearset');y2=interp1(x,y,xi,'linear');y3=interp1(x,y,xi,'spline');y4=interp1(x,y,xi,'

51、;cubic');plot(x,y,'-m',xi,y1,'*r',xi,y2,'ok',xi,y3,'b',xi,y4,'+g')legend('ԭʼÊý¾Ý','×î½üµã²åÖµ','ÏßÐÔ²åÖµ

52、','ÑùÌõ²åÖµ','Á¢·½²åÖµ')title('µÚÒ»Ìâ ËÄÖÖ²åÖµ·½·¨½øÐвåÖµ',&#

53、39;FontName','Á¥Êé','FontSize',20)xlabel('XÖá','FontName','Á¥Êé','FontSize',16)ylabel('YÖá','FontName','Á¥Êé','FontSize',16)2.考虑下面的数据,一位

54、举重教练收集了不同性别的举重发动每个年龄的最大举重磅数,他相信这三者之间存在着函数关系,请创建一个年龄数组,以便估算当前队伍中队员要求1320岁每一岁都有的最大举重。性别年龄重举大最1315171920男270290330350380女250270310330360程序:t=13 15 17 19 20;sex=0,1'y=270 290 330 350 380;250 270 310 330 360 ;x=13:20;sex_2=0,1'y_2=interp2(t,sex,y,x,sex_2)surf(x,sex_2,y_2)2009-2015年的生产利润如下年份200920

55、1020112012201320142015利润万元70122144152174196202要求用多项式拟合法预测出该企业2016年和2017年的利润,并绘出拟合图。程序:x=2004:2010;y=70 122 144 152 174 196 202;k=polyfit(x,y,1);x1=2004:2013;y1=polyval(k,x1);plot(x,y,'-ro',x1,y1,'-b*');title('ijÏçÕòÆóÒµ2004-2013&#

56、196;êµÄÉú²úÀûÈó')legend('04-10ÄêµÄÀûÈó','04-13ÄêµÄÀûÈóÇ÷ÊÆÏß')xlabel('Äê·Ý');ylabel(

57、9;ÀûÈó');text(2011,polyval(k,2011),'<-2011ÄêÀûÈó') text(2012,polyval(k,2012),'<-2012ÄêÀûÈó') grid on4. 先使用命令load加载census.mat得到一组数据cdate,pop,该数据是美国自1790到1990年以10年为一单位的总人口。利用回归法拟合,预测出美国在2010年的人口总数

58、,写出拟合模型,并绘出拟合图。load('census.mat');nian=1990:2010;p=polyfit(cdate,pop,2);z=polyval(p,cdate);zz=polyval(p,nian);my=mean(pop);mz=mean(z);R=sum(pop-my).*(z-mz)./sqrt(sum(pop-my).2).*sum(z-mz).2)plot(cdate,pop,'*',cdate,z,'r',nian,zz,'b-')xlabel('Äê ·

59、21;(Ê®Äê)','FontName','Á¥Êé','FontSize',16)ylabel('ÈË¿Ú£¨°ÙÍò£©','FontName','Á¥Êé','FontSize',16)title('µÚ

60、ËÄÌâ ÃÀ¹ú×Ô1790-1990ÄêµÄ×ÜÈË¿Ú','FontName','Á¥Êé','FontSize',20)text(1990, 248.73,'<-Ö®ºóΪÄâºÏ

61、Êý¾Ý')legend('Ô­Êý¾Ý','ÄâºÏÇúÏß')五、实验注意事项1、插值运算时应变量和自变量确实定2、曲线拟合时逼近函数确实定六、思考题由离散点数据来确定函数的方法有函数插值和曲线拟合两种:假设测量值是准确的,没有误差,一般用 插值 ;假设测量值与真实值有误差,一般用 拟合 。实验项目序号8 MATLAB基本绘图一、实验目的掌握绘制MATLAB二维、三维和特殊

62、图形的常用函数;掌握绘制图形的辅助操作。二、实验基本知识1、基本的绘图指令§ 绘制函数plot函数§ 函数能够将向量或者矩阵中的数据绘制在图形窗体中,并且可以指定不同的线型和色彩§ 同一个plot函数可以一次绘制多条曲线§ 基本语法格式§ 绘制一条曲线plot(xdata,ydata,color_linestyle_marker)§ 绘制多条曲线plot(xdata1,ydata1,clm1,xdata2,ydata2,clm2,)2、使用子图§ 子图的功能§ 可以将图形窗体划分为多个图形显示区域,每个区域彼此独立

63、。§ 使用子图的方法§ 用subplot函数选择绘制区域§ subplot函数的基本用法 subplot(m,n,p) m图形窗体分割的行数 n图形窗体分割的列数 p选定的窗体区域的序号 以行元素优先顺序排列3、格式化绘图§ 使用函数title添加图形标题§ title(string)§ 标题将被自动地设置在轴的正中顶部§ 使用函数legend添加轴的图例§ Legend(string1,string2,)§ MATLAB可以为不同的坐标轴添加不同的坐标信息§ 使用函数xlabel、ylabel、zlabel分别为图形窗体的X轴、Y轴和Z轴添加轴标签§ xlabel(string)§ ylabel(string)§ zlabel(string)§ 使用函数text向图形窗体添加文本注释§ text(x,y,string)§ x和y是文本注释添加的坐标值4、特殊图形绘制§ 绘制对数坐标轴系曲线时,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论