how to plot this equation
조회 수: 2 (최근 30일)
이전 댓글 표시
equation is
x^6+k^2*X4+k*x^2+3=0;
by varying the value of k=1:10
plot the graph between real(x) vs k
댓글 수: 2
Torsten
2022년 9월 15일
For each value of k, you get 6 values for x. So what do you want to plot ? Trace one x-value over the k-range ?
답변 (2개)
Torsten
2022년 9월 15일
편집: Torsten
2022년 9월 15일
syms x y k
f = y^3 + k^2*y^2 + k*y + 3;
s = solve(f==0,y,'Maxdegree',3);
s1 = sqrt(s);
s2 = -sqrt(s);
k = 0:0.1:10;
s11 = matlabFunction(s1(1));
s12 = matlabFunction(s1(2));
s13 = matlabFunction(s1(3));
s21 = matlabFunction(s2(1));
s22 = matlabFunction(s2(2));
s23 = matlabFunction(s2(3));
plot(k,[real(s11(k));real(s12(k));real(s13(k));real(s21(k));real(s22(k));real(s23(k))])
댓글 수: 0
Sam Chak
2022년 9월 15일
This only shows the propagation of the complex-valued roots of the 6th-order polynomial equation for the integer .
So, you want to extract the real part of the roots?
k = 1:10;
hold on
for j = 1:length(k)
num = 3;
den = [1 0 k(j)^2 0 k(j) 0 3];
r = rlocus(num, den, 1);
plot(r, 'o')
end
hold off
title('Root Locus Plot')
grid on, xlabel('Real axis'), ylabel('Imaginary axis')
댓글 수: 2
Sam Chak
2022년 9월 15일
Continuation.
Not sure if this is what you want...
k = 1:10;
hold on
for j = 1:length(k)
num = 3;
den = [1 0 k(j)^2 0 k(j) 0 3];
r = rlocus(num, den, 1);
plot(k(j), real(r), 'o')
end
hold off
grid on, xlabel('\it{k}'), ylabel('Re(\it{x})')
참고 항목
카테고리
Help Center 및 File Exchange에서 Stability Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!