markdown下在线代码着色,不成功
使用谷歌扩展Code Block Beautifier成功!!

<div class="dp-highlighter"><div class="bar"></div><ol start="1" class="dp-j"><li class="alt"><span><span>function&nbsp;[x,val,k]=grad(fun,gfun,x0)&nbsp;&nbsp;</span></span></li><li class=""><span>%&nbsp;功能:&nbsp;用最速下降法求解无约束问题:&nbsp;&nbsp;min&nbsp;f(x)&nbsp;&nbsp;</span></li><li class="alt"><span>%输入:&nbsp;&nbsp;x0是初始点,&nbsp;fun,&nbsp;gfun分别是目标函数和梯度&nbsp;&nbsp;</span></li><li class=""><span>%输出:&nbsp;&nbsp;x,&nbsp;val分别是近似最优点和最优值,&nbsp;&nbsp;k是迭代次数.&nbsp;&nbsp;</span></li><li class="alt"><span>maxk=<span class="number">5000</span><span>;&nbsp;&nbsp;&nbsp;%最大迭代次数&nbsp;&nbsp;</span></span></li><li class=""><span>rho=<span class="number">0.5</span><span>;sigma=</span><span class="number">0.4</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>k=<span class="number">0</span><span>;&nbsp;&nbsp;epsilon=1e-</span><span class="number">5</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span><span class="keyword">while</span><span>(k&lt;maxk)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;g=feval(gfun,x0);&nbsp;&nbsp;%计算梯度&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;d=-g;&nbsp;&nbsp;&nbsp;&nbsp;%计算搜索方向&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(norm(d)&lt;epsilon),&nbsp;</span><span class="keyword">break</span><span>;&nbsp;end&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;m=<span class="number">0</span><span>;&nbsp;mk=</span><span class="number">0</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">while</span><span>(m&lt;</span><span class="number">20</span><span>)&nbsp;&nbsp;&nbsp;%Armijo搜索&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(feval(fun,x0+rho^m*d)&lt;feval(fun,x0)+sigma*rho^m*g'*d)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mk=m;&nbsp;<span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m=m+<span class="number">1</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;x0=x0+rho^mk*d;&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;k=k+<span class="number">1</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>end&nbsp;&nbsp;</span></li><li class=""><span>x=x0;&nbsp;&nbsp;</span></li><li class="alt"><span>val=feval(fun,x0);&nbsp;&nbsp;</span></li></ol></div>
  1. function [x,val,k]=grad(fun,gfun,x0)  
  2. % 功能: 用最速下降法求解无约束问题:  min f(x)  
  3. %输入:  x0是初始点, fun, gfun分别是目标函数和梯度  
  4. %输出:  x, val分别是近似最优点和最优值,  k是迭代次数.  
  5. maxk=5000;   %最大迭代次数  
  6. rho=0.5;sigma=0.4;  
  7. k=0;  epsilon=1e-5;  
  8. while(k<maxk)  
  9.     g=feval(gfun,x0);  %计算梯度  
  10.     d=-g;    %计算搜索方向  
  11.     if(norm(d)<epsilon), break; end  
  12.     m=0; mk=0;  
  13.     while(m<20)   %Armijo搜索  
  14.         if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d)  
  15.             mk=m; break;  
  16.         end  
  17.         m=m+1;  
  18.     end  
  19.     x0=x0+rho^mk*d;  
  20.     k=k+1;  
  21. end  
  22. x=x0;  
  23. val=feval(fun,x0);  

谷歌扩展Code Block Beautifier的原理

A chrome extension for beautifying code blocks in any websites that contain pre elements.
A chrome extension for highlighting codes of Medium Articles, but now, it can highlight codes in any websites that have HTML pre'element.

因此使用在线转换后的代码,也可以加上pre来实现高亮

  1. function [x,val,k]=grad(fun,gfun,x0)  
  2. % 功能: 用最速下降法求解无约束问题:  min f(x)  
  3. %输入:  x0是初始点, fun, gfun分别是目标函数和梯度  
  4. %输出:  x, val分别是近似最优点和最优值,  k是迭代次数.  
  5. maxk=5000;   %最大迭代次数  
  6. rho=0.5;sigma=0.4;  
  7. k=0;  epsilon=1e-5;  
  8. while(k<maxk)  
  9.     g=feval(gfun,x0);  %计算梯度  
  10.     d=-g;    %计算搜索方向  
  11.     if(norm(d)<epsilon), break; end  
  12.     m=0; mk=0;  
  13.     while(m<20)   %Armijo搜索  
  14.         if(feval(fun,x0+rho^m*d)<feval(fun,x0)+sigma*rho^m*g'*d)  
  15.             mk=m; break;  
  16.         end  
  17.         m=m+1;  
  18.     end  
  19.     x0=x0+rho^mk*d;  
  20.     k=k+1;  
  21. end  
  22. x=x0;  
  23. val=feval(fun,x0);  

右下角弹窗实现网址
html更多特效