您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 辽工大仿真技术综合设计_Matlab
课程设计题目:Matlab报告班级:姓名:学号:指导教师:成绩:仿真技术综合设计报告电子与信息工程学院信息与通信工程系11求最大值和最小值1.1题目输入10个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。1.2用到的函数input:请求用户输入max:取数组中的最大值min:取数组中最小值1.2流程图图1-1求最大值最小值流程图1.4运行截图2图1-2调用max和min函数运行截图图1-2运用循环方法运行截图32求Fibonacci数列2.1题目求Fibonacci数列。(1)大于4000的最小项.(2)5000之内的项数2.2什么是Fibonacci数列即斐波那契数,亦称之为斐波那契数列(意大利语:SuccessionediFibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n=2,n∈N*),用文字来说,就是斐波那契数列列由0和1开始,之后的斐波那契数列系数就由之前的两数相加。(百度百科)2.2用到的函数length取得一个对象的长度2.3流程图图2-12求Fibonacci数列流程图2.4运行截图4图2-2Fibonacci运行截图3用求逆解法和直接解法解方程组3.1题目解方程组Ax=b,分别用求逆解法与直接解法求其解3.2用到的函数inv矩阵求逆3.3流程图5图3-1用求逆解法和直接解法解方程组流程图3.4运行截图图3-2用求逆解法和直接解法解方程组运行截图4求N阶方阵A的行列式4.1题目6编一个m程序,求N阶方阵A的行列式的值。4.2用到的函数size(A):获取矩阵的行数和列数,当只有一个输出参数时,返回一个行向量,该行向量的第一个元素是数组的行数,第二个元素是数组的列数(多维,而length是取最大的那一维)。4.3流程图图4-1求N阶方阵A的行列式流程图4.4运行截图图4-2求N阶方阵A的行列式运行截图75计算xi=0.2*i各点上的P(xi)5.1题目今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。用到的函数poly2sym:把系数数组转换为符号多项式.5.2流程图图5-1计算xi=0.2*i各点上的P(xi)流程图5.3运行截图图5-2计算xi=0.2*i各点上的P(xi)运行截图86一维数组倒序6.1题目试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。如N=5,原来x为:x=[13579]而经过颠倒处理后x中数据的次序应该为:x=[97531]用到的函数rot90:旋转数组90°(倒序).6.2流程图图6-1一维数组倒序流程图6.3运行截图图6-2一维数组倒序运行截图97绘制二维曲线7.1题目在[02π]范围内绘制二维曲线图y=sin(x)*cos(5x)。用到的函数plot:二维曲线绘图。7.2流程图图7-1绘制二维曲线流程图7.3运行截图图7-2绘制二维曲线运行截图108名字转二进制再以脉冲绘图输出5.1题目把自己姓名中的各个拼音字母(小写)所对应的ASCII值转换为二进制序列,并用二进制脉冲绘图表示出来。用到的函数double:用double强制转换后得到的是ASCII值.dec2bin:dec2bin把ASCII转换成一个字符串形式表示的二进制数.str2num:string转number.stem:stem画出来是离散函数,杆图。plot是连续函数.流程图图8-1名字转二进制再以脉冲绘图输出流程图8.2运行截图11图8-2名字转二进制再以脉冲绘图输出运行截图图5-25计算xi=0.2*i各点上的P(xi)运行截图9GUI与SIMULINK9.1题目设计一个第七章提到的GUI界面、第八章提到的SIMULINK模型的设计。9.2流程图图9-1GUI与SIMULINK流程图129.3设计思路总因为题目要求是设计需要结合GUI界面以及Simulink,所以决定尝试运用GUI来控制Simulink中的参数,实现两者的结合,首先要在Simulink中设计了一个简单的仿真电路,接着进行GUI的设计,最后是编写脚本,通过get函数获取相应参数,再运用set_param更改相应Simulink中的参数,最后用sim函数运行,再通过axes和plot讲结果显示到GUI上即完成了一个GUI结合Simulink的简单设计。9.4运行截图图9-2GUI与SIMULINK运行截图9.5不足及改进首先是界面上,由于水平有限以及时间的仓促,没有设计出比较科学的界面,界面不够美观,同时有个很大的问题,就是脚本将scope的前十个数显示在坐标上时,可能会因为不够十个数而发生数组越界的报错,如果是大于了10个数,没有什么问题,这是不行的,在日后还要改进,另外就是结束按钮的功能,因为水平有限,研究了半天,还是没整出来,还需更加努力。10拉普拉斯变换1310.1题目求信号f(t)=t*(e^-3)*u(t)的拉普拉斯变换.用到的函数laplace:进行拉普拉斯变换.10.2流程图图10-1拉普拉斯变换流程图10.3运行截图图10-2拉普拉斯变换运行截图11拉普拉斯逆变换1411.1题目求F(s)=(s^3+5s^2+9s+7)/(s^2+3s+2)的拉普拉斯反变换。用到的函数ilaplace:进行拉普拉斯反变换.11.2流程图图11-1拉普拉斯反变换流程图11.3运行截图图11-2拉普拉斯反变换运行截图12傅里叶变换12.1题目求信号f(t)=u(t+1)-u(t-1)的傅里叶变换15用到的函数fourier:傅里叶变换函数.12.2流程图图12-1傅里叶变换流程图12.3运行截图图12-2傅里叶变换运行截图13实验心得通过这次学习,我对matlab这个软件有了更加熟悉的认识,特别是学到了交互式的GUI编程,感觉很方便,也很容易上手。对于matlab语言,感觉和其他语言比较起来,也是十分类似,在有了其他几门编程语言的基础上,基本上没有什么难度,并且matlab内置了许多函数,在解决某些问题方面,只需要一个16函数就可以搞定了,很方便。14附件14.1求最大值最小值代码fori=1:10a(i)=input('pleaseinputanumber:');endmaxa=max(a);mina=min(a);maxamina%运行后会在命令窗出现fori=1:10a(i)=input('请输入10个数字:');endmaxa=a(1);mina=a(1);fori=2:10;ifmaxaa(i)maxa=a(i);endifminaa(i)mina=a(i);endendmaxamina14.2质求Fibonccif(1)=1;f(2)=1;fori=3:30;%猜f(i)=f(i-1)+f(i-2);endfx=fy=length(x);fori=1:yifx(i)4000&x(i)500017b=x(i);disp('min='),disp(b(1))disp('i='),disp(i)%肯定只有一个了endend14.3用求逆解法和直接解法解方程组源代码A=[2-1000;-12-100;0-12-10;00-12-1;000-12];b=[1;0;0;0;0];x=inv(A)*bx=A\b14.4位数求和源代码functions=mydet(A)n=size(A);if(n(1)~=n(2))%行不等于列,也就不是方阵return;endn=n(1);if(n==1)%只有一行的也不用算了s=A;return;ends=0;fori=1:ns=s-(-1)^i*A(1,i)*mydet(A(2:n,[1:i-1i+1:n]));%1:i-1表示一个行向量:1,2,3,...,i-1%i+1:n表示另一个行向量:i+1,i+2,...,n%逗号用于按行连接上述两个行向量,得到1,2,3,...,i-1,i+1,i+2,...,n%A(2:n,[1:i-1i+1:n])取这一列的所有元素%行列式的值:现将左下部分等价转换为零,然后对角线上的各数的积即为其值。end14.5计算xi=0.2*i各点上的P(xi)源代码p1=[1.00.00.0-2.01.0];p2=[0.00.01.04.0-0.5];p1x=poly2sym(p1);%把系数数组转换为符号多项式。p2x=poly2sym(p2);%第二个参数没有就是默认用x。disp(p1x);disp(p2x);p=p1x+p2xdisp(p);14.6一位数组倒序源代码18x=[13579]xx=rot90(rot90(x))14.7绘制二维曲线源代码x=0:pi/10:2*pi;%单调递增的数列{0pi/10pi/10*2...2*pi}pi就是圆周率y=sin(x).*cos(5*x);%y中的每一个值都是通过x中对应位置的值算出来的;plot(x,y)14.8名字转二进制再以脉冲绘图输出源代码name='lugang';%b=dec2bin(int8(s))b=double(name)%用double强制转换后得到的是ASCII值c=dec2bin(b)%dec2bin把ASCII转换成一个字符串形式表示的二进制数c=c'%转置%转置格式不一样:A'中的A是[mxn]的矩阵;A.'中的A是[nx1]的向量stem(str2num(c(:)))%string转number%stem画出来是离散函数,杆图。plot是连续函数14.9GUI与SIMULINKfunctionvarargout=LG(varargin)%LGM-fileforLG.fig%LG,byitself,createsanewLGorraisestheexisting%singleton*.%H=LGreturnsthehandletoanewLGorthehandleto%theexistingsingleton*.%LG('Property','Value',...)createsanewLGusingthe%givenpropertyvaluepairs.Unrecognizedpropertiesarepassed%varargintoLG_OpeningFcn.Thiscallingsyntaxproducesa%warningwhenthereisanexistingsingleton*.%%LG('CALLBACK')andLG('CALLBACK',hObject,...)callthe%localfunctionnamedCALLBACKinLG.Mwiththegiveninput%arguments.%%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%%Seealso:GUIDE,GUIDATA,GUIHANDLES%EdittheabovetexttomodifytheresponsetohelpLG19%LastModifiedbyGUIDEv2.525-Jun-201619:43:29%Begininitializationcode-DONOTEDITgui_Singleton=1;%你第一次运行gui的时候,没有关闭%第二次再运行的时候,matlab不会新开一个gui,而是把第一次那个gui拿到前面。gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@LG_OpeningFcn,...'gui_OutputFcn',@LG_Outpu
本文标题:辽工大仿真技术综合设计_Matlab
链接地址:https://www.777doc.com/doc-5192272 .html