MATLAB 作业

合集下载

matlab作业

matlab作业

实验三某厂利用a、b、c三种原料生产A、B、C三种产品,已知生产每种产品在消耗原料方面的各项技术条件和单位产品的利润,以及可利用的各种原料的量,是制定适当的生产规划使得该厂的总利润最大。

对于这个问题,可先将该问题转化为数学模型。

Z=2x1+4x2+3x3X1+3x2+2x3<=802x1+x2+2x3<=403x1+4x2+2x3<=60X1,x2,x3>=0据此可以画出图形,可依靠图形来求出Z的最大值。

c=[-2 -4 -3]A=[1 3 2;2 1 2;3 4 2]b=[60 40 80]lb=[0 0 0][x,f,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。

就可得出结果。

结果如下:x =4.000012.000010.0000f =-86.0000exitflag =1output =iterations: 7cgiterations: 0algorithm: 'lipsol'由上述结果可以知道当A、B、C分别生产4,12,10 公斤时,总利润最大,可达到86。

某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。

工厂每天可利用的工时为12个,可供应的原料为15公斤。

为使总利润为最大,试确定日生产计划和最大利润。

对于这个问题,可先将该问题转化为数学模型。

Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15据此可以画出图形,可依靠图形来求出Z的最大值。

c=[-2 -3 -5]A=[2 3 1;3 1 5]b=[12;15]lb=[0 0 0][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。

就可得出结果。

Matlab大作业

Matlab大作业

Matlab的基本操作一、使用函数实现对下列矩阵的左旋和右旋以及反转已知答案:如图:矩阵如图矩阵的左旋如图一矩阵的右旋如图二矩阵的左右反转如图三矩阵的上下反转如图四二、已知A=[8 9 5 ] B=[-1 3 -2][36 -7 11] [2 0 3][21 -8 5] [-3 1 9 ]计算:1)A+5*B;2)A*B和A.*B3)A^3和A.^34)A/B和B\A5)[A,B]答案:A=[8 9 5;36 -7 11;21 -8 5];B=[-1 3 -2;2 0 3;-3 1 9];A+5*BA*BA.*BA^3A.^3A/BA\B[A,B]程序运行结果如下:第二章、Matlab程序设计一、已知S=1+2+22+23+…+263求S的值答案:代码如下:ClearClcs=0,j=2for i=1:63s=s+j^iends程序运行结果如下:二、第三章、Matlab绘图一、在同一坐标系中画出下列函数的图像:x2,-x2,xsin(x)在[0,2π]上的函数图像程序代码如下:clearclcx=0:pi/100:2*pi;y1=x.^2;y2=-x.^2;y3=x.*sin(x);title('同一坐标下的函数图像')plot(x,y1,':',x,y2,'h',x,y3,'--')程序运行结果如下:二、绘制极坐标图像:程序代码如下:clearclcx=0:0.01:2*pi;y=2*cos(2*(x-pi/8));title('极坐标图像')xlabel('x')ylabel('y')polar(x,y)程序运行结果如下:第四章、Matlab符号运算一、求函数y=e-x2 的傅立叶变换及其逆变换程序代码如下:clearclcsyms x t;y=exp(-x^2);Ft=fourier(y,x,t)fx=ifourier(Ft,t,x)程序运行结果如下:二、求下列极限值:答案:1、程序代码:clearclcsyms x;s1=sin(2*x)/sin(5*x);limit(s1,x,0)s2=(1+1/x)^(2*x);limit(s2,x,inf)程序运行结果如下:第五章、Matlab数值运算一、建立一个3*4阶随机矩阵,求矩阵的最大值、最小值、方差和标准差、极差、协方差,和自相关阵程序代码如下:clearclcA=rand(3,4)B=var(A)C=std(A)D=range(A)E=cov(A)F=corrcoef(A)程序运行结果如下:二、求函数f(x)=x3-2x+1在x=[-1 1]之间的极小值和x=-1附近的零点程序代码如下:clearclc[x,y]=fminbnd('x.^3-2.*x+1',-1,1)[x,y]=fzero('x.^3-2.*x+1',-1)程序运行结果如下:第六章、Matlab图形用户界面一、建立一个具有三个输入框的窗口对话框程序代码如下:clearclcprompt={'姓名','年龄','班级'};DTitle='注册学生信息';line[1;1;1];def{'乔阳','18','100412105'};info=inputdlg(prompt,DTitle,line,def,'ON')程序运行结果如下:二、设计一个表现下载进度的进度条程序代码如下:clearclch = waitbar(0,'正在下载,请稍等……');for i=1:1000waitbar(i/10000,h)endclose(h)程序运行结果如下:第七章、Matlab Simulink 仿真一、仿真信号x(t)=sin(t)sin(10t)的波形仿真步骤:1.建立模型窗口:生成无标题(intitled)的模型窗口;2.添加信号源模块(sine)、输出模块(scope)、数学模块(Dot product)3.设置模块参数:如下图:4.编辑模块即将各个模块连接起来。

matlab1-8章课后作业

matlab1-8章课后作业

MATLAB基础教程1~8章作业Matlab第一章1.阐述Matlab的功能Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。

Matlab的基本功能包括:数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink建模仿真功能、自动代码生成功能。

Matlab第二章1.创建double的变量,并进行计算。

(1)a=87,b=190,计算a+b、a-b、a*b。

(2)创建uint8 类型的变量,数值与(1)中相同,进行相同的计算。

>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =>> c*dans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u)ans =15.4189>> sqrt(u-3*v)/(u*v)ans =0 + 0.4410i4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)ans =22.0000 -14.0000i>> sin(2-8*i)ans =1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。

