de Moivres Nth Root Function on returns 2 out 5 roots? Spot the fault?
14 次查看(过去 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!