Участок кубической корни в Matlab - PullRequest
0 голосов
/ 10 января 2019

Я хотел бы построить корни кубического уравнения x ^ {3} + Ax ^ {2} + 1 = 0 в matlab. Я знаю, что есть 3 реальных корня для A <-1,88 и 1, если A> -1,88. Я хотел бы построить 3 реальных корня как функцию от A, и когда он переключается на 1 реальный корень и 2 комплекса, чтобы построить реальный корень и действительную часть комплексных сопряженных решений, все на одном графике (возможно, как 2-3 графики).

Хотя я новичок в Matlab. Я пытался

syms x A
r = solve(x^3 + A*x^2+1 == 0, x);
ezplot(vpa(r(1)),[-10,10])
ezplot(vpa(r(2)),[-10,10])
ezplot(vpa(r(3)),[-10,10])

но vpa не знает, как численно оценить r.

1 Ответ

0 голосов
/ 10 января 2019

Для этого не нужно делать символическую математику,

A = (-3:0.01:0)'; % create a vector of values for A
r = arrayfun(@(A)real(roots([1 A 0 1])),A,'uni',false);  % calculate the polynomial roots for all values of A
r = [r{:}]; % convert result to a numeric array
plot(A,r');  % plot the result
grid on;
title('Real parts of Polynomial');
xlabel('A');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...