MATLAB作业4-1

MATLAB作业4-1

MATLAB作业4-1MATLAB 作业41、⽤2sin(103)y t =+在(0,3)区间内⽣成⼀组较稀疏的数据,并⽤⼀维数据插值的⽅法对给出的数据进⾏曲线拟合,并将结果与理论曲线相⽐较。

解:2、⽤242231(,)sin()3x y f x y e xy x y x y--=++原型函数⽣成⼀组⽹络数据或随机数据,分别拟合出曲⾯,并和原曲⾯进⾏⽐较。

解:⽹格数据:随机数据:x∈-区间内的光滑函数曲线,⽐较各种插值算法3、假设已知⼀组数据,试⽤插值⽅法绘制出(2,4.9)>> x=[-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,...1.6,1.9,2.2,2.5,2.8,3.1,3.4,3.7,4,4.3,4.6,4.9];y=[0.10289,0.11741,0.13158,0.14483,0.15656,0.16622,0.17332,...0.1775,0.17853,0.17635,0.17109,0.16302,0.15255,0.1402,...0.12655,0.11219,0.09768,0.08353,0.07019,0.05786,0.04687,...0.03729,0.02914,0.02236];解:x y在(0.1,0.1)~(1.1,1.1)区域内的点进⾏插值,并⽤三维曲⾯4、假设已知实测数据由下表给出,试对(,)>> [x,y]=meshgrid(0.1:0.1:1.1);z=[0.83041,0.82727,0.82406,0.82098,0.81824,0.8161,0.81481,0.81463,0.81579,0.81853,0.82304 ;0.83172,0.83249,0.83584,0.84201,0.85125,0.86376,0.87975,0.89935,0.92263,0.94959,0.9801; 0.83587,0.84345,0.85631,0.87466,0.89867,0.9284,0.96377,1.0045,1.0502,1.1,1.1529;0.84286,0.86013,0.88537,0.91865,0.95985,1.0086,1.0642,1.1253,1.1904,1.257,1.3222;0.85268,0.88251,0.92286,0.97346,1.0336,1.1019,1.1764,1.254,1.3308,1.4017,1.4605;0.86532,0.91049,0.96847,1.0383,1.118,1.2046,1.2937,1.3793,1.4539,1.5086,1.5335;0.88078,0.94396,1.0217,1.1118,1.2102,1.311,1.4063,1.4859,1.5377,1.5484,1.5052;0.89904,0.98276,1.082,1.1922,1.3061,1.4138,1.5021,1.5555,1.5573,1.4915,1.346;0.92006,1.0266,1.1482,1.2768,1.4005,1.5034,1.5661,1.5678,1.4889,1.3156,1.0454;0.94381,1.0752,1.2191,1.3624,1.4866,1.5684,1.5821,1.5032,1.315,1.0155,0.62477;0.97023,1.1279,1.2929,1.4448,1.5564,1.5964,1.5341,1.3473,1.0321,0.61268,0.14763];解:5、习题3和4给出的数据分别为⼀元数据和⼆元数据,试⽤分段三次样条函数和B样条函数对其进⾏拟合。

MATLAB作业

MATLAB作业

MATLAB作业⼀、必答题:1. MATLAB系统由那些部分组成?答:MATLAB系统主要由开发环境、MATLAB语⾔、MATLAB数学函数库、图形功能和应⽤程序接⼝五个部分组成。

2. 如何启动M⽂件编辑/调试器?答:在操作界⾯上选择“建⽴新⽂件”或“打开⽂件”操作时,M⽂件编辑/调试器将被启动。

在命令窗⼝中键⼊“edit”命令也可以启动M⽂件编辑/调试器。

3. 存储在⼯作空间中的数组能编辑吗?如何操作?答:存储在⼯作空间的数组可以通过数组编辑器进⾏编辑:在⼯作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输⼊修改内容即可。

4. 在MATLAB中有⼏种获得帮助的途径?答:在MATLAB中有多种获得帮助的途径:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;(2)help命令:在命令窗⼝键⼊“help” 命令可以列出帮助主题,键⼊“help 函数名”可以得到指定函数的在线帮助信息;(3)lookfor命令:在命令窗⼝键⼊“lookfor 关键词”可以搜索出⼀系列与给定关键词相关的命令和函数(4)模糊查询:输⼊命令的前⼏个字母,然后按Tab键,就可以列出所有以这⼏个字母开始的命令和函数。

5. 有⼏种建⽴矩阵的⽅法?各有什么优点?答:(1)以直接列出元素的形式输⼊;(2)通过语句和函数产⽣;(3).在m⽂件中创建矩阵;(4)从外部的数据⽂件中装⼊。

6. 命令⽂件与函数⽂件的主要区别是什么?答:命令⽂件: M⽂件中最简单的⼀种,不需输出输⼊参数,⽤M ⽂件可以控制⼯作空间的所有数据。

运⾏过程中产⽣的变量都是全局变量。

运⾏⼀个命令⽂件等价于从命令窗⼝中顺序运⾏⽂件⾥的命令,程序不需要预先定义,只要依次将命令编辑在命令⽂件中即可。

函数⽂件:如果M⽂件的第⼀个可执⾏⾏以function开始,便是函数⽂件,每⼀个函数⽂件定义⼀个函数。

MATLB实验作业

MATLB实验作业

实验一MATLAB运算基础1、用逻辑表达式求下列分段函数的值。

t=0:0.5:2.5y=t.^2.*((t>=0)&(t<1))+(t.^2-1).*(( t>=1)&(t<2))+(t.^2-2*t+1).*((t>=2 )&(t<3))2、求[100,999]之间能被21整除的数的个数。

