Finding polynomial roots without normal form

조회 수: 4 (최근 30일)
Lindley French
Lindley French 2011년 8월 11일
The roots(p) function finds polynomial roots given a vector of polynomial coefficients. However, I have encountered several problems where a polynomial of many variables is specified, but all of those variables except one is known and I need to solve for the roots in terms of the final variable. Rearranging all of the variables into coefficients of the remaining independent variable is tedious and sometimes error-prone.
Is there any way, without using the symbolic manipulation toolbox which I don't have, to identify the coefficients numerically after substitution of values for the known variables, and/or compute the roots of the function directly? Exact solutions preferred, but approximations would be nice to know about as well.

채택된 답변

Lindley French
Lindley French 2011년 8월 12일
The polynomial was g(t) = t*((a*t+b)^2+h^2(c*t+d)^2)^2 - (a*d - b*c)(1 + f^2*t^2)^2*(a*t + b)*(c*t+d). Solve for the coefficients of g(t).....
Needless to say, manual symbolic manipulation would not have been a good option. Fortunately, I discovered that I could represent each term as a polynomial after value substitution and multiply them out using the conv() function. So that solves my problem.

추가 답변 (2개)

Paulo Silva
Paulo Silva 2011년 8월 11일
Use the fzero function instead.

Walter Roberson
Walter Roberson 2011년 8월 11일
What is your present representation for the polynomial, and how are you presently doing the substitution?

카테고리

Help CenterFile Exchange에서 Polynomials에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by