北科大matlab数学实验_第六次作业
- 格式:doc
- 大小:107.59 KB
- 文档页数:5
实验三 图像的代数运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验原理图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。
如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。
例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。
使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。
为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
下表列举了所有图像处理工具箱中的图像代数运算函数。
表2-1 图像处理工具箱中的代数运算函数函数名功能描述Imabsdiff 两幅图像的绝对差值Imadd 两幅图像的加法Imcomplement 补足一幅图像Imdivide 两幅图像的除法Imlincomb 计算两幅图像的线性组合Immultiply 两幅图像的乘法imsubtract 两幅图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。
代数运算的结果很容易超出数据类型允许的范围。
例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。
《数学实验》报告实验名称 Matlab常微分方程的求解学院土木与环境工程学院专业班级2013年12月1.学习Matlab的一些基础知识,主要常微分方程的计算等;2.熟悉Matlab中的常微分方程,编写一些相关的Matlab命令等;3.完成相关的练习题。
二、【实验任务】1.求解微分方程y′=xsinxx2.2.用数值方法求解下列微分方程,用不同颜色和线形将y和y′画在同一个图形窗口里:y′′+ty′−y=1−2t初始时间:t0=0;终止时间:t f=π;初始条件:y|t=0=0,y′|t=0=0.2.三、【实验程序】1.求解微分方程y′=xsinxx2.MATLAB命令:y=dsolve('Dy=x*sin(x)/cos(y)','x')2.用数值方法求解下列微分方程,用不同颜色和线形将y和y′画在同一个图形窗口里:y′′+ty′−y=1−2t初始时间:t0=0;终止时间:t f=π;初始条件:y|t=0=0,y′|t=0=0.2.解对于高阶常微分方程,需先将其转化为一阶常微分方程组,即状态方程。
令x1=y,x2=y’,则可写出上述方程的状态方程为:{x1′=0x1+x2x2′=x1−tx2+1−2t 基于上述状态方程,求解过程如下:1)建立函数文件reform.m.function xp=reform(t,x)xp=[0 1;1 -t]*x+[0;1]*(1-2*t);2)求解微分方程.[t,x]=ode45('reform',[0 pi],[0 0.2]);3)用图形显示出数值结果.plot(t,x(:,1),'b-',t,x(:,2),'r-.');grid on,legend('y','dy');xlabel('t'),ylabel('y / dy');title('常微分方程的解y及dy的图像')1.求解微分方程y′=xsinx.x22.用数值方法求解下列微分方程,用不同颜色和线形将y和y′画在同一个图形窗口里:y′′+ty′−y=1−2t初始时间:t0=0;终止时间:t f=π;初始条件:y|t=0=0,y′|t=0=0.2.五、【实验总结】通过本次实验,我们学习了Matlab下高等数学方面的一些计算,主要是常微分方程的求解。
实验报告(MATLAB课后作业练习题)学院电子信息学院班级学号姓名任课教师目录实验作业1 (3)第一题、一阶电路 (3)实验作业2 (7)第一题Waterfall Scope(瀑布显示图) (7)Chirp Signal扫频信号源 (7)Uniform Random Number信号源下 (8)Band-Limited White Noise信号源 (8)第二题:设计一个编程开关仿真系统框图 (9)仿真实验作业3 (10)第一题 (10)第二题 (13)仿真实验作业4 (14)第一题 (14)第二题 (16)仿真实验作业5 (19)仿真实验作业6 (21)仿真实验作业7 (23)仿真实验作业8 (26)实验作业1第一题、一阶电路(1)、电路图如下,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V ,t=0时刻接入1V 的电压,求0<t<15s 时,i (t),v o (t)的值,并且用Simulink 仿真画出R=1.4、R=5和 R=9的电流与电容电压的关系曲线。
还可以进一步修改信号源参数,使用三角波、正弦波等作为激励信号,观察输出信号的情况。
function xdot=funcforexl23(t,x,~,R,L,C)xdot=zeros(2,1); %矩阵初始化 xdot(1)=-R/L*x(1)-1/L*x(2)+1/L* f(t); %方程1 xdot(2)=1/C * x(1); %方程2 function in=f(t) %输入信号 in=(t>0)*1; %阶跃信号%filename ex123.mL=2; %电感值 C=0.32; %电容值for R=[1.4 5 9] %仿真电阻值分别为1.5, 3, 5欧姆的情况[t,x]=ode45('funcforexl23',[0,15],[0;0.5],[],R,L,C); %也可采用ode23, ode15s 等求解figure(1);plot(t,x(:,1));hold on ; xlabel('time sec'); text(2,0.07,'\leftarrow i_L(t)');grid;figure(2);plot(t,x(:,2));hold on ;xlabel('time sec'); text(2.1,0.75,'\leftarrow u_C(t)');grid; End输入输出的传递函数:11)()()(2++==RCs LCs s F s U s H c① R=1.4时:1448.064.01)(2++=s s s H ±Vs=1Vt=0R L C +-)(t i )(t v o② R=5时:16.164.01)(2++=s s s H③ R=9时:188.264.01)(2++=s s s H连续系统的传递函数如下:借助多项式乘法函数conv 来处理:两个向量分别用num 和den 表示。
实验六MATLAB数据可视化实验者:祝松年级:机设092 学号:09405701002一、实验目的掌握 MATLAB 二维、三维图形绘制,掌握图形属性的设置和图形修饰;掌握图像文件的读取和显示。
二、实验内容(1) 二维图形绘制。
(2) 三维曲线和三维曲面绘制。
(3) 图像文件的读取和显示。
三、实验步骤1 .二维图形绘制(1) 二维图形绘制主要使用函数 plot 。
>>clear all;>> x=linspace(0,2*pi,100);>> y1=sin(x);>> plot(x,y)>> hold on % 保持原有的图形>> y2=cos(x)>> plot(x,y)注: hold on 用于保持图形窗口中原有的图形, hold off 解除保持。
(2) 函数 plot 的参数也可以是矩阵。
>>close all % 关闭所有图形窗口>>x=linspace(0,2*pi,100);>> y1=sin(x);>> y2=cos(x);>> A=[y1 ; y2]'; % 把矩阵转置>> B=[x ; x]'>> plot(B,A)(3) 选用绘图线形和颜色。
>> close all % 关闭所有图形窗口>> plot(x,y1,'g+',x,y2, 'r:')>> grid on % 添加网格线(4) 添加文字标注。
>> title(' 正弦曲线和余弦曲线 ')>> ylabel(' 幅度 ')>> xlabel(' 时间 ')>> legend('sin(x)', 'cos(x)')>> gtext('\leftarrowsinx') % 可用鼠标选择标注的位置,%\leftarrow 产生左箭头,‘\’为转义符(5) 修改坐标轴范围。
实验报告课程名称:MATLAB BASIC实验项目:计算两个给定日期之间的天数专业班级:通信工程0801班姓名:丁华兵学号:080404009 实验室号:实验组号: 9实验时间:2010.12.20 批阅时间:指导教师:刘笑楠成绩:沈阳工业大学实验报告(适用计算机程序设计类)专业班级:通信工程0801班学号:080404009 姓名:丁华兵实验名称:计算两个给定日期之间的天数附件沈阳工业大学实验报告(适用计算机程序设计类)专业班级:通信工程0801班学号:080404009 姓名:丁华兵实验步骤或程序:Geometric Mean1.在matlab环境中新建一个M-file,在the edit window下编辑主函数程序如下:% script file : dinghuabing.m% purpose:To calculate how many days betwen two days.%% record of revisions:% Date programmer Description of change% ==== ========== =====================% 12/20/10 丁华兵 Original code% Define variables:% FY -- 第一个日期的年% FM --第一个日期的月% FD --第一个日期的日% NY --第二个日期的年% NM --第二个日期的月% ND --第二个日期的日% D -- the days of one month% leap% z -- the days of one year% A -- .........% B -- .........% all -- the result% ii -- loop indexFY = input('Enter the first year: ');FM = input('Enter the first month: ');FD = input('Enter the first day: ');NY = input('Enter the current year: ');NM = input('Enter the current month: ');ND = input('Enter the current day: ');if FY>NYfprintf('ERROE:"the first year could not higher than the current year"');elseif FY<NY[D leap]=my(FM,FY);A = D-FD;if FM<11FM=FM+1;for ii = FM:12[D leap]=my(ii,FY);A=D+A;endelseif FM==11A=A+31;else A=A;end[D leap]=my(NM,NY);B = ND;if NM>2NM=NM-1;for ii = 1:NM[D leap]=my(NM,NY);B=B+D;endelseif NM==2B=B+31;else B=B;endif FY<NY-2FY=FY+1;NY=NY-1;for ii = FY:NY[D leap]=my(FM,ii);if leap==0z=365;else z=366;endA=A+z;endelseif FY==NY-2FY=FY+1;[D leap]=my(FM,FY);if leap==0z=365;else z=366;endA=A+z;elseA=A;endall=A+B;fprintf('the day between the two days is:%d\n',all);elseif FM~=NM[D leap]=my(FM,FY);A=D-FD;if FM<NM-2FM=FM+1;NM=NM-1;for ii = FM:NM[D leap]=my(ii,FY);A=A+D;endelseif FM==NM-2FM=FM+1;[D leap]=my(FM,FY);A=A+D;else A=A;endall=A+ND;elseall=ND-FD;endfprintf('the day between the two days is:%d\n',all);end2.在matlab环境中新建一个M-file,在the edit window下编辑调用函数程序如下:function [D,leap] = my(month,year)%Function my generate the day of one month and justified if one year is a% leapyear.%define variables:% m% y% D% leapif mod(year,400) == 0leap = 1;elseif mod(year,100) == 0leap = 0;elseif mod(year,4) == 0leap = 1;elseleap = 0;endswitch (month)case{1,3,5,7,8,10,12},D=31;case{4,6,9,11},D=30;case 2,D=28+leap;endend3.保存上面的M-file。
《数学实验》报告实验名称MATLAB在研究物体振动方面的应用学院专业班级姓名学号2015年 1月一、【实验目的】物体振动这样一个看似简单但又包含着很多复杂计算的运动中,在人为的计算时是很难精确的实现,而通过MATLAB可以处理诸多科学中的许多问题,利用它来研究物理学中的机械振动,不仅特别方便还非常有效。
二、【实验任务】本列举振动的一些实例,用matlab语言编制计算机程序进行仿真以达到研究简谐振动以及振动的合成,振动的计算以及受迫振动。
三、【实验程序】(一)简谐振动介绍最简单和最基本的振动是简谐振动.任何复杂的振动,都可以看成为许多简谐振动的合成.1.特点质点作简谐振动的条件是:在任何时候所受到的力与质点离开平衡位置的位移成正比,其指向与位移相反,始终指向平衡位置.所受的力与位移的关系表示为(1)式中为正的常数.对于弹簧振子,就是弹簧劲度系数2.运动的微分方程及其解根据牛顿第二定律,作简谐振动的质点的微分方程写成即(2)式中。
如下面的(3)和(4)所示,是简谐振动的圆频率。
微分方程(2)的解是(3)或(4)式(7.3)也可以表为复数形式(5)但要约定取其实数部分.利用三角公式,很容易导出A ,和B,C之间的关系即(6)3.速度和加速度作简谐振动的质点,它的速度和加速度很容易得到.只要将(7.3)对时间分别求导一次和求导两次即可,(7)(8)式(1)、(2)、(3)、(4)、(5)都是判别一个系统是否作简道振动的依椐.4.圆频率、周期和频率之间的关系,,(9),,三者不是独立的,只要知道其中一个,就可以由(7.9)求出其余两个。
它们是由振动系统的固有性质决定,常称为固有圆频率,固有周期和固有频率.5.振幅和初周相(3)中和是两个积分常数,可由初始条件决定.将初始条件:“,,”代入(3)和(7),得(10)解得(11)求解质点作简谐振动的具体运动情况,也就是要确定(7.3)中的,,三个值.其中和由初始条件决定,因此一般来说,首先必须确定初始值和,而根据(7.10)或(7.11)求出和值.至于(或或),它是由系统固有性质决定的,与初始情况无关.例如对于弹簧振子,,完全由弹簧劲度系数和物体质量所决定.弹簧的大(即所谓硬的弹簧),振动的圆频率也就大。
MATLAB数学实验答案(全)第⼀次练习教学要求:熟练掌握Matlab 软件的基本命令和操作,会作⼆维、三维⼏何图形,能够⽤Matlab 软件解决微积分、线性代数与解析⼏何中的计算问题。
补充命令vpa(x,n) 显⽰x 的n 位有效数字,教材102页fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形在下⾯的题⽬中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin limx mx mx x →-与3sin lim x mx mxx →∞-syms xlimit((902*x-sin(902*x))/x^3) ans =366935404/3limit((902*x-sin(902*x))/x^3,inf)//inf 的意思 ans = 0 1.2 cos1000xmxy e =,求''y syms xdiff(exp(x)*cos(902*x/1000),2)//diff 及其后的2的意思 ans =(46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算221100x y edxdy +??dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1)//双重积分 ans = 2.13941.4 计算4224x dx m x +? syms xint(x^4/(902^2+4*x^2))//不定积分 ans =(91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求//⾼阶导数syms xdiff(exp(x)*cos(902*x),10) ans =-356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x)1.6 0x =的泰勒展式(最⾼次幂为4).syms xtaylor(sqrt(902/1000+x),5,x)//泰勒展式 ans =-(9765625*451^(1/2)*500^(1/2)*x^4)/82743933602 +(15625*451^(1/2)*500^(1/2)*x^3)/91733851-(125*451^(1/2)*500^(1/2)*x^2)/406802 + (451^(1/2)*500^(1/2)*x)/902 +(451^(1/2)*500^(1/2))/500 1.7 Fibonacci 数列{}n x 的定义是121,1x x ==12,(3,4,)n n n x x x n --=+=⽤循环语句编程给出该数列的前20项(要求将结果⽤向量的形式给出)。
《数学实验》报告
实验名称常微分方程
学院计算机与通信工程学院专业班级
姓名
学号
2015年6月
一、 【实验目的】
1、学习常微分方程符号解法和数值解法;
2、学习频数直方图的作法。
二、 【实验任务】
1.P168 T24 求解微分方程y
x
x y cos sin '=。
2.P168 T27
用数值方法求解下列微分方程,用不同颜色和线型将y 和y ’画在同一个图形窗口里:
t y ty y 21'''-=-+
初始时间:00
=t ;终止时间:π=f t ;初始条件:1.0|0==t y ,2.0|'0==t y 。
3.P190 T15
描绘以下数组的频数直方图:
6.8,29.6,33.6,35.7,36.9,45.2,54.8,65.8,43.4,53.8,63.7,69.9,70.7,79.5,9
7.9,139.4,157.0
三、 【实验程序】
1.P168 T24
y=dsolve('Dy=x*sin(x)/cos(y)','x')
2.P168 T27
先将高阶微分方程转化为一阶微分方程,令''''',2121x y x y x y x =⇒===,即原微分方程化为:
⎩⎨
⎧
-++-==t
x tx x x x 21''12221 写成矩阵形式为:
)21(10t -110)21(10t -110'''2121t t x x x x x -⎥⎦⎤⎢⎣⎡+⎥
⎦⎤⎢⎣⎡=-⎥⎦
⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=x
u t xdot t u ⎥⎦
⎤
⎢⎣⎡+⎥⎦⎤⎢⎣⎡-=-=10110,21x 放入函数exf.m 中,命令如下:
[t,x]=ode23('exf',[t0,tf],x0t)
(1)将导数表达式的右端写成exf.m 函数文件:
function [xdot ] = exf( t,x ) u=1-2*t;
xdot=[0 1;1 -t]*x+[0 1]'*u; end
(2)主程序如下: clf
t0=0,tf=pi,x0t=[0.1,0.2]; [t,x]=ode23('exf',[t0,tf],x0t); y=x(:,1);y1=x(:,2); plot(t,y,'r-',t,y1,'b--'); legend('y','y 的一阶导数');
3.P190 T15
A=[6.8,29.6,33.6,35.7,36.9,45.2,54.8,65.8,43.4,53.8,63.7,69.9,70.7,79.5,97.9,139.4,157.0] hist(A,12)
四、 【实验结果】
1.P168 T24 y =
asin(C3 + sin(x) - x*cos(x))
2.P168T27
3.P190T15
五、【实验总结】
1、学会了常微分方程符号解法和数值解法;
2、学会了频数直方图的作法。