p=rem([100:999],21)==0;sum(p)3、建立一个字符串向量,删除其中的大写字母。

ch='KdDdfKaWdsfCI',k=find(ch>=' A'&ch<='Z'),ch(k)=[]4、输入矩阵,并找出A中大于或等于5的元素。

A=[1 2 3;4 5 6;7 8 9],[m,n]=find(A>=5),for j=1:length(m)x(j)=A(m(j),n(j))xend5、求矩阵的行列式值、逆和特征根。

a11=input('a11='),a12=input('a12 ='),a21=input('a21='),a22=input('a22 ='),A=[a11,a12;a21,a22],DA=det(A),IA=inv(A),EA=eig(A) 6、不采用循环的形式求出和式的数值解。

sum(2.^[0:63])实验二1、1行100列的Fibonacc数组a,a(1)=a(2)=1,a(i)=a(i-1)+a(i-2),用for循环指令来寻求该数组中第一个大于10000的元素,并指出其位置i。

n=100;a=ones(1,n);for i=3:na(i)=a(i-1)+a(i-2);if a(i)>10000a(i),break;end;end,i2、编写M脚本文件,定义下列分段函数,并分别求出当()、()和()时的函数值。

MATLAB基础训练作业

MATLAB基础训练作业

实验一 MATLAB 工作环境熟悉及简单命令的执行一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。

