⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gddemo.html

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"                "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head>  <title>Description of gdDemo</title>  <meta name="keywords" content="gdDemo">  <meta name="description" content="Interactive demo of Gradient descent paths on "peaks" surface.">  <meta http-equiv="Content-Type" content="text/html; charset=big5">  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">  <meta name="robots" content="index, follow">  <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> &gt;  <a href="index.html">dcpr</a> &gt; gdDemo.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td><td align="right"><a href="index.html">Index for dcpr&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>gdDemo</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>Interactive demo of Gradient descent paths on "peaks" surface.</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>This is a script file. </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> Interactive demo of Gradient descent paths on &quot;peaks&quot; surface.</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <span class="comment">% Interactive demo of Gradient descent paths on &quot;peaks&quot; surface.</span>0002 0003 <span class="comment">%    Roger Jang, 19961016, 20080801</span>0004 0005 figure(<span class="string">'name'</span>, <span class="string">'Gradient Descent'</span>, <span class="string">'NumberTitle'</span>, <span class="string">'off'</span>);0006 x=-3:.2:3;0007 y=-3:.2:3;0008 [xx,yy]=meshgrid(x,y);0009 zz=peaks(xx,yy);0010 surf(xx, yy, zz);0011 axis([-inf inf -inf inf -inf inf]);0012 colormap((jet+white)/2);0013 ballH = line(nan, nan, nan, <span class="string">'marker'</span>,    <span class="string">'.'</span>, <span class="string">'markersize'</span>, 20, <span class="string">'erase'</span>, <span class="string">'none'</span>, <span class="string">'color'</span>, <span class="string">'g'</span>);0014 segment3dH = line(nan, nan, nan, <span class="string">'erase'</span>, <span class="string">'none'</span>, <span class="string">'color'</span>, <span class="string">'r'</span>);0015 set(gca, <span class="string">'box'</span>, <span class="string">'on'</span>);0016 0017 figure(<span class="string">'name'</span>, <span class="string">'Gradient Descent'</span>, <span class="string">'NumberTitle'</span>, <span class="string">'off'</span>);0018 hold on;0019 h=pcolor(x,y,zz);0020 set(h, <span class="string">'erase'</span>, <span class="string">'none'</span>);0021 colormap((jet+white)/2);0022 shading interp;0023 <span class="comment">%[px,py]=gradient(zz,.2,.2);</span>0024 <span class="comment">%quiver(x,y,-px,-py,2,'k');</span>0025 [junk, contourH] = contour(xx, yy, zz, 20, <span class="string">'k-'</span>);0026 hold off;0027 axis([-3 3 -3 3]); axis square; axis off;0028 circleH = line(nan, nan, <span class="string">'marker'</span>, <span class="string">'.'</span>, <span class="string">'erase'</span>, <span class="string">'xor'</span>, <span class="string">'color'</span>, <span class="string">'g'</span>, <span class="string">'markersize'</span>, 20);0029 0030 segment2dH = line([nan nan], [nan nan], <span class="string">'erase'</span>, <span class="string">'none'</span>, <span class="string">'color'</span>, <span class="string">'r'</span>);0031 set(contourH, <span class="string">'erase'</span>, <span class="string">'none'</span>, <span class="string">'color'</span>, <span class="string">'w'</span>);0032 title(<span class="string">'Click to see gradient-descent paths'</span>);0033 0034 AxisH = gca; FigH = gcf;0035 obj_fcn = <span class="string">'peaksFunc'</span>;0036 eta = 0.1;0037 0038 <span class="comment">% The following is for animation</span>0039 <span class="comment">% action when button is first pushed down</span>0040 <span class="comment">% This action draws GD path on 2D plot only</span>0041 action1a = [<span class="string">'curr_info=get(AxisH, ''currentPoint'');'</span>, <span class="keyword">...</span>0042     <span class="string">'x=curr_info(1,1);y=curr_info(1,2);z=feval(obj_fcn,x,y);'</span>, <span class="keyword">...</span>0043     <span class="string">'set(circleH,''xdata'',x,''ydata'',y);'</span>, <span class="keyword">...</span>0044     <span class="string">'set(ballH,''xdata'',x,''ydata'',y,''zdata'',z);'</span>, <span class="keyword">...</span>0045     <span class="string">'for i=1:100,'</span>, <span class="keyword">...</span>0046     <span class="string">'grad=feval(obj_fcn,x,y,1);'</span>, <span class="keyword">...</span>0047     <span class="string">'tmp=-grad/norm(grad);'</span>, <span class="keyword">...</span>0048     <span class="string">'new_x=x+eta*tmp(1);'</span>, <span class="keyword">...</span>0049     <span class="string">'new_y=y+eta*tmp(2);'</span>, <span class="keyword">...</span>0050     <span class="string">'set(segment2dH,''xdata'',[x,new_x],''ydata'',[y,new_y]);'</span>, <span class="keyword">...</span>0051     <span class="string">'x = new_x;'</span>, <span class="keyword">...</span>0052     <span class="string">'y = new_y;'</span>, <span class="keyword">...</span>0053     <span class="string">'end'</span>];0054 <span class="comment">% This action draws GD path on 3D surface too</span>0055 action1b = [<span class="string">'curr_info=get(AxisH, ''currentPoint'');'</span>, <span class="keyword">...</span>0056     <span class="string">'x=curr_info(1,1);y=curr_info(1,2);z=feval(obj_fcn,x,y);'</span>, <span class="keyword">...</span>0057     <span class="string">'set(circleH,''xdata'',x,''ydata'',y);'</span>, <span class="keyword">...</span>0058     <span class="string">'set(ballH,''xdata'',x,''ydata'',y,''zdata'',z);'</span>, <span class="keyword">...</span>0059     <span class="string">'for i=1:100,'</span>, <span class="keyword">...</span>0060     <span class="string">'grad=feval(obj_fcn,x,y,1);'</span>, <span class="keyword">...</span>0061     <span class="string">'tmp=-grad/norm(grad);'</span>, <span class="keyword">...</span>0062     <span class="string">'new_x=x+eta*tmp(1);'</span>, <span class="keyword">...</span>0063     <span class="string">'new_y=y+eta*tmp(2);'</span>, <span class="keyword">...</span>0064     <span class="string">'new_z=feval(obj_fcn,new_x,new_y);'</span>, <span class="keyword">...</span>0065     <span class="string">'set(segment2dH,''xdata'',[x,new_x],''ydata'',[y,new_y]);'</span>, <span class="keyword">...</span>0066     <span class="string">'set(segment3dH,''xdata'',[x,new_x],''ydata'',[y,new_y],''zdata'',[z,new_z]);'</span>, <span class="keyword">...</span>0067     <span class="string">'x = new_x;'</span>, <span class="keyword">...</span>0068     <span class="string">'y = new_y;'</span>, <span class="keyword">...</span>0069     <span class="string">'z = new_z;'</span>, <span class="keyword">...</span>0070     <span class="string">'end'</span>];0071 action1 = action1b;0072 0073 <span class="comment">% actions after the mouse is pushed down</span>0074 action2 = action1;0075 <span class="comment">% action when button is released</span>0076 action3 = action1;0077 0078 <span class="comment">% temporary storage for the recall in the down_action</span>0079 set(AxisH,<span class="string">'UserData'</span>,action2);0080 0081 <span class="comment">% set action when the mouse is pushed down</span>0082 down_action=[<span class="string">'set(FigH,''WindowButtonMotionFcn'',get(AxisH,''UserData''));'</span>, action1];0083 set(FigH,<span class="string">'WindowButtonDownFcn'</span>,down_action);0084 0085 <span class="comment">% set action when the mouse is released</span>0086 up_action=[<span class="string">'set(FigH,''WindowButtonMotionFcn'','' '');'</span>, action3];0087 set(FigH,<span class="string">'WindowButtonUpFcn'</span>,up_action);</pre></div><hr><address>Generated on Thu 30-Oct-2008 12:53:56 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -