实验02 Matlab程序操作

合集下载

实验MATLAB介绍及其基础操作

实验MATLAB介绍及其基础操作

实验一MATLAB介绍及其基础操作0800210402 冯晓霏1.实验目的:<1 )熟悉MATLAB软件的集成开发环境,学习常用窗口的功能和使用方法。

<2 )掌握帮助的使用方法以及搜索路径的添加方法。

<3 )掌握基本的MATLAB函数操作及其使用。

<4 )掌握简单的计算及其绘图操作。

<5 )了解M文件的编写和运行方法。

2.实验原理<1 )MATLAB 简介MATLAB是美国MathWorks公司开发的高性能的科学与工程计算软件。

经过几十年的扩充和完善,MATLAB已经发展成为集科学计算、可视化和编程于一体的高性能的科学计算语言和软件开发环境。

MATLAB的主要特点包括强大的矩阵计算能力、方便的绘图功能及仿真能力。

另外,MATLAB还附带了大量的专用工具箱,用于解决各种特定领域的问题。

通过学习软件的基本操作及其编程方法,体会和逐步掌握它在矩阵运算、信号处理等方面的功能及其具体应用。

通过本课程实验的学习,要求学生初步掌握MATLAB的使用方法,初步掌握M文件的编写和运行方法,初步将MATLAB运用于信号分析和系统分析中。

循序渐进地培养学生运用所学知识分析和解决问题的能力。

<2 )MATLAB 的工作界面<Desktop )MATLAB安装成功后,第一次启动时,主界面如下图< 不同版本可能有差异)所示:其中①是命令窗口<Command Window ),是MATLAB的主窗口,默认位于MATLAB 界面的右侧,用于输入命令、运行命令并显示运行结果。

②是历史命令窗<Command History ),位于MATLAB界面的左下侧,默认为前台显示。

历史命令窗用于保存用户输入过的所有的命令,为用户下一次使用同一个命令提供方便。

③是当前目录浏览器<Current Directory ),位于MATLAB界面的左上侧,默认为前台显示。

该窗口用于显示当前目录和目录中的所有文件。

matlab实验二

matlab实验二

北京工业大学Matlab实验报告**: ***学号: ************: **实验二、Matlab 的基本计算(一)实验目的1.掌握建立矩阵的方法。

2.掌握Matlab 各种表达式的书写规则以及常用函数的使用。

3.能用Matlab 进行基本的数组、矩阵运算。

4.掌握矩阵分析的方法以及能用矩阵运算或求逆法解线性方程组。

5.掌握Matlab 中的关系运算与逻辑运算。

(二)实验环境1.计算机2.MATLAB7.0集成环境(三)实验内容及要求1、熟练操作MATLAB7.0运行环境;2、自主编写程序,必要时参考相关资料;3、实验前应写出程序大致框架或完整的程序代码;4、完成实验报告。

(四)实验程序设计1.利用diag 等函数产生下列矩阵。

⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=032570800a ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=804050702b2.利用reshape 函数将1题中的a 和b 变换成行向量。

3.产生一个均匀分布在(-5,5)之间的随机矩阵(10×2),要求精确到小数点后一位。

