matlab实验报告(实验2)
实验二MATLAB绘制图形
grid on %在所画出的图形坐标中加入栅格
绘制图形如下
50
10
1
0.8
40
10
0.6
0.4
30
10
0.2
0
1020
-0.2
-0.4
1010
-0.6
-0.8
0
10
-1
-2
0
2
-2
0
2
10
10
10
10
10
10
如果在图中不加栅格
程序如下:
clear x=logspace(-1,2);%在10^(-1)到10^2之间产生50个 对数等分的行向量 subplot(121); loglog(x,10*exp(x),'-p') subplot(122); semilogx(x,cos(10.^x))
(2)plot(x,y): 基本格式,x和y可为向量或矩阵. 1. 如果x,y是同维向量,以x元素为横坐标,以y元素 为纵坐标绘图. 2. 如果x是向量,y是有一维与x元素数量相等的矩阵, 则以x为共同横坐标, y元素为纵坐标绘图,曲线数目 为y的另一维数. 3. 如果x,y是同维矩阵,则按列以x,y对应列元素为 横、纵坐标绘图,曲线数目等于矩阵列数.
y=2*exp(-0.5*x).*cos(4*pi*x);
2
plot(x,y)
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0
1
2
3
4
5
6
7
例4 绘制曲线
t=(0:0.1:2*pi);
x=t.*sin(3*t);
y=t.*sin(t).*sin(t);
南华大学《MATLAB及应用》实验报告2
核科学技术学院实验报告实验项目名称MATLAB符号计算所属课程名称MATLAB及应用实验类型上机实验实验日期12月日指导教师谢芹班级学号姓名成绩一、实验名称MATLAB符号计算二、实验目的(1)掌握定义符号对象的方法(2)掌握符号表达式的运算法则以及符号矩阵运算(3)掌握求符号函数极限及导数的方法(4)掌握求符号函数定积分和不定积分的方法三、实验原理1. 函数极限及导数的方法(1)函数极限:limit(F,x,a) 求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
(2)limit(f):求符号函数f(x)的极限值。
符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
(3)limit(f,x,a,'right'):求符号函数f的极限值。
'right'表示变量x从右边趋近于a。
(4)limit(f,x,a,‘left’):求符号函数f的极限值。
‘left’表示变量x从左边趋近于a。
2. 微分:diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。
diff(s,'v'):以v为自变量,对符号表达式s求一阶导数。
diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。
diff(s,'v',n):以v为自变量,对符号表达式s求n阶导数。
3. 函数定积分和不定积分的方法:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。
int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。
int(s,v,a,b):求定积分运算。
a,b分别表示定积分的下限和上限。
梯形法:trapz(x,y):x为分割点构成的向量,y为被积函数在分割点上的函数值构成的向量;抛物线法:quad(f,a,b,tol),f 是被积函数,[a,b]是积分区间,tol 是精度。
实验2 用MATLAB进行信号频谱分析 2
实验报告通信工程 1101学号:********* 姓名:李*实验2 用MATLAB 进行信号频谱分析一、实验目的㈠ 初步掌握MATLAB 产生常用离散时间信号的编程方法。
㈡ 学习编写简单的FFT 算法程序,对离散信号进行幅频谱分析。
㈢ 观察离散时间信号频谱的特点。
二、实验原理㈠ 常用的离散时间信号在 MATLAB 语言主要是研究离散信号的。
常用的离散信号有: 1.单位取样序列⎩⎨⎧≠==0001)(n n n δ2.单位阶跃序列⎩⎨⎧<≥=001)(n n n u3.实指数序列R a n a n x n∈∀=;)(4.复指数序列n e n x n j ∀=+)(0)(ωσ5.正(余)弦序列)cos()(0θω+=n n x n ∀ 6.周期序列n N n x n x ∀+=)()(㈡ 离散信号的产生离散信号的图形显示使用stem 指令。
在 MATLAB 中的信号处理工具箱中,主要提供的信号是离散信号。
由于MATLAB 对下标的约定为从1开始递增,例如x=[5,4,3,2,1,0],表示x(1)=5,x(2)=4,X(3)=3…因此要表示一个下标不由1开始的数组x(n),一般应采用两个矢量,如 n=[-3,-2,-1,0,l ,2,3,4,5];x=[1,-l ,3,2,0,4,5,2,1];这表示了一个含9个采样点的矢量:X(n)={x(-3),x(-2),x(-1),x(0),x(1),x(2),x(3),x(4),x(5)}。
1.单位取样序列⎩⎨⎧≠==δ0001)(n n n 这一函数实现的方法有二:方法一:可利用MATLAB 的zeros 函数。
x=zeros(1,N); %建立一个一行N 列的全零数组x(1)=1; %对X (1)赋1 方法二:可借助于关系操作符实现n=1:N;x=[n==1]; %n 等于1时逻辑关系式结果为真,x=1;n 不等于1时为假,x=0如要产生 ⎪⎩⎪⎨⎧≤<<=≤≤=-δ20210100)(10)(n n n n n n n n n n n n则可采用MATLAB 实现:n=n1:n2;x=[(n-n0)==0];%n=n0时逻辑关系式结果为真,x=1;n ≠n0时为假,x=0 2.单位阶跃序列⎩⎨⎧<≥=001)(n n n u这一函数可利用MATLAB 的ones 函数实现: x=ones(1,N);还可借助于关系操作符“>=”来实现。
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.掌握利用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实验报告第二章
第二章作业M2_1.利用MATLAB实现下列连续时间信号。
(1)x(t)=u(t)-u(t-2)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t)-heaviside(t-2);>>plot(t,xt)>>axis([-10,10,-2,2])(2) x(t)=u(t)function y=heaviside(t);y=(t>0);endt=-10:0.001:10;>>xt=heaviside(t);>>plot(t,xt)>>axis([-10,10,-2,2])(3)xt=10exp(-t)-5exp(-2t)>> A=10;a=-1;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=5;a=-2;>> t=0:0.001:10;>> x2t=A*exp(a*t);>>xt=x1t-x2t;>>plot(t,xt)(4)xt=tu(t)>> t=-10:0.001:10;>>xt=t.*heaviside(t);>>plot(t,xt)(5)xt=2|sin(10pit+pi/3)| >> A=2;w0=10*pi;phi=pi/3; >> t=0:0.001:1;>>xt=A*abs(sin(w0*t+phi)); >>plot(t,xt)>>axis([0,1,-4,4])Xt=cost+sin(2pit)>> A=1;w0=1;phi=0; >> t=0:0.002:10;>> x1t=A*cos(w0*t+phi); >> A=2;w0=2*pi;phi=0; >> t=0:0.002:10;>> x2t=A*sin(w0*t+phi); >>xt=x1t+x2t;>>plot(t,xt)(7)xt=4exp(-0.5t)cos(2pit) >> A=5;a=-0.5;>> t=0:0.001:10;>> x1t=A*exp(a*t);>> A=1;w0=2*pi;phi=0; >> t=0:0.001:10;>> x2t=A*cos(w0*t+phi); >>xt=x1t.*x2t;>>plot(t,xt)(8)Sa(pit)cos(30t)A=1;w0=30;phi=0;>> t=0:0.001:3;>> x1t=A*cos(w0*t+phi);>> t=0:0.001:3;>> x2t=sinc(t);>>xt=x1t.*x2t;>>plot(t,xt)M2-3,写出书中图示波形函数,并画出xt,x0.5t,x(2-0.5t)的图像function yt=x2_3(t)yt=t.*(t>=0&t<2)+2*(t>=2&t<3)+(-1)*(t>=3&t<=5); end>> t=0:0.001:5;>>xt=x2_3(t);>>title('x(t)');>>plot(t,xt)>>axis([0,6,-2,3])>> t=0:0.001:10;xt=x2_3(0.5*t); >>plot(t,xt)>>title('x(0.5t)')>>axis([0,10,-2,3])x(0.5t)>> t=-10:0.001:10;>>xt=x2_3(2-0.5*t);>>plot(t,xt)>>title('x(2-0.5t)')>>axis([-10,10,-2,3])M2-4画出图示的奇分量和偶分量。
matlab实验报告2
第二次上机作业准备&要求:1、 运行课件第三章(课本第四章)讲过的例子,掌握Matlab 的流程控制语句、函数及脚本文件的编程、调试方法。
2、 本次作业(4~12题)要求全部写M 文件;3、 题目要求未明确要求写脚本文件还是函数文件的,学生自己决定是写脚本文件还是函数文件。
只要能够实现要求。
4、 列出第二章课堂上出现过的所有函数,知道它们的作用并试着调用这些函数。
作业:1. 继续完成第一次上机实验未完成的作业。
2. 分析脚本M 文件及函数M 文件的区别。
(1)脚本文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数。
(2)脚本文件对MATLAB 工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕时。
这些变量被清除。
(3)脚本文件可以直接运行。
在MATLAB 命令行窗口输入脚本文件的名字,就会顺序执行脚本文件中的命令。
而函数文件不能直接运行,要以函数调用的方式来调用。
3. 已知⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=7613870451A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=023352138B ,求下列表达式的值,并注意第(2)(3)小题表达式的结果有何特点:(1)B A 6+ 、I B A +-2(其中I 为单位阵);>> A+6*Bans =47 23 -1012 37 26-15 73 7>> A^2-B+Ians =-18 -217 1722 533 10921 867 526(2)A*B、A.*B、B*A、B.*A;>> A*Bans =14 14 16-10 51 21125 328 180>> A.*Bans =-8 15 40 35 24-9 122 0>> B*Aans =-11 0 -157 228 533 -1 28>> B.*Aans =-8 15 40 35 24-9 122 0(3)A/B、B\A、A./B、B.\A;A/Bans =1.2234 -0.92552.9787-0.9468 2.3511 -0.95744.6170 3.8723 13.8936>> B\Aans =-0.5106 -8.6170 -1.12770.7340 17.5745 1.8085-0.8830 -21.2128 0.4043>> A./Bans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf>> B.\Aans =-0.1250 1.6667 4.00000 1.4000 2.6667-1.0000 30.5000 Inf(4)[A, B]、[A([1 3],:);B^2]。
MATLAB数学实验报告2
MATLAB数学实验报告姓名:李帆班级:机械(硕)21学号:2120104008第一次数学实验报告——线性规划问题一,实验问题1,某饲养场饲养动物出售,设每头动物每天至少需要700g蛋白质,30g矿物质,100mg 维生素。
现有五种饲料可供选择,各种饲料的每千克营养成分含量和单价如下表。
是确定既能满足动物生长的营养需要,游客是费用最省的选用饲料方案。
2,某工厂生产甲、乙、丙三种产品,单位产品所需工时分别为2、3、1个;单位产品所需原料分别为3、1、5公斤;单位产品利润分别为2、3、5元。
工厂每天可利用的工时为12个,可供应的原料为15公斤。
为使总利润为最大,试确定日生产计划和最大利润。
二,问题分析1,1)该题属于采用线性规划的方式求出最优解的数学问题。
该题有以下特点,1.目标函数有线性,是求目标函数的最小值;2.约束条件为线性方程组;3.未知变量都有非负限制。
1,2)求解该类问题的方法有图解法,理论解法和软件解法。
图解法常用于解变量较少的线性规划问题。
理论解法要构建完整的理论体系。
目前用于解线性规划的理论解法有:单纯形法,椭球算法等。
在此,我们采用单纯形法的MATLAB软件解法来求解该问题。
1,3)此题中,要求既要满足动物生长的营养需要,又要使费用最省,则使每种饲料的选用量为变量,以总费用的最小值为所求量,同时每种饲料的使用量要符合营养成分的要求。
1,4)在此,首先确定建立线性规划模型。
设饲料i选用量为xi公斤,i=1,2,3,4,5.则有模型:Minz=0.2x1+0.7x2+0.4x3+0.3x4+0.8x5s.t.{3x1+2x2+6x4+18x5>=700;x1+0.5x2+0.2x3+2x4+0.5x5>=300.5x1+x2+0.2x3+2x4+0.8x5>=100Xj>=0,j=1,2,3,4,5解之得:x1=x2=x3=0X4=39.74359X5=25.14603Zmin=32.435902,1)该问题与第一题分析步骤相似,故只在此写出其线性规划模型Z=2x+3y+5z2x+3y+z<=123x+y+5z<=15三,程序设计流程图第一题:c=[0.2,0.7,0.4,0.3,0.8]A=[3,2,1,6,18;1,0.5,0.2,2,0.5;0.5,1,0.2,2,0.8;1,0,0,0,0;0,1, 0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]b=[700,30,100,0,0,0,0,0][x,fval]=linprog(c,-A,-b)c=0.20000.70000.40000.30000.8000A=3.0000 2.0000 1.0000 6.000018.00001.00000.50000.20002.00000.50000.5000 1.00000.2000 2.00000.80001.000000000 1.000000000 1.000000000 1.000000000 1.0000b=7003010000000Optimization terminated.x=0.0000-0.00000.000039.743625.6410fval=32.4359第二题c=[-2-3-5]A=[231;315]b=[12;15]lb=[000][x,Z,exitflag,output]=linprog(c,A,b,[],[],lb,[])将上述程序输入matlab。
matlab实验报告
实验一:MATLAB基本操作一、实验目的1、学习掌握MA TLAB语言的基本操作方法2、掌握命令窗口的使用3、熟悉MA TLAB的数据表示、基本运算和程序控制语句4、熟悉MA TLAB程序设计的基本方法二、实验内容和要求2.b.帮助命令的使用,查找SQRT函数的使用方法按Start-help-search,输入sqrtc.矩阵运算(1)已知A=[1 2;3 4];B=[5 5;7 8];求A^2*B输入A=[1 2;3 4];B=[5 5;7 8];A^2*B结果为:ans =105 115229 251(2)矩阵除法已知A=[1 2 3 ;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];求A/B,A\BA/B=1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 3.0000A\B=1.0e+016 *0.3152 -1.2609 0.9457-0.6304 2.5218 -1.89130.3152 -1.2609 0.9457(3)矩阵的转置及共轭转置已知A=[15+i,2-i,1;6*i,4,9-i];求A.',A'A=15.0000 + 1.0000i 2.0000 - 1.0000i 1.00000 + 6.0000i 4.0000 9.0000 - 1.0000iA.'=15.0000 + 1.0000i 0 + 6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000iA'=15.0000 - 1.0000i 0 - 6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知A=[1 2 3;4 5 6;7 8 9];求A中第三列前两个元素;A中所有第二行的元素A =1 2 34 5 67 8 9求A中第三列前两个元素:A([1,2],3)ans =36求A中所有第二行的元素:A(2,1:1:end)ans =4 5 6(5)方括号[]用magic函数生成一个4阶魔方矩阵,删除该矩阵的第四列magic(4)ans =16 2 3 135 11 10 89 7 6 124 14 15 1a=ans;a(:,[1,2,3])ans =16 2 35 11 109 7 64 14 153..多项式(1)求多项式p(X)=x^3-2x-4的根(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]求矩阵A的特征多项式;求矩阵多项式中未知数为20时的值;把矩阵A作为未知数代入到多项式中;(1)a=[1,0,-2,-4]x=roots(a)x =2.0000-1.0000 + 1.0000i-1.0000 - 1.0000i(2)求特征多项式系数:A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]p=poly(A)p =1.0000 -6.9000 -77.2600 -86.1300 604.5500求矩阵多项式中未知数为20时的值:c=polyval(p,20)c =7.2778e+004把矩阵A作为未知数代入到多项式中:c=polyval(p,A)c =1.0e+003 *0.3801 -0.4545 -1.9951 0.4601-1.9951 0.2093 -1.9951 -2.8880-0.4545 -4.8978 0.6046 0.43530.4353 0.0840 -0.4545 -1.16174、基本程序设计(1)编写命令文件:计算1+2+3+……+n<2000;n=0;s=0;while s<2000n=n+1;s=s+n;endn=n-1n =62(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。
实验2 MATLAB的基本数据类型
数学与软件科学学院实验报告学期:至第学期 201年月日课程名称:MATLAB程序设计及应用专业:信息与计算机科学实验编号:实验项目:MATLAB的基本数据类型指导教师:班级:级班学号:姓名:实验成绩:一、实验目的及要求(1) 熟悉MATLAB提供的常用数据类型:数值:numeric字符:char逻辑:logical单元:cell结构:struct(2) 掌握每种数据类型标识符、范围以及不同数据类型之间的转换方式;(3) 熟悉MATLAB提供的运算符;(4)熟练掌握MATLAB常用函数的用法二、实验内容(1) 利用MATLAB简单计算的功能完成第二章课后习题;(1) 利用MATLAB简单计算的功能完成第二章课后习题;一、判断下面语句的运算结果:(1)4<20(2)4<=20(3)4==20(4)4~=20(5)'b'<'B'二、设a=39,b=58,c=3,d=7,判断下面表达式的值:(1)a>b(2)a<c(3)a>b && b>c(4)a==d(5)a|b>c(6)~~d(2) 利用class()函数测已知变量的数据类型;(3) 熟练掌握不同数据类型之间转换的两种格式,分别将已知变量的数据类型转换成int16,double类型;(4) 利用函数测实数及整数的范围;(5) 通过两种方式创建下列复数,并测试所创建的数是否为复数:100+24i、10-23.567i、20(6) 熟悉逻辑数组的创建、使用方法;。
MATLAB第二章实验报告
MATLAB数据及基本操作班级:11电信一班姓名:何得中学号:20111060108实验目的:1.熟悉MATLAB的组体成体系及工作环境;2.了解MATLAB的帮助系统;3.掌握MATLAB的数据类型及变量的基本操作;4.掌握矩阵建立的基本方法及其运算;5.掌握矩阵索引与分析方法;6.熟悉字符串单元及结构数据的建立及基本操作。
实验仪器:MA TLAB软件,电脑实验数据:>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> A=[1 2 34 5 67 8 9]A = 1 2 34 5 67 8 9>> x=0:pi/8:2*pi;>> y=cos(x)y = Columns 1 through 101.0000 0.9239 0.7071 0.3827 0.0000 -0.3827 -0.7071 -0.9239 -1.0000 -0.9239Columns 11 through 17-0.7071 -0.3827 -0.0000 0.3827 0.7071 0.9239 1.0000>> B=ones(3,5)B = 1 1 1 1 11 1 1 1 11 1 1 1 1>> zeros(3)ans = 0 0 00 0 00 0 0>> C=rand(3,4)C = 0.9501 0.4860 0.4565 0.44470.2311 0.8913 0.0185 0.61540.6068 0.7621 0.8214 0.7919>> D=randn(2,3)D = -0.4326 0.1253 -1.1465-1.6656 0.2877 1.1909>> eye(3)ans = 1 0 00 1 00 0 1>> M=magic(4)M = 16 2 3 135 11 10 89 7 6 124 14 15 1>> T=toeplitz(1:5,1:6)T = 1 2 3 4 5 62 1 234 53 2 1 2 3 44 3 2 1 2 35 4 3 2 1 2>> H=hilb(5)H = 1.0000 0.5000 0.33330.2500 0.20000.5000 0.3333 0.2500 0.2000 0.16670.3333 0.2500 0.2000 0.1667 0.14290.2500 0.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111>> a=3:18a =3 4 5 6 7 8 9 10 1112 13 14 15 16 17 18>> b=1:0.2:6b =Columns 1 through 91.0000 1.2000 1.4000 1.600 1.80002.0000 2.2000 2.4000 2.6000 Columns 10 through 182.80003.0000 3.2000 3.40003.6000 3.80004.0000 4.2000 4.4000 Columns 19 through 264.6000 4.80005.0000 5.20005.4000 5.6000 5.80006.0000>> linspace(1,15,10)ans =Columns 1 through 91.00002.5556 4.1111 5.6667 7.2222 8.7778 10.3333 11.8889 13.4444Column 1015.0000>> y=[0.9 0.3 0.4 0.1 0.5 0.6 0.2 ]; >> [sorted,index]=sort(y)sorted =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.9000 index =4 7 2 3 5 6 1>> A=rand(4,5)A = 0.9218 0.9355 0.0579 0.13890.27220.7382 0.9169 0.3529 0.2028 0.19880.1763 0.4103 0.8132 0.1987 0.01530.4057 0.8936 0.0099 0.6038 0.7468>> [a,b]=min(A)a =0.1763 0.4103 0.0099 0.13890.0153b = 3 3 4 1 3>> min(A(:))ans = 0.0099>> V=[1 2 3 4]V = 1 2 3 4>> norm(V,2)ans =5.4772>> norm(V,1)ans = 10>> norm(V,inf)ans = 4>> V=[2 5 6 8 4 9]V = 2 5 6 8 4 9>> min(V)ans = 2>> V=[4 9 6;7 8 9;4 5 6]V = 4 9 67 8 94 5 6>> min(V)ans = 4 5 6>> max(V)ans = 7 9 9>> mean(V)ans = 5.0000 7.3333 7.0000>> median(V)ans = 4 8 6>> std(V)ans = 1.7321 2.0817 1.7321>> diff(V)ans =3 -1 3-3 -3 -3>> sort(V)ans =4 5 64 8 67 9 9>> length(V)ans = 3>> norm(V)ans =19.9125>> sum(V)ans = 15 22 21>> prod(V)ans =112 360 324>> cumsum(V)ans = 4 9 611 17 1515 22 21 >> cumprod(V)ans = 4 9 628 72 54112 360 324>> V=[1 2 8]V = 1 2 8>> U=[3; 4;7]U = 347>> dot(V,U)ans =67>> cross(V,U)ans =-18 17 -2>> A=[5 6 4;7 8 9;4 5 6]A = 5 6 47 8 94 5 6>> B=[6 2 7 ;7 5 8;4 6 8]B = 6 2 77 5 84 6 8>> C=A-BC = -1 4 -30 3 10 -1 -2>> C=A*BC = 88 64 115134 108 18583 69 116>> C1=A\BC1 =0.6667 -6.4444 -7.66670.6667 4.8889 7.3333-0.3333 1.2222 0.3333>> C2=B/AC2 = -3.0000 8.3333 -9.3333-1.6667 5.5556 -5.88890.0000 -1.3333 3.3333>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> D=A^2D = 30 36 4266 81 96102 126 150>> E=A^0.1E = 0.8466 + 0.2270i 0.3599 + 0.0579i -0.0967 - 0.1015i0.4015 + 0.0216i 0.4525 + 0.0133i 0.4432 - 0.0146i-0.0134 - 0.1740i 0.4848 - 0.0509i 1.0132 + 0.0820i>> A=[1+2*i 3;4 2+i]A =1.0000 + 2.0000i 3.00004.0000 2.0000 + 1.0000i>> A'ans = 1.0000 - 2.0000i 4.00003.0000 2.0000 - 1.0000i>> A=[1 2 3;4 5 6;7 8 9]A = 1 2 34 5 67 8 9>> B=[3 4 6;7 9 8;5 2 01]B = 3 4 67 9 85 2 1>> C=A.*BC = 3 8 1828 45 4835 16 9>> D=A./BD = 0.3333 0.5000 0.50000.5714 0.5556 0.75001.4000 4.0000 9.0000>> E=A.\BE = 3.0000 2.0000 2.00001.7500 1.8000 1.33330.7143 0.2500 0.1111>> A=[1+2*i 3;4 2+i]A = 1.0000 + 2.0000i 3.00004.0000 2.0000 + 1.0000i>> A.^2ans = -3.0000 + 4.0000i 9.000016.0000 3.0000 + 4.0000i>> A.'ans = 1.0000 + 2.0000i 4.00003.0000 2.0000 + 1.0000i>> x=0.1:0.1:0.8x =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000>> y=sin(2*x).*cos(2*x)y =0.1947 0.3587 0.4660 0.4998 0.4546 0.3377 0.1675 -0.0292>> y=sin(x)y =0.0998 0.1987 0.2955 0.3894 0.4794 0.5646 0.6442 0.7174>> y=cos(x)y =0.9950 0.9801 0.9553 0.9211 0.8776 0.8253 0.7648 0.6967>> y=tan(x)y =0.1003 0.2027 0.3093 0.4228 0.5463 0.6841 0.8423 1.0296>> y=cot(x)y =9.9666 4.9332 3.2327 2.3652 1.8305 1.4617 1.1872 0.9712>> y=sec(x)y = 1.0050 1.0203 1.0468 1.0857 1.1395 1.2116 1.3075 1.4353>> y=csc(x)y = 10.0167 5.0335 3.3839 2.5679 2.0858 1.7710 1.5523 1.3940>> y=asin(x)y = 0.1002 0.2014 0.3047 0.4115 0.5236 0.6435 0.7754 0.9273>> y=acos(x)y = 1.4706 1.3694 1.2661 1.1593 1.0472 0.9273 0.7954 0.6435>> y=atan(x)y =0.0997 0.1974 0.2915 0.3805 0.4636 0.5404 0.6107 0.6747>> y=acot(x)y = 1.4711 1.3734 1.2793 1.1903 1.1071 1.0304 0.9601 0.8961>> y=asec(x)y =Columns 1 through 60 + 2.9932i 0 + 2.2924i0 + 1.8738i 0 + 1.5668i 0 +1.3170i 0 + 1.0986iColumns 7 through 80 + 0.8956i 0 + 0.6931i>> y=sinh(x)y =0.1002 0.2013 0.3045 0.4108 0.5211 0.6367 0.7586 0.8881>> y=cosh(x)y =1.0050 1.0201 1.0453 1.0811 1.1276 1.1855 1.2552 1.3374>> y=tanh(x)y = 0.0997 0.1974 0.2913 0.3799 0.4621 0.5370 0.6044 0.6640>> y=coth(x)y = 10.0333 5.0665 3.4327 2.6319 2.1640 1.8620 1.6546 1.5059>> y=sech(x)y = 0.9950 0.9803 0.9566 0.9250 0.8868 0.8436 0.7967 0.7477>> y=csch(x)y = 9.9834 4.9668 3.2839 2.4346 1.9190 1.5707 1.3182 1.1260>> y=asinh(x)y = 0.0998 0.1987 0.2957 0.3900 0.4812 0.5688 0.6527 0.7327>> y=acosh(x)y =Columns 1 through 60 + 1.4706i 0 + 1.3694i0 + 1.2661i 0 + 1.1593i 0 +1.0472i 0 + 0.9273iColumns 7 through 80 + 0.7954i 0 + 0.6435i>> y=atanh(x)y = 0.1003 0.2027 0.3095 0.4236 0.5493 0.6931 0.8673 1.0986>> y=acoth(x)y = Columns 1 through 60.1003 + 1.5708i 0.2027 + 1.5708i 0.3095 + 1.5708i 0.4236 + 1.5708i 0.5493 + 1.5708i 0.6931 + 1.5708i Columns 7 through 80.8673 + 1.5708i 1.0986 + 1.5708i >> y=asech(x)y = 2.9932 2.2924 1.8738 1.5668 1.3170 1.0986 0.8956 0.6931>> y=acsch(x)y = 2.9982 2.3124 1.9189 1.6472 1.4436 1.2838 1.1545 1.0476>> y=log(x)y =-2.3026 -1.6094 -1.2040 -0.9163 -0.6931 -0.5108 -0.3567 -0.2231>> y=log10(x)y = -1.0000 -0.6990 -0.5229 -0.3979 -0.3010 -0.2218 -0.1549 -0.0969>> y=log2(x)y =-3.3219 -2.3219 -1.7370 -1.3219 -1.0000 -0.7370 -0.5146 -0.3219>> c=complex(a,b)c = 0.1763 + 3.0000i 0.4103 + 3.0000i0.0099 + 4.0000i 0.1389 + 1.0000i 0.0153 + 3.0000i>> zc=conj(x)zc =0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000>> b=imag(x)b = 0 0 0 0 0 00 0>> a=real(x)a = 0.1000 0.2000 0.3000 0.40000.5000 0.6000 0.7000 0.8000>> y=fix(x)y = 0 0 0 0 0 0 0 0>> y=floor(x)y =0 0 0 0 0 0 0 0 >> y=ceil(x)y = 1 1 1 1 1 1 1 1>> y=round(x)y = 0 0 0 0 1 1 1 1>> y=sign(x)y = 1 1 1 1 1 1 1 1>> S=rats(x)S =1/10 1/5 3/10 2/5 1/2 3/5 7/10 4/5>> [N,D]=rat(x)N = 1 1 3 2 1 37 4D = 10 5 10 5 2 510 5>> A=[2 4 6;3 5 7;8 10 9]A = 2 4 63 5 78 10 9>> B=[4 1 5;7 5 0;9 3 6]B = 4 1 57 5 09 3 6>> A>Bans = 0 1 10 0 10 1 1>> A<Bans = 1 0 01 0 01 0 0>> A>=Bans = 0 1 10 1 10 1 1>> A<=Bans = 1 0 01 1 01 0 0>> A==Bans = 0 0 00 1 00 0 0>> A~=Bans =1 1 11 0 11 1 1>> A&Bans = 1 1 11 1 01 1 1>> A|Bans = 1 1 11 1 11 1 1>> ~Aans = 0 0 00 0 00 0 0>> ~Bans = 0 0 00 0 10 0 0>> x=0:pi/100:3*pi;>> y=sin(x);>> plot(x,y);>> y1=(x<pi|x>2*pi).*y;>> figure,plot(x,y1);>> r=(x>pi/3&x<2*pi/3)|(x>7*pi/3&8*pi/3);>> rn=~r;>> y2=r*sin(pi/3)+rn.*y1;>> figure,plot(x,y2)>> x=[0 4 5 9 8 6 74 85 7 4 85 8 4 5 8]x =0 4 5 9 8 6 74 85 7 4 85 8 4 5 8>> all(x)ans =0>> any(x)ans = 1>> find(x)ans =2 3 4 5 6 7 8 9 10 11 12 13 14 15>> isempty(x)ans =>> isglobal(x)Warning: isglobal is obsolete and will be discontinued. Type "help isglobal" for more details.ans =0>> isinf(x)ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> isnan(x)ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> isfinite(x)ans =1 1 1 1 1 1 1 1 1 1 1 1 1 1 1>> issparse(x)ans = 0>> isstr(x)ans =0>> not(x)ans =1 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> y=[59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5]y =59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5>> y=[59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5]y = 59 46 78 2 3 98 1 2 3 57 9 5 66 8 900 5>> x=[0 4 5 9 8 6 74 85 7 4 85 8 4 5 8]x = 0 4 5 9 8 6 74 85 7 4 85 8 4 5 8>> A=[4 -40 2; 23 50 17;18 29 14]A = 4 -40 223 50 1718 29 14>> [r,c]=find(A>=20&A<=30)r = 23c = 12>> bitand(12,6)ans = 4>> bitshift(12,1)ans = 24>> bitxor(12,1)ans =13>> bitset(12,1)ans = 13 >> bitget(12,1)ans =0>> A =[ 87 59 56 85 66 21 12 35 62 64 69 88 99 81]A =87 59 56 85 66 21 1235 62 64 69 88 99 81>> A(2)ans =59>> A([1,2,8])ans =87 59 35>> A([9,6,2])ans =62 21 59>> A([end-4:end])ans =64 69 88 99 81>> A([1:5,5:-1:1])ans = 87 59 56 85 66 66 85 56 59 87>> A(3)=-1A = 87 59 -1 85 66 2112 35 62 64 69 88 99 81>> A(15)=-8A =87 59 -1 85 66 2112 35 62 64 69 88 99 81 -8>> A(20)=-1A = Columns 1 through 1687 59 -1 85 66 21 12 35 62 64 69 88 99 81 -8 0Columns 17 through 200 0 0 -1>> A=rand(8)A = 0.9501 0.8214 0.9355 0.13890.4451 0.8381 0.3046 0.37840.2311 0.4447 0.9169 0.2028 0.9318 0.0196 0.1897 0.86000.6068 0.6154 0.4103 0.1987 0.4660 0.6813 0.1934 0.85370.4860 0.7919 0.8936 0.6038 0.4186 0.3795 0.6822 0.59360.8913 0.9218 0.0579 0.2722 0.8462 0.8318 0.3028 0.49660.7621 0.7382 0.3529 0.1988 0.5252 0.5028 0.5417 0.89980.4565 0.1763 0.8132 0.0153 0.2026 0.7095 0.1509 0.82160.0185 0.4057 0.0099 0.7468 0.6721 0.4289 0.6979 0.6449>> A(3,3)ans =0.4103>> A(8)ans =0.0185>> sub2ind(size(A),3,3)ans =19>> [i,j]=ind2sub(size(A),19)i =3j =3>> A(:,4)ans =0.13890.20280.19870.60380.27220.19880.01530.7468>> A(3,:)ans =0.6068 0.6154 0.4103 0.1987 0.4660 0.6813 0.1934 0.8537>> A(end,:)ans =0.0185 0.4057 0.0099 0.7468 0.6721 0.4289 0.6979 0.6449>> A(3:4,5:6)ans =0.4660 0.68130.4186 0.3795>> A(2:2:4,1:2:5)ans =0.2311 0.9169 0.93180.4860 0.8936 0.4186>> A=reshape(A,5,5)A = 1 6 11 16 212 7 12 17 223 8 13 18 234 9 14 19 245 10 15 20 25>> A(:)'ans =Columns 1 through 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Columns 17 through 2517 18 19 20 21 22 23 24 25>> A(:,1:2:5)=[]A = 6 167 178 189 1910 20>> A=[9 8 7;6 5 4;3 2 1];>> D=diag(A)D =951>> D1=diag(A,1)D1 =84>> D2=diag(A,-1)D2 =62>> V=[1 2 3 4];>> diag(V)ans = 1 0 0 00 2 0 00 0 3 00 0 0 4>> diag(1:3,-1)ans = 0 0 0 01 0 0 00 2 0 00 0 3 0>>A=[17,1,0,15;5,7,14,16;4,0,13,0;10,12,19,21]; >> D=diag(4:-1:1);>> D*Aans = 68 4 0 6015 21 42 488 0 26 010 12 19 21>> triu(A)ans =17 1 0 150 7 14 160 0 13 00 0 0 21>> triu(A,1)ans = 0 1 0 150 0 14 160 0 0 00 0 0 0>> B=A'B =17 5 4 101 7 0 120 14 13 1915 16 0 21>> rot90(A)ans =15 16 0 210 14 13 191 7 0 1217 5 4 10>> rot90(A,3)ans =10 4 5 1712 0 7 119 13 14 021 0 16 15>> B=fliplr(A)B = 15 0 1 1716 14 7 50 13 0 421 19 12 10>> B=flipud(A)B = 10 12 19 214 0 13 05 7 14 1617 1 0 15>> A=[4 5 6 9;7 8 9 5;4 5 6 9;7 8 9 5]; >> det(A)ans =0>> rank(A)ans =2>> cond(A)ans =1.0968e+017>> inv(A)Warning: Matrix is singular to working precision.ans = Inf Inf Inf InfInf Inf Inf InfInf Inf Inf InfInf Inf Inf Inf>> A=[4 8 9;8 2 7;6 3 8];>> inv(A)ans = 0.0568 0.4205 -0.43180.2500 0.2500 -0.5000-0.1364 -0.4091 0.6364>> [V,D]=eig(A)V = -0.6438 -0.7444 -0.5061-0.5467 0.6392 -0.5515-0.5354 0.1931 0.6631D = 18.2776 0 00 -5.2030 00 0 0.9254>> [U,S,D]=svd(A)U = -0.6378 0.7375 -0.2220-0.5426 -0.6348 -0.5500-0.5465 -0.2304 0.8051S = 18.9278 0 00 5.2884 00 0 0.8791D = -0.5374 -0.6639 -0.5200-0.4135 0.7449 -0.5236-0.7350 0.0663 0.6749>> [L,U]=lu(A)L = 0.5000 1.0000 01.0000 0 00.7500 0.2143 1.0000U = 8.0000 2.0000 7.00000 7.0000 5.50000 0 1.5714>> [Q,R]=qr(A)Q = -0.3714 0.9114 -0.1774-0.7428 -0.4063 -0.5322-0.5571 -0.0659 0.8278 R =-10.7703 -6.1279 -12.99870 6.2808 4.83140 0 1.3009>> a=1234a = 1234>> class(a)ans =double>> size(a)ans = 1 1>> b='1234'b =1234>> class(b)ans =char>> size(b)ans = 1 4>> 'I am astudent'ans =I am astudent>> a='This is No.2.23 Example!'a =This is No.2.23 Example!>> b=a(1:7)b =This is>> c=a(12:end)c =2.23 Example!>> a='Good';>> b='Noon';>> length(a)==length(b)ans = 1>> c=[a,'',b]c =GoodNoon>> d=[a;b]d =GoodNoon>> size(c)ans = 1 8>> size(d)ans = 2 4>> a='Good Noon';>> b=double(a)b = 71 111 111 100 32 78 111 111 110>> c='再见!'c =再见!>> c='再见!'>> d=double(c)d = 20877 35265 65281>> char(d)ans =再见!>> a='The first string';>> b='The second string';>> c=strcmp(a,b)c =0>> d=strncmp(a,b,4)d =1>> X='A friend in need is a friend indeed'; >> Y='friend';>> a=findstr(Y,X)a = 3 23>> b=strfind(Y,X)b = []>> S=['1 2 3';'2 3 4'];>> A=str2num(S)A = 1 2 32 3 4>> B=str2num('6-8i')B = 6.0000 - 8.0000i>> D=num2str(rand(2,3),6)D =0.950129 0.606843 0.8912990.231139 0.485982 0.762097>> d=189;>> h=dec2hex(d)h =BD>> c=dec2base(d,7)c =360>> b=dec2bin(d)b =10111101>> bin2dec(b)ans = 189>> A={ones(3,3,3),'Welcome';30.34,1:200} A = [3x3x3 double] 'Welcome'[ 30.3400] [1x200 double]>>B=[{ones(3,3,3)},{'Welcome'};{30.34},{1:20 0}]B = [3x3x3 double] 'Welcome'[ 30.3400] [1x200 double]>> C={5}C = [5]>> C(2,3)={7}C = [5] [] [][] [] [7]>> isequal(A,B)ans =1>> A={ones(3,3,3),'Welcome';30.34,1:200}; >> b=A(1,2)b = 'Welcome'>> class(B)ans =cell>> C=A{1,2}C =Welcome>> class Cans =char>> D=A{1,2}(6)D =m>> E=A{2,2}([end:-1:190])E =200 199 198 197 196 195 194 193 192 191 190>> class(E)ans =double>> N=A{3}([1 3 5 7])N =Wloe>> A={ones(3,3,3),'Welcome';30.34,1:200}; >> B=cell(2);>> B(:,1)={char('Good','Morning');1:10}B = [2x7 char ] [][1x10 double] []>> C=[A,B]C = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] []>> D=[A,B;C]D = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] [][3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] []>> D(4,:)=[]D = [3x3x3 double] 'Welcome' [2x7 char ] [][ 30.3400] [1x200 double] [1x10 double] [][3x3x3 double] 'Welcome' [2x7 char ] []>> E=reshape(D,2,3,2)E(:,:,1) = [3x3x3 double] [3x3x3 double] [1x200 double][ 30.3400] 'Welcome' 'Welcome'E(:,:,2) = [2x7 char ] [2x7 char] [][1x10 double] [] []>>A={randn(3,3,2),'Good',pi;29,4+7*i,zeros(4)} A = [3x3x2 double] 'Good' [ 3.1416][ 29] [4.0000+ 7.0000i] [4x4 double]>> B=cellfun('isreal',A)B = 1 1 11 0 1>> C=cellfun('length',A)C = 3 4 11 1 4>> Member.code='09021';>> ='Liu';>> Member.age=22;>> Member.grade=uint16(3);>> MemberMember =code: '09021'name: 'Liu'age: 22grade: 3>> Member(4).name='Wang';>> Member(4).grade=2;>> Member(2)ans = code: []name: []age: []grade: []>>Memebr=struct('code','09021','name','Liu','a ge',22,'grade',uint16(3))Memebr = code: '09021'name: 'Liu'age: 22grade: 3>>Member=struct('code',{'09021','09034'},'name' ,{'Liu','Wamg'},'age',{22,24},'grade',{2,3}) Member = 1x2 struct array with fields:codenameagegrade>>Member=struct('code',{},'name',{},'age',{},'gr ade',{})Member = 0x0 struct array with fields:codenameagegrade>>Member=struct('code',{'09021','09034'},'na me',{'Liu','Wang'},'age',{22,24},'grade',{2,3},' score',{[78 89;90 68],[91 76;89 97]}) Member = 1x2 struct array with fields:codenameagegradescore>> Member(1).scoreans =78 8990 68>> Member(2).score(2,:)ans =89 97>> Member.codeans =09021ans =09034>> Member.('name')ans =Liuans =Wang>> ='Liu';M.ID=1;>> M(2,2).name='Wang';M(2,2).ID=2; >> M2=setfield(M,{2,1},'name','Zhang'); >> ans =Liuans =[]ans = []ans =Wang>> ans =Liuans =Zhangans = []ans =Wang>> fieldnames(M)ans = 'name''ID'>> M3=orderfields(M)M3 = 2x2 struct array with fields:IDname。
matlab第二次实验报告
《数学建模实验》上机实验报告班级:计算机35班学号:2130505099姓名:田博文【实验一】一上底面半径2米、下底面半径4米、高4米的圆台形水池内盛满了水,由池底一横截面积为0.001平方米的小孔放水。
求在任意时刻的水面高度和将水放空所需的时间。
一、问题分析:在dt很小一段时间内,水的流速v可以看成是不变的与水面高度h有关的函数,即v=gh2;在dt时间内流出的水量,可以近似的为一圆柱,对应的圆柱高为dh;由于容器下降的水量与流出的水量相等,令小孔面积为b,即dV=π2r dh=bvdt;可得dh与dt的关系为:dh=bvdt/(π2r);根据相似三角形原理可得,r=4-h/2;初始条件有;h(0)=4;为表示方便,引入变量L=4-h故r=2+L/2二、代码:T=0;for L=0:0.001:4-0.001 %选取积分微元为0.001,即dhV=0.001*pi*(2+(1/2*L))^2; %水面处的dV,b=0.001t=V/(sqrt(2*(4-L)*9.8)*0.001) %dV与dt关系T=T+t;plot(T,(4-L),'red'); hold onend三、运行结果:四、结论:在任意时刻的水面高度和将水放空所需的时间如上图红线所示,横轴为时间,纵轴为水面高度。
【实验二】有A、B、C三个场地,每一个场地都出产一定数量的原料,同时也消耗一定数量的产品,具体数据如下表所示。
已知制成每吨产品需要消耗3吨原料,A、B两地,A、C两地和B、C两地之间的距离分别为150千米、100千米和200千米,假设每万吨原料运输1千米的运费为5000元,每万吨产品运输1千米的运费为6000元。
由于地区条件的差异,在不同地区设厂的费用不同,由于条件的限制,在B处建厂的规模不能超过5万吨,问:在这三地如何建厂、规模建多大才能使得总费用最小?地点年产原料(万吨)年销产品(万吨)生产费用(万元/万吨)A 20 7 150B 16 13 120C 24 0 100一、问题分析:设nij为i地运往j地的原料量,mij为i地运往j地的产品量,设A地为1地,B 为2地,C地为3地。
MATLAB实验报告 (2)
广西大学实验报告纸姓名:徐律1002100405电气工程学院自动化102班2012年12月27日【实验名称】MATLAB的图形绘制【实验要求】1、学习MATLAB图形绘制的基本方法;2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;4、掌握plot、subplot的指令格式和语法。
【实验基本知识】1、plot(x,y)------绘制由x,y所确定的曲线;2、多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……);3、双Y轴绘图:plotyy()函数;4、图形窗口的分割;5、图形编辑窗口的使用。
【实验内容】【1】二维曲线绘图基本指令演示。
本例运作后,再试验plot(t), plot(Y), plot(Y,t) ,以观察产生图形的不同。
t=(0:pi/50:2*pi)';k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)plot(t,Y); plot(t);plot(Y);plot(Y,t); %图形如下图所示【2】用图形表示连续调制波形Y=sin(t)sin(9t)及其包络线。
t=(0:pi/100:pi)';y1=sin(t)*[1,-1];y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])【3】在一个图形窗口绘制正弦和余弦曲线,要求给图形加标题“正弦和余弦曲线”,X轴Y轴分别标注为“时间t”和“正弦、余弦”,在图形的某个位置标注“sin(t)”“cos(t)”,并加图例,显示网格,坐标为正方形坐标系。
实验程序:实验结果:Sin(t)Cos(t)【4】绘制向量x=[1 3 0.5 2.5 2]的饼形图,并把3对应的部分分离出来。
实验报告二 Matlab图像代数运算和几何变换
实验二Matlab图像代数运算和几何变换一、实验目的1、掌握不同图像类型的转换2、掌握图像代数运算和几何变换的方法;3、掌握灰度级插值法的实验方法。
二、实验内容1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73);2、练习课本6.3.2(p139-p143)图像代数运算的内容;3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;4、练习灰度级插值法(p171)。
三、实验步骤和结果1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(1)mat2gray()函数I=imread('rice.png');>> J=filter2(fspecial('sobel'),I);>> K=mat2gray(J);>> imshow(I);>> figure,imshow(K)(2)、grayslice()函数>> I=imread('snowflakes.png');>> X=grayslice(I,16);>> imview(I)imview(X,jet(16))(3)、rgb2ind()函数> RGB=imread('peppers.png');>> imshow(RGB);>> figure,imshow(RGB)>> [X,map]=rgb2ind(RGB,128);>> figure,imshow(X,map) (4)、im2bw()函数>> load trees>> BW=im2bw(X,map,0.4);>> figure,imshow(X,map)>> figure,imshow(BW)(5)、ind2gray()函数load trees>> I=ind2gray(X,map);>> figure,imshow(X,map)>> figure,imshow(I)(6)、dither()函数>> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map);>> BW=dither(I);>> imshow(RGB,map);>> figure,imshow(RGB,map); >> figure,imshow(BW)Result:(1)转换后图像(2)索引色图像(3)索引色图像(4)索引色图像(4)二值化后的图像(5)转换后的灰度图像(6)索引色图像(6)抖动转换图像2、练习课本6.3.2(p139-p143)图像代数运算的内容(1)加法运算I=imread('rice.png');>> figure(1),imshow(I,[])>> I2=imread('cameraman.tif')>> figure(2),imshow(I2,[])>> K=imadd(I,I2,'uint16');>> figure(3),imshow(K,[])>> I=imread('lena.bmp');>> I2=imadd(I,50);>> figure(1),imshow(I)>> figure(2),imshow(I2)(2)、减法运算>> I=imread('rice.png'); >> I2=imread('cameraman.tif'); >> I3=imsubtract(I,I2);>> figure,imview(I3)(3)乘法&除法运算>> I=imread('lena.bmp');>> I2=immultiply(I,0.5);>> figure,imshow(I)>> figure,imshow(I2)>> I3=immultiply(I,1.5);>> figure,imshow(I3)>> I4=imdivide(I,0.5);>> figure,imshow(I4)>> I5=imdivide(I,1);>> figure,imshow(I5)Result:(1)加法运算后的图像(1)加入常数后的图像(2)减法运算(3)乘以0.5后的图像乘以1后的图像除以0.5后的图像除以1后的图像3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;(a)图像平移>> I=imread('trees.tif');>> figure,imshow(I)>> I=double(I);>> I_movesult=zeros(size(I));>> H=size(I);>> Move_x=50;>> Move_y=50;>>I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1:H(1)-Move_x,1:H(2)-Move_y);>> figure,imshow(uint8(I_movesult))(b)图像比例变换J=imread('trees.tif');>> figure,imshow(J);>> X1=imresize(J,2);>> X2=imresize(J,0.5);>> figure,imshow(X1)>> figure,imshow(X2)(C)图像旋转变换>> I=imread('peppers.png');>> figure,imshow(I)>> X1=imrotate(I,30,'nearest');>> figure,imshow(uint8(X1))>> X2=imrotate(I,45,'nearest');>> figure,imshow(uint8(X2))>> X3=imrotate(I,60,'nearest');>> figure,imshow(uint8(X3))>> X4=imrotate(I,90,'nearest');>> figure,imshow(uint8(X4))(d)图像镜像变换>> I=imread('forest.tif');>> I=double(I);>> figure,imshow(uint8(I));>> H=size(I);>> figure(2),>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));>> imshow(uint8(I2));>> figure,imshow(uint8(I2));>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);>> figure,imshow(uint8(I3));>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1);>> figure,imshow(uint8(I4));(e)图像切割>> I1=imread('peppers.png');>> I2=imcrop(I1,[75 68 220 100]);>> imview(I2)I3=imcrop(I1,[30 40 120 100]);>> imview(I3)(a)平移后的图像(b)放大后图像(b)缩小后的图像(c)旋转30°后的图像旋转45°后的图像旋转60°后的图像旋转90°后的图像(d)原始图像垂直镜像水平镜像对角镜像(e)原始图像一次切割后图像二次切割后图像4、练习灰度级插值法(p171)>> I=imread('lena.bmp');>> X1=imresize(I,1);>> X2=imresize(I,1,'bilinear');>> X3=imresize(I,1,'bicubic');>> figure,imshow(X1)>> figure,imshow(X2)>> figure,imshow(X3)最近邻差值法双线性插值法三次插值法四、实验体会在本次实验中掌握不同图像类型的转换,掌握了转换函数及其语法格式,如ind2rgb()函数将索引图像转换成真彩色。
matlab实验报告实验二
matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。
在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。
图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。
在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。
实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。
例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。
在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。
例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。
在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。
例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。
在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。
例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。
MATLAB第二章实验报告
深 圳 大 学 实 验 报 告课程名称: MATLAB实验名称: MATLAB 的数值计算学 院:指导教师:报告人: 组号:学号 实验地点实验时间: 年 月 日提交时间:二、内容和步骤1.创建矩阵(1)直接输入(2)用from:step:to方式(3)用linspace函数:(4)使用特殊矩阵函数,并修改元素(5)获取子矩阵块:.练习:b=logspace(0,4*3.14,20)b =1.0e+12 *1 至17 列0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0004 0.0018 0.0082 0.037718 至20 列0.1729 0.7924 3.63082.矩阵运算:(1)利用矩阵除法解线性方程组(2)利用矩阵的基本运算求解矩阵方程练习:(3)计算矩阵的特征值和特征向量。
验证特征值和特征向量与该矩阵的关系练习:将矩阵的乘除运算改为数组的点乘和点除运算:(4)利用数学函数进行矩阵运算w=logspace(-2,1,10)w =0.0100 0.0215 0.0464 0.1000 0.2154 0.4642 1.0000 2.1544 4.6416 10.0000LW=-20*log10(sqrt((2*w).^2 + 1))LW =-0.0017 -0.0081 -0.0373 -0.1703 -0.7396 -2.6993 -6.9897 -12.9151 -19.4040 -26.0314FW=-atan(2*w)*180/piFW =-1.1458 -2.4673 -5.3037 -11.3099 -23.3106 -42.8711 -63.4349 -76.9341 -83.8517 -87.13763.生成多维数组:c(18)=[]c =1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8练习:使用数组c编辑窗口查看变量a,b和c。
MATLAB实验报告二
实验二 Matlab语言程序设计一、实验内容:1、编写命令文件:计算 1+2+…+n<2000 时的最大 n 值;>> n=1; %将变量初值设为1sum=0;while((sum+n)<2000) %若s<2000成立,则执行下一条语句,否则结束本循环sum=sum+n; %求和运算n=n+1;endsum,n-1 %显示最终s和nsum =1953ans =622、编写函数文件:分别用 for 和 while 循环结构编写程序,求 2 的 0 到 15 次幂的和。
function xunhuan(x)sum=0;for(i=0:x)sum=sum+2^i;endy=sum>> xunhuan(15)y =65535function whilexun(x)sum=0;i=0;while(i<x)sum=sum+2^i;i=i+1;endy=sum>> whilexun(16)y =655353、如果想对一个变量 x 自动赋值。
当从键盘输入 y 或 Y 时(表示是),x 自动赋为 1;当从键盘输入 n 或 N 时(表示否),x 自动赋为 0;输入其他字符时终止程序。
a=input('输入一个字符:');switch acase 'y'x=1case 'Y'x=1case 'n'x=0case 'N'x=0otherwiseend输入一个字符:'Y'x =1二、实验思考题1.用FOR和WHILE语句有何要求?答:for语句的基本命令格式为for 循环变量=表达式1表达式3表达式2循环语句组End表达式1、表达式3、表达式2的定义和C语言相似即首先执行循环变量的初始值赋成表达式1的值然后判断循环变量的值介于表达式1和表达式2的值之间则执行循环体中的语句否则结束循环语句的执行。
matlab数学实验报告2
数学实验报告2011年6月12日培养容器温度变化率模型一、实验目的利用matlab软件估测培养容器温度变化率二、实验问题现在大棚技术越来越好,能够将温度控制在一定温度范围内。
为利用这种优势,实验室现在需要培植某种适于在8.16℃到10.74℃下能够快速长大的甜菜品种。
为达到实验所需温度,又尽可能地节约成本,研究所决定使用如下方式控制培养容器的温度:1,每天加热一次或两次,每次约两小时;2,当温度降至8.16℃时,加热装置开始工作;当温度达到10.74℃时,加热装置停止工作。
已知实验的时间是冬天,实验室为了其它实验的需要已经将实验室的温度大致稳定在0℃。
下表记录的是该培养容器某一天的温度34三、 建立数学模型1, 分析:由物理学中的傅利叶传热定律知温度变化率只取决于温度差,与温度本身无关。
因为培养容器最低温度和最高温度分别是:8.16℃和10.74℃;即最低温度差和最高温度差分别是:8.16℃和10.74℃。
而且,16.8/74.10≈1.1467,约为1,故可以忽略温度对温度变化率的影响2, 将温度变化率看成是时间的连续函数,为计算简单,不妨将温度变化率定义成单位时间温度变化的多少,即温度对时间连续变化的绝对值(温度是下降的),得到结果后再乘以一系数即可。
四、 问题求解和程序设计流程 1) 温度变化率的估计方法根据上表的数据,利用matlab 做出温度-时间散点图如下:下面计算温度变化率与时间的关系。
由图选择将数据分三段,然后对每一段数据做如下处理:设某段数据为{(0x ,0y ),(1x ,1y ),(2x ,52y ),…,( n x ,n y )},相邻数据中点的平均温度变化率采取公式:温度变化率=(左端点的温度-右端点的温度)/区间长度 算得即:v(21ii x x ++)=(1+-i i y y )/(i i x x -+1).每段首尾点的温度变化率采用下面的公式计算: v(0x )=(30y -41y +2y )/(2x -0x ) v(n x )=(3n y -41+n y +2+n y )/(n x -2-n x )用以上公式计算得温度变化率与时间的数据表如下:下面分别利用数据插值法和数据拟合法两种方法来估计温度变化率1)数据插值法对上表即温度变化率与时间的数据表加热装置不工作时段1和加热装置不工作时段2采用插值法,可以得到任意时刻的温度变化率;编写matlab程序如下:t=[0,0.46,1.38,2.395,3.41,4.425,5.44,6.45,7.465,8.45,8.97];v=[29.89,21.74,18.48,16.22,16.30,15.32,13.04,15.45,13.98,16.35,19.27];t0=0:0.1:8.97;lglr=lglrcz(t,v,t0);lglrjf=0.1*trapz(lglr)fdxx=interp1(t,v,t0);fdxxjf=0.1*trapz(fdxx)scyt=interp1(t,v,t0,'spline');sancytjf=0.1*trapz(scyt)plot(t,v,'*',t0,lglr,'r',t0,fdxx,'g',t0,scyt,'b')gtext('lglr')gtext('fdxx')6gtext('scyt')其中使用了lglrcz.m文件lglrcz.m的代码是:function y=lglrcz(x0,y0,x)n=length(x0);m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif j~=kp=p*(z-x0(j))/(x0(k)-x0(j));endends=p*y0(k)+s;endy(i)=s;end程序执行后显示结果:如图曲线lglr,fexx,scyt分别表示用拉格朗日插值法,分段线形插值法和三次样条插值法对第一加热时段数据插值得到的温度变化率-时间线。
matlab实验报告
matlab实验报告引言:Matlab(矩阵实验室)是一款功能强大的数值计算和科学计算软件,广泛应用于工程、科学和经济等领域。
本实验报告将探讨我在使用Matlab进行实验过程中的心得体会和实验结果。
实验一:图像处理在这个实验中,我使用Matlab对一张图像进行了处理,并应用了各种图像处理算法。
这包括图像增强、边缘检测和图像分割等技术。
通过Matlab的图像处理工具箱,我能够轻松调用各种算法函数,并对图像进行快速处理。
实验结果表明,Matlab图像处理工具箱提供了丰富的函数和算法,极大地方便了我们的图像处理工作。
实验二:模拟信号处理模拟信号处理是Matlab中的一个重要应用领域。
在这个实验中,我模拟了一个带噪声的正弦信号,并使用Matlab进行了噪声滤波和频谱分析。
通过使用Matlab的滤波函数,我能够有效地去除信号中的噪声,并还原出原始信号。
同时,Matlab提供了功能强大的频谱分析工具,我可以轻松地对信号的频率特性进行分析和可视化。
实验三:数据分析与统计数据分析与统计是Matlab的另一个重要应用领域。
在这个实验中,我使用Matlab对一组实验数据进行了分析和统计。
通过使用Matlab的统计函数和工具,我能够计算出数据的均值、方差、标准差等统计指标,并绘制出数据的直方图和散点图。
这些统计分析结果对我的实验研究提供了有力的支持,并帮助我更好地理解实验数据。
实验四:数值计算与优化数值计算与优化是Matlab的核心功能之一。
在这个实验中,我使用Matlab进行了一组数值计算和优化实验。
通过使用Matlab的数值计算函数和优化工具箱,我能够快速计算出复杂的数学问题,并找到最优解。
同时,在进行优化实验时,我可以设置各种约束条件和目标函数,从而得到最优解的参数值。
这些数值计算和优化工具极大地提高了我的研究效率和准确度。
结论:通过这些实验,我深刻认识到Matlab的强大功能和广泛应用领域。
无论是图像处理、信号处理、数据分析还是数值计算与优化,Matlab都提供了丰富的函数和工具,让我们能够快速高效地完成实验和研究工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、
实验内容
1、符号对象及其定义方法 (1)分别定义数字类常数和符号类常数 3 ,计算两类数字之间的差(提示:参考教材[例 2.1-1])
2、 利用 MATLAB 帮助系统,查阅函数 numden 的用法。写出使用 numden 函数求解表达式 分子和分母的 MATLAB 指令,并根据求解结果写出其表达式。
x y 的 x y x y
4、 使用 diff 函数对
cos x 求微分。 1 x
3、 使用 limit 函数求极限 lim
sin x 。 x0 x
5、 对函数 f (k ) {
ak 0
k0 k0
, 当 a 为正实数时,求
f (k ) z
k 0
k
。 (提示:参考教材[例 2.3-8], )
6、 使用 int 函数求以下不定积分和定积分: (1)
xdx ;
1
7、求 f (t ) e2t u(t ) 的傅里叶变换,并用反变换验算。
(2)
10
1
t ln t dt
>> syms t >> ut=heaviside(t) ut = heaviside(t) >> ft=exp(-2*t)*ut ft = heaviside(t)/exp(2*t) >> Ft=fourier(ft,t) Ft = 1/(2 + t*i) >> ft=ifourier(Ft,t) ft = heaviside(t)/exp(2*t)
。
四、
实验结果与分析
MATLAB 程序设计
实验 2:符号计算
一、
实验目的
1 掌握符号对象和符号表达式的创建方法; 2、掌握符号表达式和符号函数的操作方法; 3、掌握符号微积分的基本方法; 4、掌握符号积分变换的基本方法。
.4852719692835848e-15
二、
实验原理
1 1 (2)使用 syms 函数定义符号变量 x、y、z,并由此定义符号表达式 f 2 x y 3 sin z 5 2
学生实验报告
开课学院及实验室:机电学院
学院
>> a=pi*sqrt(3) a=
学号 成绩 指导老 师
2012 年11
月 22 日
姓名
机电学院
年级、专业、 班
5.4414 >> sa=sym('pi*sqrt(3)') sa = pi*sqrt(3) >> vpa(sa-a) ans =
实验课程名称 实验项目名称