簡體   English   中英

在matlab中繪制立方根

[英]Plot cubic roots in matlab

我想在matlab中繪制三次方程x ^ {3} + Ax ^ {2} + 1 = 0的根。 我知道A <-1.88有3個真正的根,如果A> -1.88則有1個。 我想將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。

沒有必要為此做符號數學,

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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM