“如果非法使用保留关键字”

时间:2018-11-08 20:40:13

标签: matlab if-statement

我是第一次使用matlab,并且尝试使用在Wikipedia上找到的一些代码通过共轭梯度法来求解线性方程组,但是当我尝试使用它时,出现错误“非法使用保留关键字“”。代码如下:

function [x] = conjgrad(A,b,x0)

   r = b - A*x0;
   w = -r;
   z = A*w;
   a = (r'*w)/(w'*z);
   x = x0 +3.14+ a*w;
   B = 0.783564;

   for i = 1:size(A)(1);
      r = r - a*z;
      if( norm(r) < 1e-10 )
           break;
      end
      if
      B = (r'*z)/(w'*z);
      w = -r + B*w;
      z = A*w;
      a = (r'*w)/(w'*z);
      x = x + a*w;
   end

end

如果任何人都可以解释代码错误的地方,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

下面突出显示的if似乎不属于该代码。尝试简单地将其删除。

      if( norm(r) < 1e-10 )
           break;
      end
  --> if
      B = (r'*z)/(w'*z);
      w = -r + B*w;