Azzera filtri
Azzera filtri

Trying to find the roots of polynomial with a script file

2 visualizzazioni (ultimi 30 giorni)
function [y] = Func_6_23(x)
y = ((x^5) - (12*(x^4)) - (9*(x^3)) + (392(x^2)) - (372*x) - 2160);
end
I'm trying to execute this script file to find roots and I keep getting this error,
Error in roots (line 26) when I don't even have a line 26.
if ~all(isfinite(c))
  5 Commenti
Go Detroit Lions
Go Detroit Lions il 4 Ott 2018
Modificato: Walter Roberson il 4 Ott 2018
The assignment stated to:
Use MATLAB's roots function, write a script M-file to find the roots of the polynomial. State the commands of the script file you used.
I found an error in the file i wrote, (392(x^2))-->(392*(x^2)) but still gives the same error, so I'll try to fix it later. Thanks for your help.
Walter Roberson
Walter Roberson il 4 Ott 2018
hint: the roots of 10*x^3 - 7*x^2 - 11*x + 4 can be found by roots([10, 7, 11, 4])

Accedi per commentare.

Risposte (2)

madhan ravi
madhan ravi il 4 Ott 2018
y=[1 -12 -9 392 -372 -2160]
roots(y)
Note: Always use coefficients to find roots in Matlab.

Image Analyst
Image Analyst il 11 Ott 2018
"My professor called it from the command line with the following text: roots(@Func_6_23)"
It seems like your professor wants a function from you that determines (returns) a vector with the polynomial coefficients, which you can then pass in to the built-in roots() function. It might go something like:
function [y] = Func_6_23(inputPolynomial)
% For example inputPolynomial is a string "((x^5) - (12*(x^4)) - (9*(x^3)) + (392(x^2)) - (372*x) - 2160);"
% and we're supposed to return y as [1, 12, 9, 392, 372, -2160]
inputPolynomial(inputPolynomial== ' ') = []; % Remove any spaces.
% Now loop over orders, say the first 20 or whatever and find 'x^n'
for k = 1 : 20
thisString = sprintf('x^%d', k); % E.g. 'x^5'
index = strfind(inputPolynomial, thisString); % Find x^5 in the whole polynomial string.
% etc. to find coefficients of thisString.
y(k) = .....
end
% Here, you should have y which is a vector containing all the coefficients,
% which you can then pass in to roots().

Categorie

Scopri di più su Historical Contests in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by