4.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=731203321B求下列表达式的值:(1) B A K *611+=和I B A K +-=12(其中I 为单位矩阵)(2) B A K *21=和B A K *.22=(3) 331^A K =和3.32^A K =(4) B A K /41=和A B K \42=(5) ],[51B A K =和]2:);],3,1([[52^B A K = 5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.03216/15/14/15/14/13/14/13/12/1x x x(1)求方程的解(矩阵除法和求逆法)(2)将方程右边向量元素3b 改为0.53,再求解,并比较3b 的变化和解的相对变化。

实验2 Matlab绘图操作

实验2  Matlab绘图操作

实验2 Matlab 绘图操作实验目的:1、 掌握绘制二维图形的常用函数;2、 掌握绘制三维图形的常用函数;3、 掌握绘制图形的辅助操作。

实验内容:1. 设sin .cos x y x x ⎡⎤=+⎢⎥+⎣⎦23051,在x=0~2π区间取101点,绘制函数的曲线。

2. 已知: y x =21,cos()y x =22,y y y =⨯312,完成下列操作:(1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线;(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。

3.已知:ln(x x e y x x ⎧+≤⎪⎪=⎨⎪+>⎪⎩20102,在x -≤≤55区间绘制函数曲线。

4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。

5.在xy 平面内选择区域[][],,-⨯-8888,绘制函数z =6. 用plot 函数绘制下面分段函数的曲线。

,(),,x x f x x x x ⎧++>⎪==⎨⎪+<⎩235000507. 某工厂2005年度各季度产值(单位:万元)分别为:450.6、395.9、410.2、450.9,试绘制柱形图和饼图,并说明图形的实际意义。

8. 在同一坐标轴中绘制下列两条曲线并标注两曲线交叉点。

(1).y x =-205(2)sin()cos ,sin()sin x t tt y t tπ=⎧≤≤⎨=⎩303详细实验内容:1.设sin .cos x y x x ⎡⎤=+⎢⎥+⎣⎦23051,在x=0~2π区间取101点,绘制函数的曲线。

>> x=(0:2*pi/100:2*pi);>> y=(0.5+3*sin(x)/(1+x.^2))*cos(x); >> plot(x,y)2.已知: y x =21,cos()y x =22,y y y =⨯312,完成下列操作: (1)在同一坐标系下用不同的颜色和线性绘制三条曲线; >> x= linspace(0, 2*pi, 101);>> y1=x.*x; >> y2=cos(2x); >> y3=y1.*y2;plot(x,y1,'r:',x,y2,'b',x,y3, 'ko')(2)以子图形式绘制三条曲线;>> subplot(2,2,1),plot(x,y1)subplot(2,2,2),plot(x,y2)subplot(2,2,3),plot(x,y3)(3)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。

程序设计实验报告(matlab)

程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。

实验内容:运用Matlab进行简单的程序设计。

实验方法:基于Matlab环境下的简单程序设计。

实验结果:成功掌握简单的程序设计和Matlab基本编程语法。

实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。

实验内容:在Matlab环境下进行多项式拟合和插值的计算。

实验方法:结合Matlab的插值工具箱,进行相关的计算。

实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。

实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。

实验内容:利用Matlab进行最小二乘法计算。

实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。

实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。

实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。

实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。

实验方法:基于Matlab的ODE工具箱,进行ODE求解。

实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。

总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。

通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。

这些知识和技能对我未来的学习和工作都将有着重要的帮助。

2017年-matlab实验内容

2017年-matlab实验内容

2017年文化素质课 MATLAB实验实验一、MATLAB基本操与运算基础【实验目的】〔1〕熟悉MATLAB基本环境,掌握MATLAB变量的使用〔2〕掌握MATLAB数组的创建〔3〕掌握MA TLAB数组和矩阵的运算【实验内容及步骤】熟悉建立数组的方法:逐个元素输入法、冒号法、特殊方法〔使用函数linspace建立〕1、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(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?(3)设a=10,b=20;求i=a/b=?与j=a\b= ?(4)设a=[1 -2 3;4 5 -4;5 -6 7](5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?(6)请写出完成以下计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) %转化为列向量(8)写出以下指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B2、设有矩阵A和B,A=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 2223 24 25],B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11]1)求它们的乘积C2)将矩阵C的右下角3x2子矩阵赋给D3、完成以下操作1〕求[100,999]之间能被61整除的数及其个数〔提示:先利用冒号表达式,再利用find和length 函数。

Matlab使用方法和程序设计

Matlab使用方法和程序设计

实验一 Matlab使用方法和程序设计一、实验目的:1、掌握Matlab软件使用的基本方法2、熟悉Matlab的基本运算和程序控制语句3、熟悉Matlab程序设计和基本方法二、实验内容:1、求多项式的根:p(x)=x^4+2x^3+3x^2+5x+4源程序:a=[1 2 3 5 4];b=roots(a)运行结果:分析:调用roots(a),求多项式的根2、已知f= a^4*(b^2-c^2)+b^4*(c^2-a^2)+c^4*(a^2-b^2),试用符号运算的方法对其因式分解源程序:syms a b c;f=a^4*(b^2-c^2)+b^4*(c^2-a^2)+c^4*(a^2-b^2);R=factor(f)运行结果:分析:调用factor(s)对多项式进行因式分解3、编写一个函数,完成求和:S=1+3+5+,,,,,,+2i+1源程序:sum=0;for i=1:2:1000;sum=sum+i;endsum运行结果:分析:调用for循环完成求和,起始值为1,步长为2,终止值为1000 4、已知一传递函数。

F(s)=,试将其分解部分分式源程序:num=[1 2];den=[1 5 4];[res,poles,k]=residue(num,den)运行结果:分析:调用residue(num,den) 进行分解部分分式,num为传递函数的分子,den为传递函数的分母。

三、实验总结:本次实验使我掌握了Matlab软件使用的基本方法,熟悉了Matlab的基本运算和程序控制语句,熟悉Matlab程序设计和基本方法,让我将理论与实践相结合增强了自我动手能力,为以后的工作打下一定的基础。

实验二 Matlab使用方法和程序设计一、实验目的:1、掌握如何使用MATLAB进行系统时域分析2、掌握如何使用MATLAB进行系统频域分析3、掌握如何使用MATLAB进行系统根轨迹分析4、掌握如何使用MATLAB进行系统稳定性分析二、实验内容:时域分析:根据传递函数,绘制其单位阶跃响应曲线,并读出超调量。

MATLAB实验及程序

MATLAB实验及程序

实验一a=[1,2,3;4,5,6;7,8,9] b= repmat(a,2,2)B(24)=9实验二1、使用matlab命令统计randn(5)生成的矩阵里,有多少个元素小于0,将小于0元素个数存变量c中并将这些小于零元素存变量d中。

(实验报告要求:写出命令)a=randn(5)b=find(a<0);c=length(find(a<0))d=a(b)2、建立一个字符数组,内容如下所示:(实验报告要求:写出命令)A B C DE F G Ha b c da=['A B C D''E F G H''a b c d']3、已知有一个矩阵A(假如不知道其具体信息),请计算其元素个数(请先用实际矩阵来验证计算方法是否正确)。

(实验报告要求:写出正确计算方法的命令)A=randn(3,4)B=numel(A)4、已知有一个元胞数组B=[{ones(2,3,2)},{'Hello, Matlab'};{[4 5 6]},{1:100}],想获取字符串'Matlab',应输入什么命令?(实验报告要求:写出命令)f=B{1,2}(7:end)5、要从上题所建元胞数组B中获取列向量[4;5;6],可以有哪几种方法?(实验报告要求:写出命令及结果)方法1: i=B{2,1}(:)方法2: j=reshape(B{2,1},3,1)6、已知有两个学生的信息如下,请在matlab中创建结构对其进行存储,并算=['姓名''张三''李四']student.shuxue=[8778]student.yuwen=[7581 ]student.yingyu=[5560]实验三实验四:二维绘图(1)在同一个窗体(figure1)中画出正弦函数和余弦函数的图象。

要求如下:◆正弦图象用蓝色实线,时标用方格;◆余弦图象用黄色虚线,时标选向下三角形;◆为整个图像加中文标题;◆为x和y轴加轴标题;◆改x轴的单位为pi/2的倍数;◆增加图例;◆在图中合适的位置增加“正弦曲线”和“余弦曲线”两处文本信息。

实验二matlab矩阵分析与处理

实验二matlab矩阵分析与处理

《MATLAB及应用A》第二次上机作业一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。

求它在第10次落下时共经过多少米?第10次反弹多高?MATLAB源程序:MATLAB运行结果:二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB中复制)。

MATLAB源程序:x=linspace(0,6);y1=sin(2*x);y2=sin(x.^2);y3=(sin(x)).^2;各条命令语句的功能如下:y1、y2、y3的值分别为:三、教材第55页习题三,第3题。

MATLAB源程序:MATLAB运行结果:四、选择题(1) i=2; a=2i; b=2*i; c=2*sqrt(-1); 程序执行后,a, b, c的值分别是多少?()(A) a=4, b=4, c=2.0000i(B) a=4, b=2.0000i, c=2.0000i(C) a=2.0000i, b=4, c=2.0000i(D) a=2.0000i, b=2.0000i, c=2.0000i(2) 求解方程x4-4x3+12x-9 = 0 的所有解,其结果为()(A) 1.0000, 3.0000, 1.7321, -1.7321(B) 1.0000, 3.0000, 1.7321i, -1.7321i(C) 1.0000i, 3.0000i, 1.7321, -1.7321(D) -3.000-0i, 3.0000i, 1.7321, -1.7321五、求[100,1000]之间的全部素数(选做)。

MATLAB源程序: MATLAB运行结果:一、一球从100米高度自由落下,每次落地后反弹回原高度的一半,再落下。

求它在第10次落下时共经过多少米?第10次反弹多高?MATLAB源程序:>> a=(0:-1:-9) %产生一个行向量aa =0 -1 -2 -3 -4 -5 -6 -7 -8 -9>> b=pow2(a) %对行向量a中的每一个元素分别求幂函数b =1.0000 0.5000 0.2500 0.1250 0.0625 0.0313 0.0156 0.007 8 0.0039 0.0020>> h=100*b %对行向量b中的每一个元素分别乘以100h =100.0000 50.0000 25.0000 12.5000 6.2500 3.1250 1.5625 0. 7813 0.3906 0.1953>> s1=sum(h) %对行向量h中的元素求和s1 =199.8047>> s=s1*2-100 %求出第10次落下时经过的高度s =299.6094>> h10=h(10)/2 %求出第10次反弹的高度h10 =0.0977二、有如下一段MATLAB程序,请解释说明每个语句的功能,必要时用数学表达式(不是在MATLAB中的输入形式);并给出y1、y2、y3的值(可从MATLAB 中复制)。

MATLAB基本操作与及用法实验报告样本

MATLAB基本操作与及用法实验报告样本

工程数学课程实验报告(一)[一、实验名称]MATLAB 基本操作与用法[二、实验目的]1、掌握用MATLAB 命令窗口进行简单数学运算。

2、掌握常用的操作命令和快捷键。

3、了解MATLAB 的数据类型。

4、了解MATLAB 的操作符。

[三、实验原理]MATLAB 是美国MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink 两大部分。

MATLAB 是matrix&laboratory 两个词的组合,意为矩阵工厂(矩阵实验室)。

[四、实验条件]实验微机、Matlab 软件。

[五、实验内容和过程]1、在命令窗口依次输入下列命令,根据执行结果分析其功能;helpmagiclookforhelp magicdoc magicwhich magic2、以自己姓名拼音来建立自己的工作目录,再讲自己的工作目录设置到Matlab 搜索路径下。

用cd 命令查询自己的工作目录3、创建变量,并计算:(1) 创建single 类型变量a=98,b=168 ,求:a+b,a-b,b×a3,b×a×a×a(2) 创建uint8 类型变量m,n,值与( 1)同,进行相同计算。

4、先求下列表达式的值,然后记录Matlab 工作空间的使用情况和相关变量[六、实验结果]1、实验结果2、实验结果3、实验结果、实验结果[七、实验结果分析、讨论]根据记录命令和结果,解释实验 3 的(1)与(2)结果为何不同:因uint8 类型变量的最大值为255,当超过最大值时结果就等于255。

[八、实验结论]通过本次实验的学习后,学会用MATLAB 命令窗口进行简单数学运算,常用的操作命令和快捷键等操作。

补充了解语句:input disp sprintf fprintf syms sym max min mod ifswitch forroundnum2str simplifyplot plot3工程数学课程实验报告(二)[一、实验名称]MATLAB 软件在行列式运算中的应用[二、实验目的]1、了解MATLAB 软件在行列式运算中的应用。

MATLAB实验

MATLAB实验

实验一Matlab环境及命令窗口的使用实验目的与要求:熟练掌握MA TLAB的启动和退出;熟悉MATLAB的命令窗口;熟悉常用选单和工具栏;熟悉MATLAB桌面的其它窗口。

实验内容:启动MATLAB,熟悉各环境窗口及作用,熟悉file、edit、View等菜单下各选项的功能;熟悉工具栏中各项的功能;在命令窗口中,输入简单的命令操作;打开函数编辑窗,编写简单的程序并保存;打开演示程序(demo),开始其中的演示程序;退出MATLAB(exit、quit)。

实验二Matlab数值计算实验目的与要求:熟练掌握matlab变量的使用;熟练掌握矩阵的创建;熟悉掌握matlab的矩阵和数组的运算;熟悉matlab多项式的运算。

实验内容:给2×3阶矩阵变量a赋值(注意逗号与分号的使用),取其第2行第2个元素,取其第2行元素,取其第1列和第3列的元素;计算a/3、5*a、a+2等的值;生成2×3阶的全1矩阵x和3×3魔方矩阵y,计算a+y,x*y,x\y’,y^2,2^a;a.*x, a.\x,y.^2,2.^a的值。

多项式a=3x^5+4x^4+7x^3+9x+12,b=x^5-4x^4+3x^3-2x^+6,计算a+b,a*b,a/b,求b的根,当x=3时求a的值。

实验三 M文件的建立实验目的与要求:熟练掌握主程序文件的建立;熟练掌握函数文件的建立;熟悉M文件的调试;熟悉M文件的保存;熟悉M文件的运行。

实验内容:建立一个函数文件file1,定义函数f(x)=1/((x-2)^2+0.1)+1/((x-3)^4+0.01)- 4 ;建立一个主程序文件mainf,分别求出f(x)在[2,3]内的极小值,在2,3.5附近的零点,并绘制出其在[0,5]内的曲线及横轴(0,0),(0,5)。

Fminbnd(’f’,2,3),fzero(‘f’,2),fzero(‘f’,3.5),fplot(‘f’,[0,5]),line([0,5],[0,0])功能函数:文件名:file1.mfunction y=file1(x)y=1./((x-2).^2+.1)+1./((x-3).^4+.01)-4;end主程序文件:文件名:mainf.mclear,close allm=fminbnd('file1',2,3),hold on,plot(m,file1(m),'r')n=fzero('file1',2),hold on,plot(n,0,'b')z=fzero('file1',3.5),plot(z,0,'g')fplot('file1',[0,5])line([0,5],[0,0])实验四MATLAB计算的可视化实验目的与要求:熟练掌握Matlab二维曲线的设计;熟练掌握各种特殊图形的绘制;熟练掌握各种坐标控制语句的使用。

实验二-时域采样与频域采样及MATLAB程序

实验二-时域采样与频域采样及MATLAB程序

实验二时域采样与频域采样一实验目的1掌握时域连续信号经理想采样前后的频谱变化,加深对时域采样定理的理解2理解频率域采样定理,掌握频率域采样点数的选取原则二实验原理1时域采样定理对模拟信号“)以T进行时域等间隔采样,形成的釆样信号的频谱XJJQ)会以采样角频率2 (Q,=芋)为周期进行周期延拓,公式为:利用计算机计算上式并不容易,下面导出另外一个公式。

