0
我剛剛開始學習Matlab(幾天前),我有以下作業,我只是不知道如何編寫它: 編寫一個腳本,用於創建一個圖形使用多項式函數根的位置:n(自然數)(單位的第n根)各種值的複數計劃中的p(z)= z^n-1如何在matlab中編寫這個腳本
我剛剛開始學習Matlab(幾天前),我有以下作業,我只是不知道如何編寫它: 編寫一個腳本,用於創建一個圖形使用多項式函數根的位置:n(自然數)(單位的第n根)各種值的複數計劃中的p(z)= z^n-1如何在matlab中編寫這個腳本
因此,我假設你是函數使用的是p(z) = (z^n) - 1
,其中n
是某個整數值。
只需插入roots
函數即可找到該方程的根源。傳遞給roots
的數組是輸入函數的係數。
例
f = 5x^2-2x-6 -> Coefficients are [5,-2,-6]
要獲得根部進入根([5,-2,-6])。這會發現在這x
會導致函數等於0
所有點所以你的情況,你會進入funcRoots = roots([1,zeros(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'的各種值。 –