二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条 (Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。

三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。

2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

(1)(365-52?2-70)?3(2)>>area=pi*^2(3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -= (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。

m1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡11514412679810115133216 执行以下命令>>m1( 2 , 3 )>>m1( 11 )>>m1( : , 3 )>>m1( 2 : 3 , 1 : 3 )>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i )(6)执行命令>>x=0::6*pi;>>y=5*sin(x);>>plot(x,y)(6)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。

四、思考题1、以下变量名是否合法为什么(1)x2(2)3col(3)_row(4)for2、求以下变量的值,并在MATLAB 中验证。

Matlab习题及答案

Matlab习题及答案

现代计算方法Matlab 作业答案1.绘出函数f(x)=sin x x ,在[0,4]上的图形解:在M 文件输入:x=0:pi/100:4;y=x.*sin(x);plot(y)运行2. 求3x +2x +5 = 0的根解:在命令窗口输入:>> solve('x^3+2*x+5=0')ans =((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3) - 2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3))1/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) - ((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)/2 -(3^(1/2)*i*(2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) + ((108^(1/2)*707^(1/2))/108 -5/2)^(1/3)))/21/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) - ((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)/2 +(3^(1/2)*i*(2/(3*((108^(1/2)*707^(1/2))/108 - 5/2)^(1/3)) + ((108^(1/2)*707^(1/2))/108 -5/2)^(1/3)))/23.321436min x x x z ++=120..321=++x x x t s301≥x5002≤≤x203≥x解:运用单纯形法计算此题,首先把约束条件化成标准形式:,,,,,205030120654321635241321≥=-=+=-=++x x x x x x x x x x x x x x x(1)在M 文件输入SimpleMthd 函数:function [x,minf] = SimpleMthd(A,c,b,baseVector)sz = size(A);nVia = sz(2);n = sz(1);xx = 1:nVia;nobase = zeros(1,1);m = 1;for i=1:nViaif (isempty(find(baseVector == xx(i),1)))nobase(m) = i;m = m + 1;else;endendbCon = 1;M = 0;while bConnB = A(:,nobase);ncb = c(nobase);B = A(:,baseVector);cb = c(baseVector);xb = inv(B)*b;f = cb*xb;w = cb*inv(B);for i=1:length(nobase)sigma(i) = w*nB(:,i)-ncb(i);end[maxs,ind] = max(sigma);if maxs <= 0minf = cb*xb;vr = find(c~=0 ,1,'last');for l=1:vrele = find(baseVector == l,1);if (isempty(ele))x(l) = 0;elsex(l)=xb(ele);endendbCon = 0;elsey = inv(B)*A(:,nobase(ind));if y <= 0disp('不存在最优解!');x = NaN;minf = NaN;return;elseminb = inf;chagB = 0;for j=1:length(y)if y(j)>0bz = xb(j)/y(j);if bz<minbminb = bz;chagB = j;endendendtmp = baseVector(chagB);baseVector(chagB) = nobase(ind);nobase(ind) = tmp;endendM = M + 1;if (M == 1000000)disp('找不到最优解!');x = NaN;minf = NaN;return;endend(2)在命令窗口输入:clear allA=[1 1 1 0 0 0;1 0 0 -1 0 0;0 1 0 0 1 0;0 0 1 0 0 -1];c=[6 3 4 0 0 0];b=[120;30;50;20];[xm,mf]=SimpleMthd(A,c,b,[3 4 5 6])xm =0 50 70mf =4304.计算下面函数在区间(0,1)内的最小值。

matlab1-8章课后作业

matlab1-8章课后作业

MATLAB基础教程1~8章作业Matlab第一章1.阐述Matlab的功能Matlab作为一种高级计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,已被广泛应用于不同领域。

Matlab的基本功能包括:数学计算功能、图形化显示功能、M语言编程功能、编译功能、图形用户界面开发功能、Simulink建模仿真功能、自动代码生成功能。

Matlab第二章1.创建double的变量,并进行计算。

(1)a=87,b=190,计算a+b、a-b、a*b。

(2)创建uint8 类型的变量,数值与(1)中相同,进行相同的计算。

>> a=87,b=190a =87b =190>> a+bans =277>> a-bans =-103>> a*bans =16530>> c=uint8(87), d=uint8(190)c =87d =190>> c+dans =255>> c-dans =ans =2552.计算(1)sin(60)(2)e^3(3)cos(3π/4)>> sind(60)ans =0.8660>> exp(3)ans =20.0855>> cos(3*pi/4)ans =-0.70713.设u=2,v=3,计算:(1)(2)(3)>> u=2;>> v=3;>> 4*u*v/log(v)ans =21.8457>> (exp(u)+v)^2/(v^2-u) ans =15.4189>> sqrt(u-3*v)/(u*v) ans =0 + 0.4410i 4.计算如下表达式:(1)(2)>> (3-5*i)*(4+2*i)22.0000 -14.0000i>> sin(2-8*i)ans =1.3553e+003 +6.2026e+002i5.判断下面语句的运算结果。

matlab综合大作业(附详细答案)

matlab综合大作业(附详细答案)

m a t l a b综合大作业(附详细答案)-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII《MATLAB语言及应用》期末大作业报告1.数组的创建和访问(20分,每小题2分):1)利用randn函数生成均值为1,方差为4的5*5矩阵A;实验程序:A=1+sqrt(4)*randn(5)实验结果:A =0.1349 3.3818 0.6266 1.2279 1.5888-2.3312 3.3783 2.4516 3.1335 -1.67241.2507 0.9247 -0.1766 1.11862.42861.5754 1.6546 5.3664 0.8087 4.2471-1.2929 1.3493 0.7272 -0.6647 -0.38362)将矩阵A按列拉长得到矩阵B;实验程序:B=A(:)实验结果:B =0.1349-2.33121.25071.5754-1.29293.38183.37830.92471.65461.34930.62662.4516-0.17665.36640.72721.22793.13351.11860.8087-0.66471.5888-1.67242.42864.2471-0.38363)提取矩阵A的第2行、第3行、第2列和第4列元素组成2*2的矩阵C;实验程序:C=[A(2,2),A(2,4);A(3,2),A(3,4)]实验结果:C =3.3783 3.13350.9247 1.11864)寻找矩阵A中大于0的元素;]实验程序:G=A(find(A>0))实验结果:G =0.13491.25071.57543.38183.37830.92471.65461.34930.62662.45165.36640.72721.22793.13351.11860.80871.58882.42864.24715)求矩阵A的转置矩阵D;实验程序:D=A'实验结果:D =0.1349 -2.3312 1.2507 1.5754 -1.29293.3818 3.3783 0.9247 1.6546 1.34930.6266 2.4516 -0.1766 5.3664 0.72721.2279 3.1335 1.1186 0.8087 -0.66471.5888 -1.67242.4286 4.2471 -0.38366)对矩阵A进行上下对称交换后进行左右对称交换得到矩阵E;实验程序:E=flipud(fliplr(A))实验结果:E =-0.3836 -0.6647 0.7272 1.3493 -1.29294.2471 0.80875.3664 1.6546 1.57542.4286 1.1186 -0.1766 0.9247 1.2507-1.6724 3.1335 2.4516 3.3783 -2.33121.5888 1.2279 0.6266 3.3818 0.13497)删除矩阵A的第2列和第4列得到矩阵F;实验程序:F=A;F(:,[2,4])=[]实验结果:F =0.1349 0.6266 1.5888-2.3312 2.4516 -1.67241.2507 -0.17662.42861.5754 5.3664 4.2471-1.2929 0.7272 -0.38368)求矩阵A的特征值和特征向量;实验程序:[Av,Ad]=eig(A)实验结果:特征向量Av =-0.4777 0.1090 + 0.3829i 0.1090 - 0.3829i -0.7900 -0.2579 -0.5651 -0.5944 -0.5944 -0.3439 -0.1272-0.2862 0.2779 + 0.0196i 0.2779 - 0.0196i -0.0612 -0.5682 -0.6087 0.5042 - 0.2283i 0.5042 + 0.2283i 0.0343 0.6786 0.0080 -0.1028 + 0.3059i -0.1028 - 0.3059i 0.5026 0.3660 特征值Ad =6.0481 0 0 0 00 -0.2877 + 3.4850i 0 0 00 0 -0.2877 - 3.4850i 0 00 0 0 0.5915 00 0 0 0 -2.30249)求矩阵A的每一列的和值;实验程序:lieSUM=sum(A)实验结果:lieSUM =-0.6632 10.6888 8.9951 5.6240 6.208710)求矩阵A的每一列的平均值;实验程序:average=mean(A)实验结果:average =-0.1326 2.1378 1.7990 1.1248 1.24172.符号计算(10分,每小题5分):1)求方程组20,0++=++=关于,y z的解;uy vz w y z w实验程序:S = solve('u*y^2 + v*z+w=0', 'y+z+w=0','y,z');y= S. y, z=S. z实验结果:y =[ -1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2))-w] [ -1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))-w] z =[ 1/2/u*(-2*u*w-v+(4*u*w*v+v^2-4*u*w)^(1/2))] [ 1/2/u*(-2*u*w-v-(4*u*w*v+v^2-4*u*w)^(1/2))]2)利用dsolve 求解偏微分方程,dx dyy x dt dt==-的解; 实验程序:[x,y]=dsolve('Dx=y','Dy=-x')实验结果:x =-C1*cos(t)+C2*sin(t)y = C1*sin(t)+C2*cos(t)3.数据和函数的可视化(20分,每小题5分):1)二维图形绘制:绘制方程2222125x y a a +=-表示的一组椭圆,其中0.5:0.5:4.5a =;实验程序:t=0:0.01*pi:2*pi; for a=0.5:0.5:4.5; x=a*cos(t); y=sqrt(25-a^2)*sin(t); plot(x,y) hold on end实验结果:2) 利用plotyy 指令在同一张图上绘制sin y x =和10x y =在[0,4]x ∈上的曲线;实验程序:x=0:0.1:4; y1=sin(x); y2=10.^x;[ax,h1,h2]=plotyy(x,y1,x,y2); set(h1,'LineStyle','.','color','r'); set(h2,'LineStyle','-','color','g'); legend([h1,h2],{'y=sinx';'y=10^x'});实验结果:3)用曲面图表示函数22z x y =+;实验程序:x=-3:0.1:3; y=-3:0.1:3; [X,Y]=meshgrid(x,y); Z=X.^2+Y.^2; surf(X,Y,Z)实验结果:4)用stem 函数绘制对函数cos 4y t π=的采样序列;实验程序:t=-8:0.1:8;y=cos(pi.*t/4); stem(y)实验结果:4. 设采样频率为Fs = 1000 Hz ,已知原始信号为)150π2sin(2)80π2sin(t t x ⨯+⨯=,由于某一原因,原始信号被白噪声污染,实际获得的信号为))((ˆt size randn x x+=,要求设计出一个FIR 滤波器恢复出原始信号。