理想采样信号念⑴和模拟信号暫⑴之间的关系为:£(『)= %(0工郭-切n—x对上式进行傅里叶变换,得到:+30 -f-QQX a(jn)=匚[%(『)£ 刃-£ 匚心⑴d(t-nT)e-iai dtZI--«川―00在上式的积分号内只有当时,才有非零值,因此:X a(j^=^x a{nT)e-^T上式中,在数值上£(〃)= □),再将co=QT代入,得到:匕(山)=f兀何厂筲必丁= X(严)|亠勿上式说明采样信号的傅里叶变换可用相应序列的傅里叶变换得到,只要将自变量Q用代替即可。

2频域采样定理对信号x(n)的频谱函数X(e®在[0, 2刃上等间隔采样N点,得到X 伙)= X(严)“k = 0,l,2,..・,N — l则有:x N(n) = IDFT[X伙)h =[乞如iN)]恥)00即N点1DFT[X伙)]得到的序列就是原序列x(n)以N为周期进行周期延拓后的主值序列, 因此,频率域采样要使时域不发生混叠,则频域采样点数N必须大于等于时域离散信号的长度M (即N >M ),在满足频率域采样定理的条件下,心(")就是原序列.丫⑺)。

如果N>M,则g(”)比原序列x(〃)尾部多N —M个零点,反之,时域发生混叠,x N(n)与x(n)不等。

对比时域采样定理与频域采样定理,可以得到这样的结论:两个定理具有对偶性,即“时域采样,频谱周期延拓;频域釆样,时域信号周期延拓”。

在数字信号处理中,都必须服从这二个定理。

MATLAB实验2 MATLAB的矩阵操作(1)

MATLAB实验2  MATLAB的矩阵操作(1)
5、产生均值为3,方差为1的500个正态分布的随机序列
6、求特征值的方法求解方程
4x4+6x+3=0
(对比eig和roots、分析它们的不同和各自的应用范围)
7、P55思考练习3 , 5
实验过程中,请结合MATLAB的帮助系统。
四、实验操作过程与结果(写明使用到的函数及结算结果即可)
五、学生收获
MATLAB实验2MATLAB的矩阵操作(1)
班级专业:姓名:学号:日期:
一、实验目的
ห้องสมุดไป่ตู้1.熟悉MATLAB基本命令与操作;
2.熟悉MATLAB的矩阵运算;
3.了解MATLAB的多项式运算;
二、实验准备
通读书本第二章---MATLAB矩阵及其运算
三、实验内容
1.在命令窗口中键入表达式 ,并求 时 的值。
2. P54二.1
3.已知 , ,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:
(1)计算矩阵A的行列式的值
(2)分别计算下列各式:
、 和 、 、 、 、
4、产生3阶随机方阵,其元素为[10,60]区间的随机整数,然后判断A的元素是否能被5整除。(分析fix、rand、rem函数的使用方法)

实验二:MATLAB编程单纯形法求解

实验二:MATLAB编程单纯形法求解

实验二:MATLAB编程单纯形法求解北京联合大学实验报告项目名称:运筹学专题实验报告学院:自动化专业:物流工程班级: 1201B 学号:2021100358081 姓名:管水城成绩:2021 年 5 月 6 日实验二:MATLAB编程单纯形法求解一、实验目的:(1)使学生在程序设计方面得到进一步的训练;,掌握Matlab (C或VB)语言进行程序设计中一些常用方法。

(2)使学生对线性规划的单纯形法有更深的理解. 二、实验用仪器设备、器材或软件环境计算机, Matlab R2021三、算法步骤、计算框图、计算程序等本实验主要编写如下线性规划问题的计算程序:mincx?Ax?b s.t.??x?0,b?0其中初始可行基为松弛变量对应的列组成. 对于一般标准线性规划问题:mincx?Ax?b s.t.??x?0,b?01.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。

设初始基为B,然后执行如下步骤:?1Bx?bx?Bb,令xN?0,计算目标函数值f?cBxB BB(1).解,求得以bi(i?1,2,...,m)记B?1b的第i个分量?1wB?Cw?CBBB(2).计算单纯形乘子w, ,得到,对于非基变量,计算判别数?i?zi?ci?cBB?1pi?ci,可直接计算i?R??cBBA?c令?1 ?k?max{?},R为非基变量集合若判别数步?1By?py?Bpk;若yk?0,即yk的每个分量均非正数, kkk(3).解,得到?k?0 ,则得到一个最优基本可行解,运算结束;否则,转到下一则停止计算,问题不存在有限最优解,否则,进行步骤(4).确定下标r,使bryrk?min?t:ytk?0btytk,且ytk?0?xB为离基变量,rxk为进基变量,用pk替换pBr,得到新的基矩阵B,还回步骤(1);2、计算框图为:开始初始可行基B x?B?1b,x?0,f?cx 令BNBB计算单纯性乘子w?cBB?1,计算判别数?j?wpj?cj,j?R(非基变量)令?k?max{?j,j?R}?k?0是 ? 否得到最优解方程Byk?pk,得到yk?B?1pk,是 yk?0? 否不存在有限确定下标r,使得 ?b?br?min?i|yik?0? yrk?yik?xBr为退基变量,xk进基变量,以pk代替pBr,得到新的基矩阵B 图13.计算程序(Matlab):A=input('A=');b=input('b='); c=input('c=');format rat %可以让结果用分数输出[m,n]=size(A);E=1:m;E=E'; F=n-m+1:n;F=F';D=[E,F]; %创建一个一一映射,为了结果能够标准输出X=zeros(1,n); %初始化X感谢您的阅读,祝您生活愉快。

MATLAB实验

MATLAB实验

MATLAB实验1. 引言MATLAB(Matrix Laboratory)是一种专用于数值计算和数据可视化的高级编程语言。

它在科学、工程和商业领域得到了广泛应用。

本文档将介绍一些MATLAB的基本操作和实验,帮助读者快速上手并熟悉MATLAB环境。

2. 实验一:变量和运算符2.1 变量的定义和赋值在MATLAB中,可以使用赋值运算符“=”来给变量赋值。

例如:a = 1;b = 2;2.2 运算符的使用MATLAB支持基本的数学运算符,如加法、减法、乘法、除法等。

下面是一些例子:c = a + b; % 加法d = a - b; % 减法e = a * b; % 乘法f = a / b; % 除法2.3 MATLAB函数的调用MATLAB内置了许多常用的数学函数,可以直接调用。

例如,求平方根可以使用sqrt函数:x = sqrt(a);3. 实验二:矩阵和向量操作3.1 矩阵的定义和初始化在MATLAB中,可以使用矩阵来存储和处理数据。

矩阵可以通过直接赋值来定义,也可以通过函数来初始化。

例如:A = [123; 456; 789]; % 直接定义矩阵B = zeros(3, 3); % 初始化一个3x3的全零矩阵3.2 矩阵的运算MATLAB提供了丰富的矩阵运算功能,如加法、乘法、转置等。

下面是一些例子:C = A + B; % 矩阵加法D = A * B; % 矩阵乘法E = A'; % 矩阵转置3.3 向量的操作向量是一种特殊的矩阵,只有一列或一行。

可以使用向量进行各种数学运算。

例如:v = [123]; % 定义一个行向量w = [4; 5; 6]; % 定义一个列向量dot_product = v * w; % 向量点乘cross_product = cross(v, w); % 向量叉乘4. 实验三:控制流程和函数4.1 条件语句条件语句用于根据不同的条件执行不同的操作。

MATLAB 使用if-else语句来实现条件控制。

MATLAB实验报告

MATLAB实验报告

实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。

了解字符串的操作。

二、实验内容1.向量的生成与运算;2.矩阵的创建、引用和运算;3.多维数组的创建及运算;4.字符串的操作。

三、实验步骤1.向量的生成与运算①向量的生成向量的生成有三种方法:直接输入法:生成行向量、列向量;冒号表达式法:变量=初值:间隔(可正可负):终值函数法:使用linspace线性等分函数,logspace对数等分函数。

格式为:linspace(初值,终值,个数)Logspace(初值,终值,个数), 初值及终值均为10的次幂。

②向量的运算A=[1 2 3 4 5],b=3:7,计算两行向量的转置,两行向量人加、减,两列向量的加、减;向量的点积与叉积。

a=[1 2 3 4 5];b=3:7;a =1 2 3 4 5b =3 4 5 6 7at=a',bt=b'at =12345bt =34567e1=a+b,e2=a-be1 =4 6 8 10 12 e2 =-2 -2 -2 -2 -2 f1=at+bt,f2=at-btf1 =4561012f2 =-2-2-2-2-2g1=dot(a,b),g2=a*bt>> g1=dot(a,b),g2=a*btg1 =85g2 =85g4=a.*b>> g4=a.*bg4 =3 8 15 24 35A=1:3;B=4:6;g3=cross(A,B)>> g3=cross(a,b)g3 =-3 6 -3注意:g1和g2的结果是否相同,为什么?g4的结果与g1和g2结果是否一样,为什么?g1和g2的结果相同,因为两者是同一种运算;g4与g1和g2不相同,因为两者一个是点乘一个是叉乘,运算不一样。

2.矩阵的创建、引用和运算矩阵是由n×m元素构成的矩阵结构。

Matlab实验报告

Matlab实验报告

实验结果及分析实验1:程序如下x=1:10y=2*x;plot(x,y)仿真结果:实验结果分析:仿真结果是条很规则的直线,X轴和Y轴一一对应,清楚明了,而序又特别简单。

所以用Maltab 软件很方便地画出规则的直线,方便研究。

实验结果及分析1、A=2、A=1A=实验结果及分析实验三 Matlab在信号与系统中的应用实验名称实验1、掌握信号与系统课程中基本知识的Matlab编程、仿真方法目的实验原理实验1程序:b=[1];a=[1 1];p=;t=0:p:5;x=exp(-3*t);subplot(1,2,1);impulse(b,a,0:p:5);title('冲激响应');subplot(1,2,2);step(b,a,0:p:5);title('阶跃响应');实验内容<设计性实验>1、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)= exp(-3t)ε(t)的冲激响应、阶跃响应。

