de Moivres Nth Root Function on returns 2 out 5 roots? Spot the fault?
    1 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi,
I wonder if anyone could help me find the fault in the code? When I call the function using the below it only returns 2 values, the first and last root, but misses 3 in the middle, subsequently my plot is also incorrect (it should return 5 equally spaced points). I can't find any error in the code.
>> complex_root1(2+3j,5)
D =
   1.2675 + 0.2524i   0.6317 - 1.1275i
My function is
function res=complex_root(z,N)
%z is the complex number
%n is the number of roots, must be positive and larger than o
k=[0,N-1];
%Logic statement if N above 0 proceed with calculation
if N>0
  a=complex(z);
  magnitude=abs(a);
  r=(abs(a));
  t=angle(a);
  %de Moivre's forumla 
  D=r^(1/N)*((cos((t+2*pi*k)/N))+((1i*sin((t+2*pi*k)/N))))
  polarplot (D)
%Logical statement, if N below zero return error message
elseif N<=0;
  disp 'N must be a positive integer above 0'
end
end
0 个评论
采纳的回答
  David Goodmanson
      
      
 2018-3-15
        
      编辑:David Goodmanson
      
      
 2018-3-15
  
      Hi Owen, try
k = 0:N-1;
which gives all five values for k.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

