当前位置:文档之家› MATLAB求解PDE问题

MATLAB求解PDE问题

MATLAB求解PDE问题
MATLAB求解PDE问题

MATLAB求解PDE问题(1)——概述、例子

已有 2363 次阅读2010-10-12 14:57|个人分类:生活点滴|系统分类:科研笔记|关键词:MATLAB PDE Toolbox 椭圆型方程 有限元方法

MATLAB PDE T oolbox 提供利用有限元方法求解偏微分方程的GUI以及相应的命令行函数。利用该工具箱可以求解椭圆型方程、抛物型方程、双曲型方程、特征值方程以及非线性方程。PDE Toolbox的功能非常强大,网上有许多利用PDE Toolbox解决各种物理问题的论文,还有专门介绍工具箱的参考书。

网上的例子虽然很多,但是大部分是介绍PDE工具箱自带的一些例子,这些例子中解的区域,边界条件是PDE工具箱已经编写好的,直接调用就可以。对于该如何自己设定求解区域及边界条件,却很少有人涉及。网上搜索发现只有刘平在博客中详细介绍过求解区域的设定。下面以一个椭圆型方程的例子来详细说明求解的各个步骤,希望对大家能有所帮助。

设要求如下形式的椭圆方程的解:

按照PDE的要求,将方程化为标准形式

求解后的图像如下,第一幅图是解的图像,第二幅是计算误差。从第二幅图可以看到,计算的最大误差是10-3方量级。

通过这个例子我们可以基本掌握PDE求解偏微分方程的步骤和方法,后面我将详细介绍如何设置区域及边界条件。掌握了区域和边界条件的设定,就可以轻松求解遇到的偏微分方程了。图后是附带的matlab命令以及注释,并提供m 文件附件下载,下载后解压即可。希望能对大家有所帮助。

下面是编写的求解上述方程的matlab语句及说明:

g='mygeom';

b='mybound';

定义区域,边界条件。mygeom是定义区域的子函数名,函数名可根据自己的需要取定,区域的确定规则由pdegeom函数说明,注意pdegeom函数只是说明如何定义区域,它并不直接确定区域;mybound是定义边界条件的子函数名,与区域类似,边界的确定规则由函数pdebound确定。后面我会详细介绍区域和边界的取法。

[p,e,t] = initmesh(g);

网格初始化,此处也可以写成[p,e,t] = initmesh('mygeom');这样可以省略上面的语句

[p,e,t] = refinemesh(g,p,e,t);

[p,e,t] = refinemesh(g,p,e,t);

加密网格两次,需要加密几次重复几次即可,根据具体问题确定加密次数

U= assempde(b,p,e,t,1,0,'2*(x+y)-4');

调用assempde函数计算方程的数值解,assempde函数的详细用法可以参考MATH 网站或者PDE的使用指南。常用的用法是[u,res]=assempde(b,p,e,t,c,a,f),其中b

为边界条件,此处也可以写为'mybound',p,e,t,为网格参数,c,a,f,为方程的参数,后面也可以加猜测值以及各种属性。

pdesurf(p,t,U)

grid on;

xlabel('x');ylabel('y');zlabel('u')

colorbar

view([60 30])

画出解的图形。注意,为了让结果更直观一些,使用view函数调整了视点位置。大家可以自行调整视角,满意即可。

exact=p(1,:).^2+p(2,:).^2-p(1,:).*p(2,:).*(p(1,:)+p(2,:));

exact=exact';

figure

pdesurf(p,t,U-exact)

grid on

xlabel('x');ylabel('y');zlabel('error')

colorbar

view([60 30])

由于方程有解析解,我们可以比较数值计算的误差。如果能求得解析解,我们也不会设计各种方法求数值解了,因此,这一步在大多数情况下是用不上的,这里只是为了比较计算结果,验证计算的精度。

m文件下载

MATLAB求解PDE问题(2)——确定几何区域

已有 1327 次阅读2010-10-12 18:58|个人分类:生活点滴|系统分类:科研笔记|关键词:MATLAB PDE 几何区域 pdegeom

前一篇介绍了如何利用Matlab求解椭圆型方程,下面介绍如何确定求解的几何区域。PDE Toolbox中规定几何区域的m文件是pdegeom.m。但是pdegeom 并不是一个可以调用的函数,它只是规定了应该何如定义区域,具体的区域则要根据研究的问题来决定。

函数pdegeom释义如下:

参数为0个时,即没有参数时,返回边界的段数;

参数为1个时,即只有bs,返回输出区域边界的参变量范围矩阵d;

参数为2个时,返回每段边界长度为s时的坐标。

函数参数意义bs表示指定的边缘线段,如矩形边界为四段,三角开边界肯定为三段…。s为第bs段线段弧长的近似(估计)值,bs与s可以为向量,但是