MATLAB作业4参考答案

MATLAB作业4参考答案

MATLAB作业4参考答案MATLAB作业四参考答案2yt,,sin(103)1、用在(0,3)区间内生成一组较稀疏的数据,并用一维数据插值的方法对给出的数据进行曲线拟合,并将结果与理论曲线相比较。

【求解】类似于上面的例子~可以用几乎一致的语句得出样本数据和插值效果。

>> t=0:0.2:3;y=sin(10*t.^2+3); plot(t,y,'o')ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3;y1=interp1(t,y,x1,'spline'); plot(x1,y1)由于曲线本身变换太大~所以在目前选定的样本点下是不可能得出理想插值效果的~因为样本数据提供的信息量不够。

为了得到好的插值效果~必须增大样本数据的信息量~对本例来说~必须在快变化区域减小样本点的步长。

>> hold offt=[0:0.1:1,1.1:0.04:3]; y=sin(10*t.^2+3); plot(t,y,'o')ezplot('sin(10*t^2+3)',[0,3]); hold on x1=0:0.001:3;y1=interp1(t,y,x1,'spline'); plot(x1,y1)241,,xy22fxyexyxy,,(,)sin()2、用原型函数生成一组网络数据或随机数据,分别拟合出曲3xy,3面,并和原曲面进行比较。

【求解】由下面的语句可以直接生成一组网格数据~用下面语句还可以还绘制出给定样本点是三维表面图。

>> [x,y]=meshgrid(0.2:0.2:2);z=exp(-x.^2-y.^4).*sin(x.*y.^2+x.^2.*y)./(3*x.^3+y); surf(x,y,z) 选择新的密集网格~则可以通过二元插值得出插值曲面。

MATLAB第一章作业答案

MATLAB第一章作业答案

第一章M A T L A B概况与基本操作1.选择题:(1)最初的MATLAB核心程序是采用A语言编写的。

(2)即将于2011年9月发布的MATLAB新版本的编号为D。

2011Ra 2011Rb R2011a R2011b(3)在默认设置中,MATLAB中的注释语句显示的颜色是D。

A.黑色B.蓝色C.红色D.绿色(4)如果要以科学计数法显示15位有效数字,使用的命令是B。

long long e long g long d(5)在命令窗口新建变量a、b,如果只查看变量a的详细信息,使用的命令为B。

a a(6)如果要清除工作空间的所有变量,使用的命令为 C 。

