如何在matlab中编写这个脚本

如何在matlab中编写这个脚本,matlab,root,polynomial-math,Matlab,Root,Polynomial Math,我刚刚开始学习Matlab(几天前),我有以下作业,我不知道如何编写: 编写一个脚本,使用多项式函数根的位置创建一个图形:p(z)=z^n-1,在复杂平面中,n个自然数(单位的n个根)的各种值,因此我假设您使用的函数是p(z)=(z^n)-1,其中n是某个整数值 只需插入roots函数,即可找到该方程的根。传递给根的数组是输入函数的系数 示例 f=5x^2-2x-6->系数为[5,-2,-6] 要获得根,请输入根([5,-2,-6])。这将找到x将导致函数等于0的所有点 因此,在本例中,您将输入

我刚刚开始学习Matlab(几天前),我有以下作业,我不知道如何编写:
编写一个脚本,使用多项式函数根的位置创建一个图形:p(z)=z^n-1,在复杂平面中,n个自然数(单位的n个根)的各种值

,因此我假设您使用的函数是
p(z)=(z^n)-1
,其中
n
是某个整数值

只需插入
roots
函数,即可找到该方程的根。传递给
根的数组是输入函数的系数

示例

f=5x^2-2x-6->系数为[5,-2,-6]

要获得根,请输入根([5,-2,-6])。这将找到
x
将导致函数等于0的所有点

因此,在本例中,您将输入
funcRoots=root([1,零(1,n-1),-1])

然后可以根据需要绘制这些值,但是像
plot(funcRoots)
这样的简单绘图可能就足够了

要在循环中执行此操作,请使用以下命令。请注意,如果有多个相同的根,可能会有一些重叠,因此您可能无法看到某些值

minN = 1;
maxN = 10;
nVals = minN:maxN;
figure; hold on;
colors = hsv(numel(nVals));
legendLabels = cell(1,numel(nVals));
iter = 1;
markers = {'x','o','s','+','d','^','v'};
for n = nVals
    funcRoots = roots([1,zeros(1,n-1),-1]);
    plot(real(funcRoots),imag(funcRoots),...
         markers{mod(iter,numel(markers))+1},...
         'Color',colors(iter,:),'MarkerSize',10,'LineWidth',2)
    legendLabels{iter} = [num2str(n),'-order'];
    iter = iter+1;
end
hold off;
xlabel('Real Value')
ylabel('Imaginary Value')
title('Unity Roots')
axis([-1,1,-1,1])
legend(legendLabels)

把它打碎。首先,找出如何找到特定值
n
的多项式根。然后找出如何绘制这些根。然后对
n
的各种值重复上述操作。