在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

<设计性实验>(选做)2、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)=(1+exp(-3t))ε(t)的冲激响应、阶跃响应,要求用conv编程实现系统响应。

在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。

实验结果及分析实验1仿真结果:simulink仿真环境下冲激响应阶跃响应实验名称实验四 Matlab在数字信号处理中的应用实验结果及分析实验1仿真结果:6khz12kHZ。

实验二MATLAB程序设计含实验报告

实验二MATLAB程序设计含实验报告

实验二 MATLAB 程序设计一、 实验目的1.掌握利用if 语句实现选择结构的方法。

2.掌握利用switch 语句实现多分支选择结构的方法。

3.掌握利用for 语句实现循环结构的方法。

4.掌握利用while 语句实现循环结构的方法。

5.掌握MATLAB 函数的编写及调试方法。

二、 实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。

M 文件的编写:启动MATLAB 后,点击File|New|M-File ,启动MATLAB 的程序编辑及调试器(Editor/Debugger ),编辑以下程序,点击File|Save 保存程序,注意文件名最好用英文字符。

点击Debug|Run 运行程序,在命令窗口查看运行结果,程序如有错误则改正三、 实验内容1.编写求解方程02=++c bx ax 的根的函数(这个方程不一定为一元二次方程,因c b a 、、的不同取值而定),这里应根据c b a 、、的不同取值分别处理,有输入参数提示,当0~,0,0===c b a 时应提示“为恒不等式!”。

