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的基本操作一、使用函数实现对下列矩阵的左旋和右旋以及反转已知答案:如图:矩阵如图矩阵的左旋如图一矩阵的右旋如图二矩阵的左右反转如图三矩阵的上下反转如图四二、已知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章课后作业
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-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作业⼀、必答题: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实验作业
实验一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基础及应用第一章上机作业
1、新建一个文件夹(自己的名字命名)
答:
2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。
保存,关闭对话框。
使用path命令查看MATLAB搜索路径。
3、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye。
4、使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
5、编写一段简短的脚本文件,保存并显示运行结果。
6、创建两个double型变量a=32、b=5,并计算a+b、a-b、a*b、a/b、a\b;
创建两个int8型变量a、b,取同样数值,并计算a+b、a-b、a*b、a/b、a\b,对于计算结果与前次计算结果不同的情形请给出解释。
7、查看int16数据类型的取值范围(intmin,intmax);查看单精度数据类型的取值范围和精度(realmin,realmax,eps)。
8、求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量:
(1)sin(60o) (2) e3 (3) cos(3/4π)
9、用两种定义复数的方法计算(直接定义,complex(a,b))
(1)(3-5i)(4+2i) (2) sin(2-8i)。
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 作业答案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章课后作业
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综合大作业(附详细答案)
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作业四参考答案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第一章作业答案
第一章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程序设计》期末作业
《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第四章作业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第三章和第四章作业
习题三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作业
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上机实践练习五
实验五:MATLAB 数据可视化
实验目的:
掌握MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。
学时:2学时
实验内容:
(1)二维图形绘制。
(2)隐函数绘图
(2) 三维曲线和三维曲面绘制。
(3) 图像文件的读取和显示。
1.写出实现下列图形的M文件。
t=[0:0.1:pi];
y1=sin(2*t);
y2=cos(3*t);
plot(t,y1,'b-o');
hold on
plot(t,y2,'k:o');
xlabel('ʱ¼ä')
ylabel('·ùÖµ')
text(1,sin(2*1),'\fontsize{16}\leftarrowsin(2t) ');
text(2.4,cos(3*(2.4)),'\fontsize{16}cos(3t)\rightarrow ',... 'HorizontalAlignment','right')
2. 将窗口分割成4个区域,并且在[]0,2π区间上绘制1sin 2,6y x π⎛⎫
=+
⎪⎝
⎭
()224cos 3,y x =()3cos y x =,()35sin 1y x =+四条曲线,并且给每一个图形添加标
题和标注。
clear
x=0:pi/10:2*pi; y1=sin(2.*x+pi/6); y2=4.*cos(3.*x.^2); y3=cos(x); y4=5.*sin(x+1); subplot(2,2,1); plot(x,y1); title('y1');
text(1,sin(2*1+pi/6),'sin(2*x+pi/6)') subplot(2,2,2); plot(x,y2)
title('y2');text(2,4.*cos(3*2^2),'4*cos(3*x^2)') subplot(2,2,3); plot(x,y3)
title('y3');text(2,cos(2),'cos(x)')
subplot(2,2,4);
plot(x,y4)
title('y4');text(2,5.*sin(3),'5*sin(x+1)')
3.已知y1=x2,y2=cos(2x),y3=y1*y2,其中x为取值-2π~2π的等差数列(每次
增加0.02π),完成下列操作
(1)在同一坐标系下用不同的颜色和线型绘制三条曲线,给三条曲线添加图例。
(2)以子图形式绘制三条曲线;
clear
x=-2*pi:0.02*pi:2*pi;
y1=x.^2;
y2=cos(2.*x);
y3=y1.*y2;
plot(x,y1,'r-',x,y2,'b:',x,y3,'k--')
clear
x=-2*pi:0.02*pi:2*pi; y1=x.^2;
y2=cos(2.*x);
y3=y1.*y2;
subplot(2,2,1);
plot(x,y1)
subplot(2,2,2);
plot(x,y2)
subplot(2,2,3)
plot(x,y3)
4. 在同一坐标内,在[]0,2π区间上绘制2
1sin 2,6y x π⎛⎫
=+
⎪⎝
⎭23cos 612y x π⎛
⎫=+ ⎪⎝
⎭ clear
x=0:pi/10:2*pi; y1=sin(2*x.^2+pi/6); y2=3.*cos(6.*x+pi/12); plot(x,y1,'r') hold on plot(x,y2,'b')
5. 绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为[0,2π]。
ezplot('sin(3.*t)*cos(t)','sin(3.*t)*sin(t)',[0,2*pi])
6. 绘制极坐标曲线)1sin(2θρ+=。
x=0:0.01:2*pi; y=2.*sin(1+x); polar(x,y)
7. 在xy 平面内选择区域[][],,-⨯-8888,
绘制函数z =
的三种三维曲面图。
8. 绘制函数()2
2
x y z xe
--=的三维立体图形。
9. 已知函数
2
1
(),661g x x x
=-≤≤+,用分段线性插值法求插值,绘制出插值
与精确图形,并观察插值误差。
(1) 在[-6,6]平均取5个点做插值; (2) 在[-6,6]平均取11个点做插值;
10. 有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi ,用三次样条法进行插值。
绘
制出插值与精确图形.
合曲线的图形。