I want to calculate roots of a polynomial whose coefficients are functions of x where x assume values between an interval

1 vue (au cours des 30 derniers jours)
Let x =[0:1:10]; polynomial = [ 1 sin(x) x.^3 x]; let v1,v2 and v3 be the three roots of given polynomial in v whose coefficients are functions of x. I want to plot a graph between v1 and x.
  6 commentaires
ASHA RANI
ASHA RANI le 21 Oct 2017
Modifié(e) : Matt J le 21 Oct 2017
> x = [0:pi/18:pi/6]
x =
0 0.1745 0.3491 0.5236
>> p = [1 sin(x) x.^3 x];
>> r = roots(p)
r =
0.8999 + 0.3217i
0.8999 - 0.3217i
0.6749 + 0.8031i
0.6749 - 0.8031i
0.2643 + 0.9220i
0.2643 - 0.9220i
-0.3081 + 0.8491i
-0.3081 - 0.8491i
-0.8635 + 0.2723i
-0.8635 - 0.2723i
-0.6675 + 0.6335i
-0.6675 - 0.6335i
in this ans of r, which one is represented v1 corresponding to pi/18?
John D'Errico
John D'Errico le 21 Oct 2017
So why did you set x=pi/18?
You were asked to solve this problem for x varying from 0 to 10, NOT just at one value of x.
If the polynomial has three roots, what does v1 versus v2 and v3 mean? Roots need not be provided in any specific order. So how are you supposed to choose v1?

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 21 Oct 2017
Modifié(e) : Matt J le 21 Oct 2017
You cannot use ROOTS on multiple polynomials at a time. You will have to use a loop over x(i),
for i=1:numel(x)
p =[1 sin(x(i)) x(i).^3 x(i)];
r{i}=roots(p);
%More code...
end
  3 commentaires
Matt J
Matt J le 21 Oct 2017
clear 'r' from memory first, or better yet pre-allocate,
r=cell(1,numel(x));
ASHA RANI
ASHA RANI le 21 Oct 2017
thank you,sir I am sending my original problem in which I want to plot between v1 and corresponding x. please help it

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by