并输入几组典型值加以检验。

(提示:提示输入使用input 函数)2.输入一个百分制成绩,要求输出成绩等级A+、A 、B 、C 、D 、E 。

其中100分为A+,90分~99分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分以下为E 。

要求:(1)用switch 语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

(提示:注意单元矩阵的用法)3.数论中一个有趣的题目:任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。

重复此过程,最终得到的结果为1。

如:2?13?10?5?16?8?4?2?16?3?10?5?16?8?4?2?1运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。

请为关键的Matlab 语句填写上相关注释,说明其含义或功能。

MATLAB实验报告一二三

MATLAB实验报告一二三

2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131 姓名:付云雷学号:132872一、实验目的:1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。

2、掌握MATLAB常用命令的使用。

3、掌握MATLAB帮助系统的使用。

4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。

二、实验内容:1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。

图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。

例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。

lookfor:用来寻找未知的命令。

例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。

找到所需的命令後,即可用help进一步找出其用法。

(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。

具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据3、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。

Matlab的使用方法及步骤详解

Matlab的使用方法及步骤详解

Matlab的使用方法及步骤详解一、Matlab简介Matlab是一种非常流行的科学计算软件,其全称为Matrix Laboratory(矩阵实验室)。

Matlab具有强大的数学计算和数据分析能力,广泛应用于工程、科学、经济等领域。

本文将详细介绍Matlab的使用方法及步骤。

二、安装与启动Matlab1. 下载与安装首先,访问MathWorks官方网站,找到适用于您操作系统的Matlab版本,并下载安装程序。

安装程序将引导您进行安装,按照提示完成即可。

2. 启动Matlab安装完成后,您可以在开始菜单或桌面上找到Matlab的启动图标。

点击启动图标,Matlab将打开并显示初始界面。

三、Matlab基本操作1. 工作区与编辑器Matlab的界面主要由工作区和编辑器组成。

工作区显示变量及其值,可用于查看和操作数据。

编辑器则用于编写和编辑Matlab脚本、函数等。

2. 脚本与命令窗口Matlab提供了两种主要的运行方式:脚本和命令窗口。

脚本是一系列命令的集合,可以一次性执行,适用于较复杂的计算任务。

命令窗口则可逐行输入命令并立即执行,用于快速测试和调试。

3. 基本算术和数学运算Matlab支持各种基本算术和数学运算,如加减乘除、幂运算、三角函数等。

可以直接在命令窗口输入表达式并执行。

四、数据操作与处理1. 数组的创建与操作在Matlab中,数组是最基本的数据结构之一。

可以使用多种方法创建数组,例如手动输入、加载外部文件、使用特定函数等。

一旦创建,可以对数组进行各种操作,如索引、切片、拼接等。

2. 矩阵运算Matlab对矩阵运算提供了强大的支持。

可以进行矩阵加减乘除、转置、求逆等运算。

矩阵运算在解决线性方程组、最小二乘拟合等问题时非常有用。

3. 数据可视化Matlab提供了丰富而强大的数据可视化功能。

使用plot、scatter、histogram等函数可以绘制各种类型的图表。

还可以对图表进行格式设置、添加标签、调整坐标轴等。

Matlab实验指导书(1-10完整)

Matlab实验指导书(1-10完整)
三、设计提示
1.初次接触 Matlab 应该注意函数表达式的文本式描述。 2.在使用图形函数计算器 funtool 时,注意观察 1 号和 2 号窗口中函数的图形。
四、实验报告要求
1.针对图形函数计算器 funtool,对每一类型计算记录其中一个图形的曲线。 2.书写实验报告时要结构合理,层次分明,在分析描述的时候,需要注意语言的
⎪⎪⎨⎪−x12+x11+4
x2 x2
− 7x3 − 7x3
−15x4 + 12 x4
− 6x5 = 294 − x5 = −441
⎪⎩6x1 +11x2 +11x3 − 9x4 −13x5 = 103
3.用网孔电流法求如下电路的各支路电流。
Ia
Ib
Id
Ic
60Ω
20Ω
40Ω
40Ω
50V
10V
40V
流畅。
《Matlab 语言及其在电子信息科学中的应用》实验指导书
许钢 编
3
实验二:M 文件和 Mat 文件操作
一、实验目的
1.定制自己的工作环境。 2.编写简单的 M 文件。 3.保存内存工作区中的变量到.mat 文件。 4.学会只用 Matlab 帮助。
二、实验内容
1.使用 format 命令和 File|Peferences 菜单定制自己的工作环境。 2.编写如下 M 文件,试调整参数 a 的大小,观察并记录 y1、y2 的波形特征。
《Matlab 语言及其在电子信息科学中的应用》实验指导书
许钢 编
4.用结点电压法求如下电路的结点电压 un1、un2。
① + u2 - ②
2kΩ
10A
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验02 Matlab程序设计实验目的:1.掌握脚本式M文件和函数式M文件的编写、调试和运行;2.掌握从分析问题到算法设计再到程序实现的全过程。

实验内容:1.编写求[200,300]之间第一个能被21整除的整数的脚本式M文件,并给出运行的方法和结果。

2.编写用5次多项式拟合函数y=sin(x),x∈[0,2π]的脚本式M文件,要求绘图观察拟合的效果。

3.编写求多项式P(x)=a n x n+a n-1x n-1+…+a1x+a0的值的函数式M文件(不能调用函数polyval),要求通过实例调试通过。

4.编写计算第n个Fibonnaci数的函数式M文件,并应用它求第15个Fibonnaci数。

5.按“题目分析→程序设计→实现算法的程序→实例应用”的步骤解决下面的问题。

救援问题:假设洪水把一个村庄淹没了,只有那些比较高的房屋的屋顶露出水面,人们已经爬上屋顶等待求援。

如右图,在图的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。

图中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表示。

救生船每次从大本营出发,以速度50米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每人上船1分钟,船原路返回,达到大本营,每人下船0.5分钟。

假设原点与任意一个屋顶的连线不穿过其它屋顶。

假设屋顶数为50,给定屋顶数以及每个屋顶的坐标和人数,求出所有人都到达大本营并登陆所用的时间。

并输出所有屋顶的坐标和人数。

6.按“题目分析→程序设计→算法描述→实现算法的程序→实例应用”的步骤解决下面的问题。

奖金问题:过年了,村里要庆祝一下。

村长对村里的128个村民说:做一个游戏,让每个人把出生年+月+日得到一个数。

例如:1968年10月28日=1968+10+28=2006。

然后把这个数报上来。

村里有一笔钱要作为游戏的奖金,数额为M元。

如果有人报上来的数字与M相同,就把这笔钱发给这些人。

如果只有一个人得奖,奖金都归这个人。

如果有多于一个人得奖,则他们平分这笔钱。

请写一个程序算算都有哪些人得到了奖金?得到多少?实验仪器与软件:1.CPU主频在2GHz以上,内存在512Mb以上的PC;2.Matlab 2010a及以上版本。

实验讲评:实验成绩:评阅教师:2011年月日实验02 Matlab程序设计一、求[200,300]之间第一个能被21整除的整数的脚本式M文件脚本式M文件如下:clcclearfor n=100:200 %生成100到200之间的整数if rem(n,21)~=0 %如果n不能被21整除continueendbreakendn二、用5次多项式拟合函数y=sin(x),x∈[0,2π]的脚本式M文件脚本式M文件如下:clcclearx=0:pi/20:2*pi;y=sin(x);p=polyfit(x,y,5)x1=0:pi/30:pi*2;y1=sin(x1);y2=polyval(p,x1);plot(x1,y1,'k-',x1,y2,'mv')legend('原曲线','拟合曲线')三、求多项式P(x)=a n x n+a n-1x n-1+…+a1x+a0的值的函数式M文件函数式M文件程序如下:%求多项式p(x)=anxn+an-1xn-1+…+a1x+a0的值%n代表多项式的次数function y=polynomial(n,x)n=input('请依次输入多项式的次数n:')y=0;coe=zeros(1,n+1)for i=1:n+1coe(i)=input('请依次输入多项式的系数:');enddisp('你输入的多项式如下:')poly2sym(coe)x=input('请输入多项式中x的值:')disp('多项式的值为:')for i=1:n+1y=y+coe(i)*x^(n+1-i);end函数式M文件已保存在可搜索途径范围内四、计算第n个Fibonnaci数的函数式M文件函数式M文件程序如下:function F=Fb(n)%计算第n个Fibonnaci数列%n表示下标F(1)=1;F(2)=1;for i=3:nF(i)=F(i-1)+F(i-2);endend函数式M文件已保存在可搜索途径范围内。

五、救援问题的解决1.题目分析根据题目分析可以把这个问题转化为一个简单的求和问题。

可以单独计算出每个屋顶上的人到达大本营的时间,然后把所有时间相加即可。

计算公式如下:totalTime=totalTime+2*(sqrt(roofx(i)^2+roofy(i)^2)/speen)+roofp(i)*(up+down)其中,totalTime是要求的总时间,N是屋顶数(本题中为50),speed是船行驶的速度(本题中为50(米/分钟)),roof(i)是第i个屋顶的坐标,roofp(i) 是第i个屋顶上的人数。

因为要在计算后输出所有屋顶位置和人数,所以需要保存所有屋顶和人数信息。

2.程序设计⑴定义一个结构类型数组存放屋顶信息。

⑵依次读入屋顶及其上的人数信息,并保存起来。

⑶计算所需营救时间。

⑷输出营救时间和所有屋顶坐标及人数。

3.实现算法的程序%救援问题%假设原点与任意一个屋顶的连线不穿过其它屋顶。

假设屋顶数为50%给定屋顶数以及每个屋顶的坐标和人数,求出所有人都到达大本营并登陆所用的时间。

%并输出所有屋顶的坐标和人数。

clearnum=50; %屋顶数speen=50; %船速(m/min)up=1; %上船时间down=0.5; %下船时间totalTime=0; %救援总时间disp('请依次输入屋顶横坐标:')roofx=zeros(1,num); %定义一个一维数组存放屋顶的横坐标for i=1:numroofx(i)=input('x(i):');enddisp('请依次输入屋顶纵坐标:')roofy=zeros(1,num); %定义一个一维数组存放屋顶的纵坐标for i=1:numroofy(i)=input('y(i):');enddisp('请依次输入屋顶人数:')roofp=zeros(1,num); %定义一个一维数组存放屋顶人数for i=1:numroofp(i)=input('p(i):');enddisp('第i个屋顶坐标(x,y)和人数p(i)依次为:')for i=1:num %输出屋顶坐标及人数fprintf('(%g,%g)\n',roofx(i),roofy(i))fprintf('%g\n',roofp(i))fprintf('\n')endfor i=1:num %计算总救援时间totalTime=totalTime+2*(sqrt(roofx(i)^2+roofy(i)^2)/speen)+roofp(i)*(up+down); enddisp('总救援时间:') %输出救援时间totalTime4.实例应用在上述程序中需要重复输入50个数据才能显示运行结果。

太过繁琐。

所以我们只计算3个屋顶的。

令:num= 2; %屋顶数speen=5; %船速(m/min)程序运行后,依次输入6个数:1、2、3、4、5、6程序运行结果如下:%救援问题%假设原点与任意一个屋顶的连线不穿过其它屋顶。

假设屋顶数为50%给定屋顶数以及每个屋顶的坐标和人数,求出所有人都到达大本营并登陆所用的时间。

%并输出所有屋顶的坐标和人数。

clearnum=2; %屋顶数speen=5; %船速(m/min)up=1; %上船时间down=0.5; %下船时间totalTime=0; %救援总时间disp('请依次输入屋顶横坐标:')roofx=zeros(1,num); %定义一个一维数组存放屋顶的横坐标for i=1:numroofx(i)=input('x(i):');enddisp('请依次输入屋顶纵坐标:')roofy=zeros(1,num); %定义一个一维数组存放屋顶的纵坐标for i=1:numroofy(i)=input('y(i):');enddisp('请依次输入屋顶人数:')roofp=zeros(1,num); %定义一个一维数组存放屋顶人数for i=1:numroofp(i)=input('p(i):');enddisp('第i个屋顶坐标(x,y)和人数p(i)依次为:')for i=1:num %输出屋顶坐标及人数fprintf('(%g,%g)\n',roofx(i),roofy(i))fprintf('%g\n',roofp(i))fprintf('\n')endfor i=1:num %计算总救援时间totalTime=totalTime+2*(sqrt(roofx(i)^2+roofy(i)^2)/speen)+roofp(i)*(up+down );enddisp('总救援时间:') %输出救援时间totalTime六、奖金问题的解决1.题目分析首先会想到想要把128个村民报的数字读进来,本题其实就是要求一边读一边判断这128个村民报的数字是否与M相同,如果相同就记下这个村民的编号,并累积获奖村名个数,最后记下来的获奖个数去除M,得到每个人所得的奖金数。

可是事先并不知道有多少人会获奖,那么用什么样的变量来存储获奖者编号呢?如果用128个变量来存储每个村民是否获奖就太繁琐了。

所以要介绍一种称为数组的数据结构来帮助解决这个问题。

2.程序设计可以先把村民的编号,然后用一个称为数组的数据结构来存储所有村民报的赎回自。

用另一个数组存储所报数字与M相同的村民的编号。

再用一个整数来存储所报数字等于M的村民的人数。

3.算法描述⑴定义一个数组存放所有的村民上报的数据。

⑵定义一个数组存放获奖者的编号(幸运者数组)。

⑶定义一个整数存放获奖者人数。

⑷村民顺序上报数字,其相应编号就是存放数据的数组元素下标:0,2,3…。

⑸报上数字与幸运数相等,则a、记录编号到幸运者数组中。

b、获奖者人数加1。

⑹打印出获奖者编号和获得的奖金数额。

4.实现算法的程序%奖金问题。

clearlucky_m=2006; %幸运数字population=128; %村民人数sum_nms=0;n=0;disp('请输入population个村民报的数字:')nms=zeros(1,population);for i=1:populationnms(i)=input('输入数字:');endfor i=1:populationsum_nms=sum_nms+nms(i);endfor i=1:populationif nms(i)==lucky_mn=n+1; %统计获奖村民人数disp('获奖村民是第i个:')i %输出是第几个村民获奖endenddisp('共有n个村民获奖:')ndisp('获奖村民获得的奖金数:')ave=sum_nms/n %获奖村民获得的奖金数5.实例应用在上述程序中需要重复输入128个数据才能显示运行结果。

相关文档
最新文档