all C.两者都可 D.两者都不可(7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上D。

A.冒号B.逗号C.空格D.分号(8)如果要重新执行以前输入的命令,可以使用B键。

A.下箭头↓B.上箭头↑C.左箭头←D.右箭头→(9)如果要查询函数inv的相关信息,并显示在命令窗口,应使用命令A。

D.三者均可(10)如果要启动Notebook文档,下列D操作是可行的。

A.在命令窗口输入notebook命令B.在命令窗口输入notebook filename命令C.在Word中启动M-book文档D.三者均可2.填空题:(1)MATLAB是MATrix和LABoratory两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler和Jack Little。

(2)在MATLAB的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为紫色,注释显示的字体为绿色,错误信息显示的字体为红色。

(3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format compact,各行之间不添加空行的命令为format compact。

备注:本题布置给大家时有一点小错误,现在予以更正。

Matlab作业3(数值分析)答案

Matlab作业3(数值分析)答案

Matlab作业3(数值分析)机电工程学院(院、系)专业班组学号姓名实验日期教师评定1.计算多项式乘法(x2+2x+2)(x2+5x+4)。

答:2. (1)将(x-6)(x-3)(x-8)展开为系数多项式的形式。

(2)求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。

答:(1)(2)3. y=sin(x),x从0到2π,∆x=0.02π,求y的最大值、最小值、均值和标准差。

4.设x=[0.00.30.8 1.1 1.6 2.3]',y=[0.500.82 1.14 1.25 1.351.40]',试求二次多项式拟合系数,并据此计算x1=[0.9 1.2]时对应的y1。

解:x=[0.0 0.3 0.8 1.1 1.62.3]'; %输入变量数据xy=[0.50 0.82 1.14 1.25 1.35 1.40]'; %输入变量数据yp=polyfit(x,y,2) %对x,y用二次多项式拟合,得到系数px1=[0.9 1.2]; %输入点x1y1=polyval(p,x1) %估计x1处对应的y1p =-0.2387 0.9191 0.5318y1 =a) 1.29095.实验数据处理:已知某压力传感器的测试数据如下表p为压力值,u为电压值,试用多项式dcpbpappu+++=23)(来拟合其特性函数,求出a,b,c,d,并把拟合曲线和各个测试数据点画在同一幅图上。

解:>> p=[0.0,1.1,2.1,2.8,4.2,5.0,6.1,6.9,8.1,9.0,9.9];u=[10,11,13,14,17,18,22,24,29,34,39];x=polyfit(p,u,3) %得多项式系数t=linspace(0,10,100);y=polyval(x,t); %求多项式得值plot(p,u,'*',t,y,'r') %画拟和曲线x =0.0195 -0.0412 1.4469 9.8267。

山东大学《matlab程序设计》期末作业

山东大学《matlab程序设计》期末作业

《Matlab 程序设计》 期末作业学院: 专业: 班级:学号: 姓名: 成绩:一 、 简答题(每题10分,共50分)1、假设有两个矩阵A 和B ,请用这两个矩阵说明Matlab 数值计算中的“左除”与“右除”有什么区别?2、脚本M 文件与函数M 文件的主要区别是什么?3、设矩阵A=[1 4 3 9;5 30 12 42;2 18 32 15],试编程找出A 中所有大于或等于5的元素,并把这些元素组成一个列向量,并计算出这些元素的总和(注意附上标注说明)4、利用Matlab 编写程序求取335lim 21x x x →∞++和120()t t dt -⎰,并对求取结果进行分子和分母的提取(注意附上标注说明)。

5、利用Matlab 编写程序求微分方程x e y y y x 2cos 52=+'-''的通解。

二、 综合题(每题20分,共40分)1、在同一张图上分别画出两组坐标)10,,2,1(),4,(),,(3222 =+i i i i i i 的散点图和折线图。

要求只能利用plot 命令进行绘制,X 坐标范围[0,105] ,Y 坐标范围[0,1450]。

2、已知学生的名字和百分制分数。

编写相应的程序要求输入所有学生的百分制分数后,一次性判断每个学生的成绩分别是“满分”、“优秀”、“良好”、“及格”还是“不及格”,并要求最后用单元数组按行分别输出每个学生的名字、分数和成绩判断结果。

学生姓名 Jack Marry Peter Rose Tom成 绩 72 83 56 94 100判断标准:满分(100),优秀(90-99),良好(80-89),及格(60-79),不及格(<60)三、 论述题(共10分)浅谈一下Fortran 、matlab 、maple 和mathematic 这四种计算语言的特点和区别。

matlab第四章作业

matlab第四章作业

MATLAB第四章作业1511048余红1、编写函数文件求半径为r的圆的面积和周长,可在命令窗口直接调用出结果。

答案:function [c,s] = cands(r)%cands 计算圆的周长和面积c = 2*pi*r;s = pi*r*r;end2、分析下列程序,说明运行结果及原因(a)a = 3;b = 3;for i= 1:3b = b+1;if i> 2break %当if条件不满足时,不再执行循环enda = a +2;end(b)a = 3;b = 3;for i= 1:4b = b+1;if i> 2continue%当if条件满足时不再执行后面语句,跳出本次循环enda = a +2;end答案:(1)a = 7;b = 6。

b=b+1运行了三次。

而a=a+2运行了两次。

(2)a = 7;b = 7。

b=b+1运行了四次。

而a=a+2运行了两次。

3、编写一个程序实现两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

(注矩阵乘法运算要求两矩阵的维数相容,否则出错)答案:function [C]=Mutiply_matrix(A,B)[m1,n1]=size(A);[m2,n2]=size(B);if(m1==m2 && n1==n2 )C = zeros(m1,n1);for i=1:m1for j=1:n1C(i,j)=A(i,j)*B(i,j);endendendif(n1==m2)C=zeros(m1,n2);for i=1:m1for j=1:n2for k=1:n1C(i,j)=A(i,k)*B(k,j);endendendendend4、由物理学中的著名方程2=可知,物体具有的E mc能量E等于物体质量m乘以光速的平方,真空中光的传播速度是82.997910m s⨯(1)创建函数energy,根据物体质量(单位kg)计算物体具有的能量。

能量的单位用焦耳表示,22=kg m s J11(2)利用函数计算质量为1kg到106kg的物体所具有的能量。

MATLAB第三章和第四章作业

MATLAB第三章和第四章作业

习题三1.选择题(1)已知a=4,b='4',下面说法错误的为C 。

A. 变量a比b占用的存储空间大B. 变量a和b可以进行加、减、乘、除运算C. 变量a和b的数据类型相同D. 变量b可以用eval命令执行(2)已知s='显示"hello"',则s的元素个数是B 。

A. 12B. 9C. 7D. 18(3)运行命令>>a=sym('pi','d')则对于变量a的描述D是正确的。

A. a是符号变量B. a显示为10位的数值C. a显示为32位的数值D. a不存在(4)对于符号表达式g=sym('sin(a*z)+cos(w*v)'),如果运行命令diff(g),则求导自变量是D。

A. aB. zC. wD. v(5)运行命令>>a=double(sym('sin(pi/2)')),则变量a是 C。

A. 符号变量B. 字符串'1'C. double型的数值1D. 出错(6)运行命令>>y=dsolve('x*D2y-3*Dy=x^2','t')求解微分方程,则D。

A. Dy是指dy/dxB. 得出的y是通解有一个常数符C1C. D2y是指d2y/dxD. 得出的y是通解有两个常数符C1和C2(7)有一个2行2列的元胞数组c,则c(2)是指C 。

A. 第1行第2列的元素内容B. 第2行第1列的元素内容C. 第1行第2列的元素D. 第2行第1列的元素(8)对于一个2行2列的元胞数组c,如果要删除第二列的元素,应该使用的命令是B 。

A.c{:,2}=[]B.c(:,2)=[]C.A、B两种方式均可D.A、B两种方式均不可(9)有一个3行10列的构架数组student,每个构架有name(姓名)、scores两个字段,其中scores是以1×5数组表示的五门课的成绩,那么要查看第4个学生的第2门课成绩,采用的命令中达不到要求的是。

MATLAB大作业

MATLAB大作业

M A T L A B大作业(总15页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--MATLAB大作业作业要求:(1)编写程序并上机实现,提交作业文档,包括打印稿(不含源程序)和电子稿(包含源程序),以班为单位交,作业提交截止时间6月24日。

(2)作业文档内容:问题描述、问题求解算法(方案)、MATLAB程序、结果分析、本课程学习体会、列出主要的参考文献。

打印稿不要求MATLAB程序,但电子稿要包含MATLAB程序。

(3)作业文档字数不限,但要求写实,写出自己的理解、收获和体会,有话则长,无话则短。

不要抄袭复制,可以参考网上、文献资料的内容,但要理解,要变成自己的语言,按自己的思路组织内容。

(4)从给出的问题中至少选择一题(多做不限,但必须独立完成,严禁抄袭)。

(5)大作业占过程考核的20%,从完成情况、工作量、作业文档方面评分。

第一类:绘制图形。

(B级)问题一:斐波那契(Fibonacci)螺旋线,也称黄金螺旋线(Golden spiral),是根据斐波那契数列画出来的螺旋曲线,自然界中存在许多斐波那契螺旋线的图案,是自然界最完美的经典黄金比例。

斐波那契螺旋线,以斐波那契数为边的正方形拼成的长方形,然后在正方形里面画一个90度的扇形,连起来的弧线就是斐波那契螺旋线,如图所示。

问题二:绘制谢尔宾斯基三角形(Sierpinskitriangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。

其生成过程为:取一个实心的三角形(通常使用等边三角形),沿三边中点的连线,将它分成四个小三角形,然后去掉中间的那一个小三角形。

接下来对其余三个小三角形重复上述操作,如图所示。

问题三:其他分形曲线或图形。

分形曲线还有很多,教材介绍了科赫曲线,其他还有皮亚诺曲线、分形树、康托(G. Cantor)三分集、Julia集、曼德布罗集合(Mandelbrot set),等等。

matlab作业

matlab作业

1、猜数游戏。

首先由计算机产生[1,100]之间的随机整数,然后由用户猜测所产生的随机数。

根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won”,同时退出游戏。

用户最多可以猜7次。

程序文件:nu m=fix(rand(1)*100);n=1;while n<=7a=input('请输入一个1到100的随机整数');n=n+1;if a>nu mdisp('High');elseif a<nu mdisp('low');elsedisp('won');break;endend2、从键盘输入5个数,求其中最大数和最小数。

并在屏幕上提示输入“请输入您要显示数字的序号”,输入后,回显“您要显示数字为……(此处为实际需要显示序号对应的数字)”。

程序文件:disp('请输入5个数字')for n=1:5;x=input('');A(1,n)=x;endAB=sort(A);Bdisp('最大值是');B(1,5)disp('最小值是');B(1,1)disp('请输入您要显示数字的序号');nu m=input('');disp('您要显示数字为');A(1,nu m)3、求Fibonacci数列(1)大于4000的最小项。

(2)5000之内的项数。

程序文件:(1)大于4000的最小项f=[1,1];j=1;while f(1,j+1)<4000f(1,j+2)=f(1,j)+f(1,j+1);j=j+1;endfdisp('大于4000的最小项是');f(1,j+1)运行结果f =Colu m ns 1 through 101 123 5 8 13 21 34 55Colu m ns 11 through 1989 144 233 377 610 987 1597 2584 4181大于4000的最小项是ans =4181(2)5000之内的项数f=[1,1];j=1;while f(1,j+1)<5000f(1,j+2)=f(1,j)+f(1,j+1);j=j+1;endfdisp('5000之内的项数');j运行结果f =Colu m ns 1 through 101 123 5 8 13 21 34 55Colu m ns 11 through 2089 144 233 377 610 987 1597 2584 4181 67655000之内的项数j =19。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.求解方程组sin(x-y)=0,cos(x-y)=0写出求解的MATLAB程序?(写出求解的MATLAB的程序,采用solve命令)
答案
>> [x,y]=solve('sin(x-y)=0','cos(x+y)=0','x','y')
x =
-1/4*pi
1/4*pi
y =
-1/4*pi
1/4*pi
2.设3x’’-5x’+6x=y,x(0)=3,x’(0)=0,求y(5)的值?(写出求解该微分方程的MATLAB程序,用dsolve命令)
%ex1_9.m
f='3*D2x-5*x+6*x-y=0';x=dsolve(f,'Dx(0)=0,x(0)=0','y')
%ex1_10.m
y=solve('-sin(1/3*3^(1/2)*y)*3^(1/2)+y-x=0','x=5','x','y')
x =
-sin(1/3*3^(1/2)*y)*3^(1/2)+y
y =
x: [1x1 sym]
y: [1x1 sym]
3.
1 3 5 7
A= 9 2 4 6 求B=A^T,C=A^-1,用for循环
8 10 3 5
求解A各元素的和,以及A中的最小元
答案
>> A=[1 3 5 7;9 2 4 6;8 10 3 5],B=A'
A =
1 3 5 7
9 2 4 6
8 10 3 5
B =
1 9 8
3 2 10
5 4 3
7 6 5
%ex1_5.m
s=0
m=A(1,1)
for i=1:3
for j=1:4
if ( A(i,j)<=m ) ;
m=A(i,j)
end
s=s+A(i,j)
end
end
m
s
m=1
s=63
实验一 MATLAB 语言的控制语句
实验学时: 2 学时
实验目的:
1、了解MATLAB 语言的体系结构及MATLAB 语言的特点;
2、掌握MATLAB 循环语句、条件转移语句等的使用方法,能编写相应程序实现所需功能。

实验内容:
一、使用 for 循环、while 循环计算6302i i k ==

1、for 循环
确定循环变量的起始值、终止值;
编写循环语句组,实现所需功能;
运行程序,并记录结果。

2、while 循环
确定循环的条件表达式;
编写循环语句组,实现所需功能;
运行程序,并记录结果。

二、采用搜寻法寻找矩阵23121416524332372148656166
646463A ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦
中最小的元素,以及它的位置。

实验报告:
要求给出相应的程序完成实验内容,并给出程序运行结果。

答案
%ex1_7.m
s=0
for i=1:63
s=s+2^i
end
my=0;j=1
while(j<=63)
j=j+1; my=my+2^j
end
A=[23 12 14 16;52 43 32 37;21 48 65 61;66 64 64 63]
min=A(1,1)
for k=1:4
for m=1:4
if A(k,m)<=min
min=A(k,m)
end
end
end
结果s = 1.8447e+019
my =3.6893e+019
min =12
实验二建立MATLAB文本文件
实验学时:2 学时
实验目的:
1、掌握MATLAB 的基本操作,编写满足要求的m 文件。

2、掌握MATLAB 的图形绘制方法。

实验内容:
绘制正弦曲线和余弦曲线。

1、新建m 文件,并对文件进行命名,名字为figure.m。

2、编写m 文件内容:
绘制正弦曲线,取值范围为[0,2]π,以0.1为步长;
绘制余弦曲线,取值范围为[0,2]π,以0.1为步长;
正弦曲线为红色,余弦曲线为蓝色,线宽为2;
要求将图形分割成31⨯个部分,第一个图为正弦曲线,第二个为余弦曲线,第三章为正弦曲线和余弦曲线在一个图内。

3、在命令窗口调用m 文件,运行程序。

实验报告:
要求给出相应的程序完成实验内容。

答案
%figure.m
subplot(3,1,1)
x=0:0.1:2*pi;plot(x,sin(x),'-r','linewidth',2)
subplot(3,1,2)
plot(x,cos(x),'-b','linewidth',2)
subplot(3,1,3)
plot(x,sin(x),'-r',x,cos(x),'-b','linewidth',2)
实验三 控制系统数学模型的表达和转换
实验学时: 2 学时
实验目的:
1、了解控制系统不同的数学模型表示方法;
2、实现不同数学模型间的转换。

实验内容:
若给定系统的传递函数为:
32432()612610()()231
Y s s s s G s U s s s s s +++==++++ 1、将其在MATLAB 工作空间中表示,并显示出来;
2、将其转换成零极点形式;
3、将其转换成状态空间形式;
4、将其转换成部分分式形式。

答案
%ex1_10.m
num=[6 12 6 10];den=[1 2 3 1 1];printsys(num,den)
[Z,P,K]=tf2zp(num,den)
[A,B,C,D]=tf2ss(num,den)
[R,P,H]=residue(num,den)
结果num/den =
6 s^3 + 12 s^2 + 6 s + 10
----------------------------
s^4 + 2 s^3 + 3 s^2 + s + 1 Z =
-1.9294
-0.0353 + 0.9287i
-0.0353 - 0.9287i
P =
-0.9567 + 1.2272i
-0.9567 - 1.2272i
-0.0433 + 0.6412i
-0.0433 - 0.6412i
K = 6
A =
-2 -3 -1 -1
1 0 0 0
0 1 0 0
0 0 1 0
B =
1
C =
6 12 6 10
D = 0
R =
3.4447 - 1.7233i
3.4447 + 1.7233i
-0.4447 - 1.8113i
-0.4447 + 1.8113i
P =
-0.9567 + 1.2272i
-0.9567 - 1.2272i
-0.0433 + 0.6412i
-0.0433 - 0.6412i
H =
[]
控制系统模型的连接
实验学时:2 学时
实验目的:
1、掌握MATLAB 控制工具箱,实现不同数学模型间的转换。

实验内容:
已知系统方框图,求系统的传递函数。

1、求取系统传递函数。

通过series 函数实现子系统间的串联连接;
通过feedback 实现子系统间的反馈连接;
通过series 函数实现子系统间的串联连接;
通过feedback 函数或者cloop 函数实现子系统间的单位反馈连接。

将系统总的传递函数在MATLAB工作空间中表示出来。

实验报告:要求给出相应的程序完成实验内容,并给出程序运行结果。

答案%ex1_11.m
num1=[10];den1=[1 1];num2=[1];den2=[2 0.5];
num3=[540];den3=[1];num4=[0.1];den4=[1];
[na,da]=series(num1,den1,num2,den2);
[nb,db]=feedback(na,da,num4,den4);
[nc,dc]=series(num3,den3,nb,db);
[num,den]=cloop(nc,dc,-1);printsys(num,den)
结果num/den =
5400
----------------------
2 s^2 + 2.5 s + 5401.5。

相关文档
最新文档