要一一对应,即bs为几个值,s也得为几个值。输出变量[x,y]是每条线段起点和终点所对应的坐标。这个函数编制的关键是,函数内边界上的坐标((x(t),y(t))是用参变量t表示的,返回值是求得边界任意长度时的坐标(x(t),y(t))值,参量可以有很多种选法。

回到前一篇中,给定的方程的求解区域是[0,1,0,1]的一个正方形,我们将它命名为mygeom。下面我们来看下mygeom是怎么编写的。

function [x,y]=mygeom(bs,s)

nbs=4; % 表示边界的段数

if nargin==0,

x=nbs; % 不给定输入变量时,输出表示几何区域边界的线段数

return

end

d=[

0 0 0 0 % 表示每条线段起始值的参量值t(四条边界,所以有四列)

1 1 1 1 % 表示每条线段的终点值参量值t

0 0 0 0 % 沿线段方向左边区域的标识值,如果是1,表示选定左边区域,如果

% 是0,表示不选定左边区域

1 1 1 1 % 沿线段方向右边区域的标识值,规则同上。

];

bs1=bs(:)';

if find(bs1<1 | bs1>nbs),

error('PDE:squareg:InvalidBs', 'Non existent boundary segment number.')

end

if nargin==1,

x=d(:,bs1); % 给定一个输入变量时,输出区域边界数据的矩阵

return

end

x=zeros(size(s));

y=zeros(size(s));

[m,n]=size(bs);

if m==1 && n==1,

bs=bs*ones(size(s)); % expand bs

elseif m~=size(s,1) || n~=size(s,2),

error('PDE:squareg:SizeBs', 'bs must be scalar or of same size as s.');

end

if ~isempty(s),

% 第一段边界

ii=find(bs==1);

if length(ii)

x(ii)=interp1([d(1,1),d(2,1)],[0 1],s(ii));% 通过参量来确定边界上的值

y(ii)=interp1([d(1,1),d(2,1)],[1 1],s(ii));%

end

% 第二段边界

ii=find(bs==2);

if length(ii)

x(ii)=interp1([d(1,2),d(2,2)],[1 1],s(ii));

y(ii)=interp1([d(1,2),d(2,2)],[1 0],s(ii));

end

% 第三段边界

ii=find(bs==3);

if length(ii)

x(ii)=interp1([d(1,3),d(2,3)],[1 0],s(ii));

y(ii)=interp1([d(1,3),d(2,3)],[0 0],s(ii));

end

% 第四段边界

ii=find(bs==4);

if length(ii)

x(ii)=interp1([d(1,4),d(2,4)],[0 0],s(ii));

y(ii)=interp1([d(1,4),d(2,4)],[0 1],s(ii));

end

end

编辑完该函数后,可以利用pdeplot函数来测试设置的几何区域是否满足要求。在matlab命令窗口输入:

pdegplot('mygeom'), axis equal

[p,e,t]=initmesh('mygeom');

pdemesh(p,e,t), axis equal

结果如下:

mygeom的m文件放在附件里,大家可以下载。本篇写作时参考了刘平的博客,已在前面指出,另参考了《偏微分方程的MATLAB解法》及《MATLAB PDE Toolbox User Guide》,有兴趣的读者可以参阅。

MATLAB求解PDE问题(3)——确定边界条件

已有 1508 次阅读2010-10-12 23:46|个人分类:生活点滴|系统分类:科研笔记|关键词:MATLAB PDE Toolbox pdebound 边界条件

前一篇给出了如何确定几何区域,本篇接着给出如何确定边界条件,在几何区域和边界条件都确定好之后,就可以利用PDE Toolbox对给定的PDE进行计算了。先回忆下前面的边界条件:

上面的四个边界条件中,前两个是Dirichlet边界,后两个是Neumann边界。我们先了解下PDE Toolbox中规定有三种边界条件,一是Dirichlet边界条件,一是广义Neumann条件,一是混合边界条件(只用于方程组)。这和传统的定义有所不同,按照传统的观点,PDE Toolbox中的广义Neumann条件应该是混合边界条件(Robin边界条件),而传统的Neumann边界条件是指边界处的法向导数为零。我们先不考虑方程组,Dirichlet边界条件和广义Neumann条件写成如下形式:

其中是外是边界法向量与x轴的夹角。

规定边界条件的m文件是pdebound函数,该函数并不提供边界条件,而是要求用户按照规定的方法给出边界条件,用户可以自己给定函数的名字。我们计算中给出的边界条件函数是mybound。调用格式为[q,g,h,r]=mybound(p,e,u,time)。 pdebound函数中最主要的内容是bl矩阵,bl包括了所有的边界信息。bl的每一列都是边界条件矩阵的对应列,每一列都必须满足下面的规则: 第一行是方程的维数N,一个方程N=1,两个方程构成的方程组,N=2,…;

第二行是Dirichlet边界条件数M,Dirichlet边界条件时M=N,广义Neumann 边界条件时M=0,如果是方程组,0

第三行到第3+N2-1行是表示q的字符串的长度,这个长度按与q有关的列方向的次序储存;

第3+N2行到第3+N2+N-1是表示g的字符串的长度;

第3+N2+N行到第3+N2+N+MN-1是表示h的字符串的长度,这个长度按与h 有关的列方向的次序储存;

第3+N2+N+MN行到第3+N2+N+MN+M-1是表示r的字符串的长度;

接下来的行是包括MATLAB文本表达式所表示的真实边界条件函数。文本表达式是将实际的表达式通过double函数转化为ASCII码后的表达式。文本字符串的长度与前面四行规定的长度是一致的,两个字符串之间没有分隔符。可以插入含有下列变量的文本表达式:

二维坐标x和y;

边界线段参数s,弧长的比例。在边界线段的起始处s=0,向着线段的终点处增加到s=1;

外法向量分量nx,ny。如果要用到切向量,可以用tx和ty表示,其中tx=-ny,ty=nx;

解u(除非已指定输入参数u);

时间t(除非已指定输入参数time)。

注意,在只有一个方程的时候,即N=1,如果M=0时,即是广义Neumann 边界条件,此时不需要表示表示Dirichlet边界条件的h,r两行,因此表示q和g的字符串从第5行开始(前四行分别为N,M,q,g的指示行);如果M=1,此时表示h,r的字符串从第9行开始(前六行分别是N,M,q,g,h,r的指示行,第七八行表示q,g,它们均为0,ASCII码为48)

下面看下我们计算你的例子中边界mybound函数的内容:

function [q,g,h,r]=mybound(p,e,u,time)

% upper=double('2-2*x-x.^2');% y=1上边界条件函数

% down =double('x.^2'); % y=0下边界条件函数

% left =double('y.^2'); % x=0左边界条件函数

% right=double('2-2*y-y.^2'); % x=1右边界条件函数

% upper=upper'; % 转化为列向量

% down =down';

% left =left';

% right=right';

%

bl=[

1 1 1 1 % N 表示方程维数的指示行

0 0 1 1 % M 表示Dirichlet边界条件的指示行,M=0为广义Neumann边界条件

1 1 1 1 % q 表示q的字符串的长度,根据实际长度确定,

10 10 1 1 % g 表示g的字符串的长度,如1表示字符串的长度为1

48 48 1 1 % h 表示h的字符串的长度,这是针对M=1的列,本例子是三四列50 50 4 4 % r 表示r的字符串的长度,规则同上。

45 45 48 48 % 本行以下是边界条件函数的字符串表达式,字符串的长度与上面

50 50 48 48 % 规定的一致。注意,这些都是将表达式转化为ASCII码后的数

42 42 49 49 % 例如x的ASCII码是120,ASCII码的0表示null(空)120 121 120 121 % 需要注意的还有,M=0的列,字符表达式从g的下一行开始,

45 45 46 46 % 即从第5行开始。M=1的列,从r的下一行开始,即7,8两行是

120 121 94 94 % 表示q,g的字符串的长度,此时认为q,g均为0,0的ASCII

46 46 50 50 % 码是48,因此7,8两行均为48。在往下,按照h,r

的长度排列。

94 94 0 0 % 由此造成的行数不匹配,可以由任意ASCII码补齐,一般以0

50 50 0 0 % (表示null,空)表示,不容易引起歧义。

];

if any(size(u))

[q,g,h,r]=pdeexpd(p,e,u,time,bl);

else

[q,g,h,r]=pdeexpd(p,e,time,bl);

end

规定边界条件的矩阵bl较为复杂,详细的解释可以使大家省不少时间,但是也容易把大家整晕,我也是在这方面花费了不少功夫。下面具体分析下bl中的两列。第一列对应着上边界条件(Neumann边界条件):

与边界条件的标准形式比较,有,q=0,g=2-2*x-x.^2,于是第一列可以写为 [1 0 1 10 '0' '2-2*x-x.^3']'

其中1表示N=1,即一个方程,0表示Neumann边界条件;1表示q的长度;10表示g的长度,'0'表示q=0,长度为1;'2-2*x-x.^3'表示g=2-2*x-x.^2,转化为ASCII码后长度为10。因此第一列最终写为

[1 0 1 10 48 50 45 50 42 120 45 120 46 94 50 ]'

第三列对应着下边界条件,是Dirichlet边界条件:

与标准形式比较,有,h=1,r=x.^2,于是第三列可以写为

[1 1 1 1 1 4 '0' '0' '1' 'x.^2']'

按顺序依次为,1表示N=1,一个方程;1表示Dirichlet边界条件;1表示q的长度,此时必为1;1表示g的长度,此时也必为1;1表示h的长度是1;4表示r的长度为4;'0'表示q的值为0(0的字符串长度是1);'0'表示g的值是0;'1'表示h=1(1的ASCII码是49);'x.^2'表示r=x.^2,转化为ASCII码后长度是4。于是第三列可以写为

[1 1 1 1 1 4 48 48 49 120 46 94 50]'

此时第三列的长度小于第一列的长度,缺几个长度就可以添加几个ASCII码的0,表示空,这样第三列就是mybound中的第三列了,如下

[1 1 1 1 1 4 48 48 49 120 46 94 50 0 0]'

最后附上mybound的m文件,有需要的可以下载。

mybound文件

MATLAB求解PDE问题(4)——总结

已有 1792 次阅读2010-10-13 11:16|个人分类:生活点滴|系统分类:科研笔记|关键词:MATLAB PDE Toolbox 使用说明 assempde

通过前面三篇的介绍,大家已经能够掌握PDE Toolbox求解椭圆型方程的用法了。本篇在前面三篇的基础上,大致介绍PDE Toolbox中一些其它函数的用法,供大家理解。

我们先总结下利用PDE Toolbox求解PDE(s)的基本步骤:第一要把方程化为标准形式,不论是椭圆方程,还是其他类型的方程,均要化为标准形式后才能利用工具箱求解;第二要写出表示求解区域和几何区域文件以及表示边界条件的边界条件文件;完成这两步后,后面的步骤就容易了。依次为网格初始化,加密网格(或者使用自适应网格);根据方程的类型使用相应的计算函数;对结果进行分析计算以及可视化处理。

PDE Toolbox能够求解的方程类型前面也已说过,有椭圆型方程,抛物型方程,双曲型方程,特征值方程,非线性方程五类。其中抛物型和双曲型涉及到时间,应按照要求给出初始值。特征值问题是一个齐次问题,即边界条件中g=0,r=0。非齐次部分将会被自动删去,这在理解工具箱自带的squareb2边界条件时尤为重要。

下面以一段程序来尽量多介绍几个函数的用法,关于这些函数的用法大家可以从网络、工具箱的用户说明手册、各种介绍工具箱的数据中得到详细的说明。

g='yourgeom';

b='yourbound';

以上两行确定几何区域和边界条件

[p,e,t]=initmesh('yourgeom'); % 网格初始化

[p,e,t] = refinemesh('yourgeom',p,e,t); % 网格加密

[p,e,t] = refinemesh('yourgeom',p,e,t);

以上三行初始化网格并加密

c='your content c'; % 系数

a='your content a';

f='your content f';

以上三行确定方程参数,注意特征值问题是齐次问题,不需要f

U= assempde(b,p,e,t,c,a,f); % 求解椭圆型PDE问题

U=parabolic(u0,tlist,b,p,e,t,c,a,f,d); % 求解抛物型PDE问题

U=hyperbolic(u0,ut0,tlist,b,p,e,t,c,a,f,d); % 求解双曲型PDE问题

[v,l]=pdeeig(b,p,e,t,c,a,d,r); % 求解特征值PDE问题

U=pdenonlin(b,p,e,t,c,a,f); % 求解非线性PDE问题

U=poisolv(b,p,e,t,f); % 求矩形网格上泊松方程的快速解

以上六行根据自己遇到的问题选定一行即可。如果涉及到时间,需要给出初值等,详细用法可以从User Guider中获取。

pdecont(p,t,U) %绘制等值线图

pdeplot(p,e,t,'PropertyName',PropertyValue,) %一般PDE工具箱绘制函数

pdesurf(p,t,u) % 绘制表面图

以上三行是结果可视化的命令,可以根据自己的需要选择。

上面的示例程序是利用PDE工具箱求解PDE问题的总体步骤。对于任意一种PDE,均可以按照给出的程序步骤进行计算。如果需要对计算结果进行处理,

比如说求梯度等,PDE工具箱也提供了相应的命令,这里就不再介绍了。下面介绍下自适应网格求解PDE问题,还命令的用法如下

[u,p,e,t]=adaptmesh(g,b,c,a,f,'PropertyName',PropertyValue);

% 生成自适应网格并求解PDE问题

注意,该命令将网格生成和求解问题合在一起了,如果求解非线性PDE问题时,属性中的非线性开关应设置为'on'。

介绍PDE Toolbox的这几篇博文到这里就结束了,这也算是对自己这段时间来使用工具箱经验的总结。刚接触时在设定几何区域和边界条件处遇到了很多问题,在挣扎了许久后终于学会如何使用PDE Toolbox。希望通过这几篇博文,新接触到PDE工具箱的人可以更加容易得掌握其用法。大家可以任意使用博文的全部或片段,转载请说明出处,谢谢。

基于Matlab基本图像处理程序

图像读入 ●从图形文件中读入图像 imread Syntax: A = imread(filename, fmt) filename:指定的灰度或彩色图像文件的完整路径和文件名。 fmt:指定图形文件的格式所对应的标准扩展名。如果imread没有找到filename所制定的文件,会尝试查找一个名为filename.fmt的文件。 A:包含图像矩阵的矩阵。对于灰度图像,它是一个M行N列的矩阵。如果文件包含 RGB真彩图像,则是m*n*3的矩阵。 ●对于索引图像,格式[X, map] = imread(filename, fmt) X:图像数据矩阵。 MAP:颜色索引表 图像的显示 ●imshow函数:显示工作区或图像文件中的图像 ●Syntax: imshow(I) %I是要现实的灰度图像矩阵 imshow(I,[low high],param1, val1, param2, val2,...) %I是要现实的灰度图像矩阵,指定要显示的灰度范围,后面的参数指定显示图像的特定参数 imshow(RGB) imshow(BW) imshow(X,map) %map颜色索引表 imshow(filename) himage = imshow(...) ●操作:读取并显示图像 I=imread('C:\Users\fanjinfei\Desktop\baby.bmp');%读取图像数据 imshow(I);%显示原图像 图像增强 一.图像的全局描述 直方图(Histogram):是一种对数据分布情况的图形表示,是一种二维统计图表,它的两个坐标分别是统计样本和该样本对应的某个属性的度量。 图像直方图(Image Histogram):是表示数字图像中亮度分布的直方图,用来描述图象灰度值,标绘了图像中每个亮度值的像素数。 灰度直方图:是灰度级的函数,它表示图像中具有某种灰度级的像素的个数,反映了图 像中某种灰度出现的频率。描述了一幅图像的灰度级统计信息。是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出现的次数或概率。 归一化直方图:直接反应不同灰度级出现的比率。纵坐标表示具有各个灰度级别的像

应用matlab求解约束优化问题

应用matlab求解约束优化问题 姓名:王铎 学号: 2007021271 班级:机械078 上交日期: 2010/7/2 完成日期: 2010/6/29

一.问题分析 f(x)=x1*x2*x3-x1^6+x2^3+x2*x3-x4^2 s.t x1-x2+3x2<=6 x1+45x2+x4=7 x2*x3*x4-50>=0 x2^2+x4^2=14 目标函数为多元约束函数,约束条件既有线性约束又有非线性约束所以应用fmincon函数来寻求优化,寻找函数最小值。由于非线性不等式约束不能用矩阵表示,要用程序表示,所以创建m文件其中写入非线性不等式约束及非线性等式约束,留作引用。 二.数学模型 F(x)为目标函数求最小值 x1 x2 x3 x4 为未知量 目标函数受约束于 x1-x2+3x2<=6 x1+45x2+x4=7 x2*x3*x4-50>=0 x2^2+x4^2=14 三.fmincon应用方法 这个函数的基本形式为 x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 其中fun为你要求最小值的函数,可以单写一个文件设置函数,也可是m文件。 1.如果fun中有N个变量,如x y z, 或者是X1, X2,X3, 什么的,自己排个顺序,在fun中统一都是用x(1),x(2)....x(n) 表示的。 2. x0, 表示初始的猜测值,大小要与变量数目相同 3. A b 为线性不等约束,A*x <= b, A应为n*n阶矩阵。 4 Aeq beq为线性相等约束,Aeq*x = beq。 Aeq beq同上可求 5 lb ub为变量的上下边界,正负无穷用 -Inf和Inf表示, lb ub应为N阶数组 6 nonlcon 为非线性约束,可分为两部分,非线性不等约束 c,非线性相等约束,ceq 可按下面的例子设置 function [c,ceq] = nonlcon1(x) c = [] ceq = [] 7,最后是options,可以用OPTIMSET函数设置,具体可见OPTIMSET函数的帮助文件。 四.计算程序

基于MATLAB的减少图像噪声

目录 第一章概述 (2) 第二章典型噪声介绍 (3) 第三章基于MATLAB的模拟噪声生成 (5) 第四章均值滤波处理方法 (7) 4.1均值滤波原理 (7) 4.2 均值滤波法对图像的处理 (9) 第五章中值滤波处理方法 5.1 中值滤波原理 (12) 5.2中值滤波法对图像的处理 (12) 第六章频域低通滤波法 (15) 6.1理想低通滤波器(ILPF)对图像的处理 (15) 6.2 巴特沃思低通滤波器(BLPF)对图像的处理 (18) 6.3 指数滤波器(ELPF)对图像的处理 (20) 6.4 梯形滤波器(TLPF)对图像的处理 (22) 6.5 构建二维滤波器对图像的处理 (24) 第七章总结与体会 (27) 参考文献 (28)

第一章概述 图像平滑主要有两个作用:一个是清除或减少噪声,改善图像质量;另一个是模糊图像,使图像看起来更柔和自然。图像噪声来自于多方面,有来自于系统外部的干扰,如电磁波或经电源窜进系统内部的外部噪声;也有来自于系统内部的干扰,如摄像机的热噪声,电器机械运动而产生的抖动噪声内部噪声。实际获得的图像都因受到干扰而有噪声,噪声产生的原因决定了噪声分布的特性及与图像信号的关系。减少噪声的方法可以在空间域或在频率域处理。空间域常用的方法有领域平均法、中值滤波法、多图像平均法等;在频域可以采用理想低通、巴特沃斯低通等各种形式的低通滤波器进行低通滤波。 图像平滑处理的主要目的是去噪声,而噪声有很多种,大体可分为两类:加性噪声和乘性噪声。加性噪声通常表现为椒盐噪声、高斯噪声等;乘性噪声的一个典型例子就是光照变化。图像中的噪声往往是和信号交织在一起的,尤其是乘性噪声,如果平滑不当,就会使图像本身的细节如边缘轮廓,线条等模糊不清,从而使图像降质。图像平滑总是要以一定的细节模糊为代价的,因此如何尽量平滑掉图像的噪声,又尽量保持图像的细节,是图像平滑研究的主要问题之一。 图像平滑主要是为了消除被污染图像中的噪声,这是遥感图像处理研究的最基本内容之一,被广泛应用于图像显示、传输、分析、动画制作、媒体合成等多个方面。该技术是出于人类视觉系统的生理接受特点而设计的一种改善图像质量的方法。

matlab 无约束优化问题

实验八 无约束优化问题 一.实验目的 掌握应用matlab 求解无约束最优化问题的方法 二.实验原理及方法 1:标准形式: 元函数 为其中n R R f X f n R x n →∈:) (min 2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤:⑴ 给定初始点 n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算() k X f ?; ⑶ 检验是否满足收敛性的判别准则: () ε≤?k X f , 若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令() k k X f S -?=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()() k k k k k S X f S X f λλλ+=+≥0 min ; ⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵. 最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法..牛顿法算法步骤: (1) 选定初始点n E X ∈0,给定允许误差0>ε,令k=0; (2) 求()k X f ?,()() 1 2-?k X f ,检验:若() ε

matlab图像去噪算法设计(精)

数字图像去噪典型算法及matlab实现 希望得到大家的指点和帮助 图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等; 目前比较经典的图像去噪算法主要有以下三种: 均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。 中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。很容易自适应化。 Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。对于去除高斯噪声效果明显。实验一:均值滤波对高斯噪声的效果 I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像 J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声 subplot(2,3,1);imshow(I); title('原始图像'); subplot(2,3,2); imshow(J); title('加入高斯噪声之后的图像'); %采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3 K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5 K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7 K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9 subplot(2,3,3);imshow(K1); title('改进后的图像1'); subplot(2,3,4); imshow(K2); title('改进后的图像2');

利用Matlab求解机械设计优化问题的分析

利用MATLAB求解机械设计优化问题的分析 周婷婷 (能源与动力学院,油气0701) 摘要:MATLAB是目前国际上最流行的科学与工程计算的软件工具, 它具有强大的数值分析、矩阵运算、信号处理、图形显示、模拟仿真和最优化设计等功能。本文浅谈MATLAB在机械设计优化问题的几点应用。 关键词:MATLAB 约束条件机械设计优化 引言:在线性规划和非线性规划等领域经常遇到求函数极值等最优化问题,当函数或约束条件复杂到一定程度时就无法求解,而只能求助于极值分析算法,如果借助计算器进行手工计算的话,计算量会很大,如果要求遇到求解极值问题的每个人都去用BASIC,C和FORTRAN之类的高级语言编写一套程序的话,那是非一朝一日可以解决的,但如用MATLAB语言实现极值问题的数值解算,就可以避免计算量过大和编程难的两大难题,可以轻松高效地得到极值问题的数值解,而且可以达到足够的精度。 1无约束条件的极值问题的解算方法 设有Rosenbrock函数如下: f(X1,X2)=100(X2-X1*X1)2+(1-X1)2 求向量X取何值时,F(x)的值最小及最小值是多少? 先用MATLAB语言的编辑器编写求解该问题的程序如下: %把函数写成MATLAB语言表达式 fun=’100*(X(2)-X(1)*X(1)2+(1-X(1))2 %猜自变量的初值 X0=[-1 2]; %所有选项取默认值 options=[ ]; %调用最优化函数进行计算。 %函数最小值存放在数组元素options(8)中

%与极值点对应的自变量值存放在向量X里 %计算步数存放在数组元素options(10)中 [X,options]=fmins(fun,X0,options); %显示与极值点对应的自变向量X的值。 %显示函数最小值 options(8) %显示函数计算步数 options(10) 把上面这段程序保存为m文件,然后用“Tools”菜单中的“Run”命令行这段程序,就可以轻松的得到如下结果: X=9.999908938395383e-001 9.99982742178110e-001 ans=1.706171071794760e-001 ans=195 显然,计算结果与理论结果的误差小到e-10级,这里调用了MATLAB的最优化函数fmins(),它采用Nelder-Mead的单纯形算法,就是因为这个函数的采用,使最小值问题的解算变得非常简单。 2.带约束条件的极值问题的解法 设目标函数和约束条件如下: f(x) =-3X1+X2+X3 -X1+2X2-X3>= -11 4X1-X2-2X3<=-3 2X1-X3= -1 X1>=0,X2>=0,X3>=0; 求X向量取何值时函数取极小值? 对条件极值问题通常的做法都是将约束条件标准化(即把等式约束条件写成等号为0的形式,把不等式写成<=0的形式)。然后把条件极值问题转换为非条件极值问题,MATLAB也采用同样的做法。

最新图像去噪处理的研究及MATLAB仿真

图像去噪处理的研究及M A T L A B仿真

目录 引言 (1) 1图像去噪的研究意义与背景 (2) 1.1数字图像去噪研究意义与背景 (2) 1.2 数字图像去噪技术的研究现状 (3) 2 邻域平均法理论基础 (3) 2.1 邻域平均法概念 (3) 3 中值滤波法理论基础 (3) 3.1中值滤波法概念 (3) 3.2中值滤波法的实现 (4) 4中值滤波法去噪技术MATLAB仿真实现 (4) 4.1Matlab仿真软件 (4) 4.2中值滤波法的MATLAB实现 (5) 4.3邻域平均法的MATLAB实现 (6) 总结 (8) 全文工作总结 (8) 工作展望 (8) 参考文献 (9) 英文摘要 (10) 致谢语 (11)

图像去噪处理的研究及MATLAB仿真 电本1102班姓名:杨韬 指导老师:刘明军摘要:图像是生活中一种重要的信息来源,通过对图像的处理可以帮助我们了解信息的内在信息。数字图像去噪声涉及光学系统、微电子技术、计算机科学、数学分析等领域,是一门综合性很强的边缘科学,如今其理论体系非常完善,且其应用很广泛,在医学、军事、艺术、农业等都有广泛且充分的应用。MATLAB是一种高效的工程计算语言,在数值计算、数据处理、图像处理、神经网络、小波分析等方面都有广泛的应用。MATLAB是一种向量语言,它非常适合于进行图像处理。 本文概述了邻域平均法与中值滤波法去噪的基本原理。对这两种常用的去噪方法进行了分析比较和仿真实现。最后根据理论分析和实验结果,讨论了一个完整去噪算法中影响去噪性能的各种因素。为实际工作中的图像处理,去噪方法的选择和改进提供了数据参考和依据。 关键字:邻域平均法;中值滤波法;MATLAB 引言 图像因为一些原因总会被外界干扰,所以图像质量往往不是很好,而质量不好的图片又不容易进行进一步的处理。在对图像的地处理过程中,图像去噪是很重要的一个环节,所以想对图像进行进一步的处理,对图像的去噪就变得重要起来,所以很多研究人员对这一课题进行了比较全面的研究,图像的处理最传统的方法是在空域中的处理,也就是说在图像的空间范畴内对图像质量进行改善。也可以对图像进行平滑处理等,这属于第一类图像处理方法。 中值滤波法与邻域平均法是出现最早的去噪手段,而且由于其具备良好的空频特性,实际应用也非常广泛。其中图像的邻域平均去噪方法是众多空域图像去噪方法中效果最好的去噪方法。基本思想就是用邻近的像素平均值来代替噪声的像素,且图像尺寸越大,去噪

基于MATLAB的图像平滑算法实现及应用

目录 1.3 图像噪声 一幅图像在获取和传输等过程中,会受到各种各样噪声的干扰,其主要来源有三:一为在光电、电磁转换过程中引入的人为噪声;二为大气层电(磁)暴、闪电、电压、浪涌等引起的强脉冲性冲激噪声的干扰;三为自然起伏性噪声,由物理量的不连续性或粒子性所引起,这类噪声又可分成热噪声、散粒噪声等。一般在图像处理技术中常见的噪声有:加性噪声、乘性噪声、量化噪声、“盐和胡椒”噪声等。下面介绍两种主要的噪声。 1、高斯噪声 这种噪声主要来源于电子电路噪声和低照明度或高温 带来的传感器噪声,也称为正态噪声,是在实践中经常用到的噪声模型。高斯随机变量z 的概率密度函数(P D F )由下式给出: }2/)(ex p{2/1)(22σμσπ--=z z p 其中, z 表示图像像元的灰度值;μ表示z 的期望;σ表示z 的标准差。 2、椒盐噪声 主要来源于成像过程中的短暂停留和数据传输中产生 的错误。其P D F 为: ?????===其他0)(b z pb a z pa z p 如果b > a , 灰度值b 在图像中显示为一亮点,a 值显

示为一暗点。如果P a和图像均不为零,在图像上的表现类似于随机分布图像上的胡椒和盐粉微粒,因此称为椒盐噪声。当P a为零时,表现为“盐”噪声;当P b为零时,表现为“胡椒”噪声。 图像中的噪声往往是和信号交织在一起的尤其是乘性 噪声,如果平滑不当,就会使图像本身的细节如边缘轮廓‘线条等模糊不清,从而使图像质量降低。

第二章、图像平滑方法 2.1 空域低通滤波 将空间域模板用于图像处理,通常称为空间滤波,而空间域模板称为空间滤波器。空间域滤波按线性和非线性特点有:线性、非线性平滑波器。 线性平滑滤波器包括领域平均法(均值滤波器),非线 性平滑滤波器有中值滤波器。 2.1.1 均值滤波器 对一些图像进行线性滤波可以去除图像中某些类型的噪声,如采用邻域平均法的均值滤波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。邻域平均法是空间域平滑技术。这种方法的基本思想是,在图像空间,假定有一副N ×N 个像素的原始图像f (x ,y ),用领域内几个像素的平均值去代替图像中的每一个像素点值的操作。经过平滑处理后得到一副图像 g (x ,y ), 其表达式如下: ∑∈=s n m n m f M y x g ),(),(/1),( 式中: x ,y =0,1,2,…,N -1;s 为(x ,y )点领域中点的坐标的集合,但不包括(x ,y )点;M 为集合内坐标点的总数。 领域平均法有力地抑制了噪声,但随着领域的增大,图像的模糊程度也愈加严重。为了尽可能地减少模糊失真,也可采用阈值法减少由于领域平均而产生的模糊效应。其公式如下: ?????>-=∑∑∈∈其他),(),(/1),(),(/1),(),(),(y x f T n m f M y x f n m f M y x g s n m s n m 式中:T 为规定的非负阈值。

MATLAB解决线性规划问题

运行环境:Windows+MATLAB 解决问题:线性规划问题(特定题目) 实验简述: MATLAB 可以高效、方便地解决线性规划问题。线性规划是合理利用、调配资源的一种应用数学的方法。它的基本思路就是在满足一定的约束条件下,使预定的目标达到最优。它的研究内容可归纳为两个方面:一是系统的任务已定,如何合理筹划,精细安排,用最少的资源去实现这个任务:二是资源的数量已定,如何利用、分配,使任务完成得最多。前者是求极小,后者是求极大。线性规划是在满足企业内、外部的条件下,实现管理目标和极值问题,就是要以尽少的资源输入来实现更多的社会需要的产品的产出。现在通过专门的数学MATLAB 软件,只要将模型中的目标函数系数、约束条件系数、不等关系输入计算机,就会很快算出结果。 在生活实践中,很多重要的实际问题都是线性的(至少能够用线性函数很好的近似表示),所以我们一般把这些问题化为线性的目标函数和约束条件进行分析,通常将目标函数和约束都是线性表达式的规划问题称为线性规划。 它的一般形式是: ) ,,2,1(0. .min 221122222121112121112211n i x b x a x a x a b x a x a x a b x a x a x a t s x c x c x c f i m n mn m m n n n n n n =>=???????<=+++<=+++<=++++++= 也可以用矩阵形式来表示: 0,..min >=<==x b Ax t s x c f T 线性规划的可行解是满足约束条件的解;线性规划的最优解是使目标函数达到最优的可行解。 线性规划关于解的情况可以是: 1、无可行解,即不存在满足约束条件的解; 2、有唯一最优解,即在可行解中有唯一的最有解; 3、有无穷最优解,即在可行解中有无穷个解都可使目标函数达到最优; 4、有可行解,但由于目标函数值无界而无最优解。 一般求解线性规划的常用方法是单纯形法和改进的单纯形法,这类方法的基

图像去噪TV模型及Matlab实现

1.%% ROFdenoise 2.% 3.% Image -to denoise 4.% Theta - the parameter 5.% 6.% This denoising method is based on total-variation, originally proposed by 7.% Rudin, Osher and Fatemi. In this particular case fixed point iteration 8.% is utilized. 9.%------ 10.% For the included image, a fairly good result is obtained by using a 11.% theta value around 12-16. A possible addition would be to analyze the 12.% residual with an entropy function and add back areas that have a lower 13.% entropy, i.e. there are some correlation between the surrounding pixels. 14.%------ 15.% Code Provided By Li.J.Z 16.% Based on total-variation 17. 18.function A = ROFdenoise(Image, Theta) 19. 20.[Image_h Image_w] = size(Image); 21.g = 1; dt = 1/4; nbrOfIterations = 50; 22.Image = double(Image); 23. 24.p = zeros(Image_h,Image_w,2); 25.d = zeros(Image_h,Image_w,2); 26.div_p = zeros(Image_h,Image_w); 27. 28.for i = 1:nbrOfIterations 29. for x = 1:Image_w 30. for y = 2:Image_h-1 31. div_p(y,x) = p(y,x,1) - p(y-1,x,1); %backward difference 32. end 33. end 34. 35. for x = 2:Image_w-1 36. for y = 1:Image_h 37. div_p(y,x) = div_p(y,x) + p(y,x,2) - p(y,x-1,2); 38. end 39. end 40. 41. % Handle boundaries 42. div_p(:,1) = p(:,1,2);

小波变换图像去噪MATLAB实现

基于小波图像去噪的MATLAB 实现 一、 论文背景 数字图像处理(Digital Image Processing ,DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP 技术成为信息技术中最重要的学科分支之一。在现实生活中,DIP 应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。 然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。根据研究表明,当一图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。 二、 课题原理 1.小波基本原理 在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。一组小波基函数,()}{,x b a ψ,可以通过缩放和平移基本小波 来生成:

())(1 ,a b x a x b a -ψ=ψ (1) 其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。当a=2j 和b=ia 的情况下,一维小波基函数序列定义为: ()() 1222,-ψ=ψ--x x j j j i (2) 其中,i 为平移参数,j 为缩放因子,函数f (x )以小波()x ψ为基的连续小波变换定义为函数f (x )和()x b a ,ψ的积: ( )dx a b x a x f f x W b a b a )(1)(,,,-ψ= ψ=?+∞∞- (3) 与时域函数对应,在频域上则有: ())(,ωωa e a x j b a ψ=ψ- (4) 可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且()x b a ,ψ的窗口中心向|ω|增大方向移动。这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。总体说来,小波变换具有更好的时频窗口特性。 2. 图像去噪综述 所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。通常噪声是不可预测的随机信号。由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。 依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。设

MATLAB图像滤波去噪分析及其应用

《MATLAB图像滤波去噪分析及其应用》,双线性滤波、Kirsch滤波、超限邻域滤波、逆滤波、双边滤波、同态滤波、小波滤波、六抽头滤波、约束最小平方滤波、非线性复扩散滤波、Lee滤波、Gabor滤波、Wiener 滤波、Kuwahara滤波、Beltrami流滤波、Lucy Richardson滤波、NoLocalMeans滤波等研究内容。 《MATLAB图像滤波去噪分析及其应用》全面而系统地讲解了MATLAB图像滤波去噪分析及其应用;结合算法理论,详解算法代码(代码全部可执行且验证通过),以帮助读者更好地学习本书内容。对于网上讨论的大部分疑难问题,本书均有涉及。 第1章图像颜色空间相互转换与MATLAB实现 1.1图像颜色空间原理 1.1.1RGB颜色空间 1.1.2YCbCr颜色空间 1.1.3YUV颜色空间 1.1.4YIQ颜色空间 1.1.5HSV颜色空间 1.1.6HSL颜色空间 1.1.7HSI颜色空间 1.1.8CIE颜色空间 1.1.9LUV颜色空间 1.1.10LAB颜色空间 1.1.11LCH 颜色空间 1.2颜色空间转换与MATLAB实现 1.2.1图像YCbCr与RGB空间相互转换及MATLAB实现 1.2.2图像YUV与RGB空间相互转换及MATLAB实现 1.2.3图像YIQ与RGB空间相互转换及MATLAB实现 1.2.4图像HSV与RGB空间相互转换及MATLAB实现 1.2.5图像HSL与RGB空间相互转换及MATLAB实现 1.2.6图像HSI与RGB空间相互转换及MATLAB实现 1.2.7图像LUV与RGB空间相互转换及MATLAB实现 1.2.8图像LAB与RGB空间相互转换及MATLAB实现 1.2.9图像LCH 与RGB空间相互转换及MATLAB实现 第2章图像噪声概率密度分布与MATLAB实现 2.1噪声概率密度分布函数 2.1.1均匀分布 2.1.2正态分布 2.1.3卡方分布 2.1.4F分布 2.1.5t分布 2.1.6Beta分布 2.1.7指数分布 2.1.8Gamma分布 2.1.9对数正态分布 2.1.10瑞利分布 2.1.11威布尔分布

最优化方法的Matlab实现(公式(完整版))

第九章最优化方法的MatIab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: 1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1 概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。 具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 9.1.1优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1 ?最小化函数

2.方程求解函数 3.最小—乘(曲线拟合)函数

4?实用函数 5 ?大型方法的演示函数 6.中型方法的演示函数 9.1.3参数设置 利用OPtimSet函数,可以创建和编辑参数结构;利用OPtimget函数,可以获得o PtiOns优化参数。 ? OPtimget 函数 功能:获得OPtiOns优化参数。 语法:

用MATLAB求解规划问题

§15. 利用Matlab求解线性规划问题 线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解: % min f'x % s.t .(约束条件):Ax<=b % (等式约束条件):Aeqx=beq % lb<=x<=ub linprog函数的调用格式如下: x=linprog(f,A,b) x=linprog(f,A,b,Aeq,beq) x=linprog(f,A,b,Aeq,beq,lb,ub) x=linprog(f,A,b,Aeq,beq,lb,ub,x0) x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval]=linprog(…) [x, fval, exitflag]=linprog(…) [x, fval, exitflag, output]=linprog(…) [x, fval, exitflag, output, lambda]=linprog(…) 其中: x=linprog(f,A,b)返回值x为最优解向量。 x=linprog(f,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令 111

A=[ ]、b=[ ] 。 x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub为变量x的下界和上界,x0为初值点,options为指定优化参数进行最小化。 Options的参数描述: Display显示水平。选择’off’ 不显示输出;选择’I ter’显示每一步迭代过程的输出;选择’final’ 显示最终结果。 MaxFunEvals 函数评价的最大允许次数 Maxiter 最大允许迭代次数 TolX x处的终止容限 [x,fval]=linprog(…) 左端fval 返回解x处的目标函数值。 [x,fval,exitflag,output,lambda]=linprog(f,A,b, Aeq,beq,lb,ub,x0) 的输出部分: exitflag描述函数计算的退出条件:若为正值,表示目标函数收敛于解x 处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。 output 返回优化信息:output.iterations表示迭代次数;output.algorithm表示所采用的算法;outprt.funcCount表示函数评价次数。 lambda返回x处的拉格朗日乘子。它有以下属性: lambda.lower-lambda的下界; lambda.upper-lambda的上界; lambda.ineqlin-lambda的线性不等式; lambda.eqlin-lambda的线性等式。 112

根据Matlab的图像去噪算法仿真

基于Matlab的图像去噪算法仿真 在信息化的社会里,图像在信息传播中所起的作用越来越大。所以,消除在图像采集和传输过程中而产生的噪声,保证图像受污染度最小,成了数字图像处理领域里的重要部分。 本文主要研究分析邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法的图像去噪算法。首先介绍图像处理应用时的常用函数及其用法;其次详细阐述了四种去噪算法原理及特点;最后运用Matlab软件对一张含噪图片(含高斯噪声或椒盐噪声)进行仿真去噪,通过分析仿真结果得出: 一.均值滤波是典型的线性滤波,对高斯噪声抑制是比较好的; 二.中值滤波是常用的非线性滤波方法,对椒盐噪声特别有效; 三.维纳滤波对高斯噪声有明显的抑制作用; 四.对小波系数进行阈值处理可以在小波变换域中去除低幅值的噪声和不期望的信号。 本论文主要是从两方面展开,首先是图像去噪算法:简要说明了图像噪声的概念及分类,详细阐述了邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法的去噪原理及特点。 其次是基于Matlab的图像去噪算法仿真:根据邻域平均法、中值滤波法、维纳滤波法及模糊小波变换法原理分析,运用Matlab仿真软件编写代码,对一张含噪图片(含高斯噪声或椒盐噪声)进行仿真去噪,并对结果分析讨论,比较几种方法的优缺点。 本论文仿真时选取一张彩色图片“2010-03-09-2.bmp”,并在图片中加入

两种噪声:高斯噪声和椒盐噪声。所谓高斯噪声是指它的概率密度函数服从高斯分布的一类噪声。椒盐噪声是由图像传感器、传输信道、解码处理等产生的黑白相间的亮暗点噪声,属于非平稳噪声。本章利用Matlab软件对含噪图像的去噪算法进行仿真,将应用邻域平均法、中值滤波法、维纳滤波法和模糊小波变换法对含有高斯噪声和椒盐噪声图像的去噪效果进行比较,从而得到相应结论。 1.1邻域平均法的仿真 本节选用邻域平均法对含有高斯噪声和椒盐噪声的图片进行去噪,并用Matlab软件仿真。 (1)给图像加入均值为0,方差为0.02的高斯噪声,选择3×3模板去噪Matlab部分代码: j=imnoise(x,'gaussian',0,0.02); h=ones(3,3); h=h/9; k=conv2(j,h); 仿真结果如图4-1所示。

基于MATLAB的图像去噪实验报告

实验二图像去噪 一、实验目的 1、熟悉图像高斯噪声与椒盐噪声的特点; 2、掌握利用均值滤波与中值滤波去除图像噪声的方法。 二、实验内容 1、打开Matlab 编程环境。 2、读入图像,在图像上分别添加高斯噪声与椒盐噪声。 3、显示原图像与噪声图像。 4、对噪声图像进行均值滤波与中值滤波处理。 5、显示处理效果图。 三、实验程序及结果 1、实验程序 m=imread('pout、tif'); x=imnoise(m,'salt & pepper',0、02); y=imnoise(m,'gaussian',0,0、01); figure(1) subplot(311) imshow(m); subplot(312) imshow(x) subplot(313) imshow(y); q=filter2(fspecial('average',3),x); w=filter2(fspecial('average',3),y); n=medfilt2(m); figure(2) subplot(311) imshow(uint8(q)); subplot(312) imshow(uint8(w)); subplot(313) imshow(n); 2、实验结果

四、实验思考: 1、比较均值滤波与中值滤波的对高斯噪声与椒盐噪声图像的处理效果,分析原

理? 答:中值滤波对于椒盐噪声效果好,因为椒盐噪声就是幅值近似相等但随机分布在不同的位置上,图像中有干净点也有污染点。中值滤波就是选择适当的点来代替污染的点所以处理效果会更好。由于噪声的均值不为零,所以均值滤波不能很好的去除噪声点。 均值滤波对于高斯噪声效果好,因为高斯噪声的幅值近似于正态分布但就是却分布在每个点像素上。图像中的每个点都就是污染点,所以如果采用中值滤波会找不到合适的干净点,由于正态分布的均值为零,所以均值滤波可以削弱噪声。

最优化方法的Matlab实现(公式完整版)

第九章最优化方法的Matlab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容:1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1 概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、

非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 9.1.1 优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1.最小化函数 表9-1 最小化函数表 2.方程求解函数 表9-2 方程求解函数表

3.最小二乘(曲线拟合)函数 表9-3 最小二乘函数表 4.实用函数 表9-4 实用函数表 5.大型方法的演示函数 表9-5 大型方法的演示函数表

MATLAB实现频域平滑滤波以及图像去噪代码

MATLAB实现频域平滑滤波以及图像去噪代码用MATLA实现频域平滑滤波以及图像去噪代码 悬赏分:50 - 解决时间 :2008-11-8 14:21 是数字图象处理的实验,麻烦高人给个写好的代码,希望能在重要语句后面附上一定的说明,只要能在 MATLAE t运行成功,必然给分。具体的实验指导书上的要求如下 : 频域平滑滤波实验步骤 1. 打开 Matlab 编程环境 ; 2. 利用’imread '函数读入图像数据; 3. 利用' imshow' 显示所读入的图像数据 ; 4. 将图像数据由' uint8 ' 格式转换为' double ' 格式,并将各点数据乘以 (-1)x+y 以便 FFT 变换后的结果中低频数据处于图像中央; 5. 用' fft2 ' 函数对图像数据进行二维 FFT 变换,得到频率域图像数据; 6. 计算频率域图像的幅值并进行对数变换,利用' imshow' 显示频率域图像; 7. 在频率图像上去除滤波半径以外的数据 (置 0); 8. 计算频率域图像的幅值并进行对数变换,利用' imshow' 显示处理过的 频域图像数据; 9. 用' ifft2 ' 函数对图像数据进行二维 FFT 逆变换,并用' real '函数取其实部,得到处理过的空间域图像数据; 10. 将图像数据各点数据乘以 (-1)x+y; 11. 利用' imshow' 显示处理结果图像数据; 12. 利用' imwrite '函数保存图像处理结果数据。 图像去噪实验步骤 : 1. 打开 Matlab 编程环境;

2. 利用' imread' 函数读入包含噪声的原始图像数据 ; 3. 利用' imshow' 显示所读入的图像数据 ; 4. 以 3X3 大小为处理掩模,编写代码实现中值滤波算法,并对原始噪声图像进行滤波处理 ; 5. 利用' imshow' 显示处理结果图像数据 ; 6. 利用' imwrite ' 函数保存图像处理结果数据。 即使不是按这些步骤来的也没关系,只要是那个功能,能实现就0K谢谢大家%%%%%%%%spatial frequency (SF) filtering by low pass filter%%%%%%%% % the SF filter is unselective to orientation (doughnut-shaped in the SF % domain). [FileName,PathName,FilterIndex] = uigetfile ; filename = fullfile(PathName, FileName) ; [X map] = imread(filename, fmt); % read image L = double(X); % transform to double %%%%%%%%%%%%% need to add (-1)x+y to L % calculate the number of points for FFT (power of 2) fftsize = 2 .A ceil(log2(size(L))); % 2d fft Y = fft2(X, fftsize(1), fftsize (2)); Y = fftshift(Y); % obtain frequency (cycles/pixel) f0 = floor([m n] / 2) + 1; fy = ((m: -1: 1) - f0(1) + 1) / m; fx = ((1: n) - f0(2)) / n; [mfx mfy] = meshgrid(fx, fy); % calculate radius SF = sqrt(mfx .A 2 + mfy .A 2);

相关主题
文本预览
相关文档 最新文档