I am trying to compute the zero of a function using fzero, but the system always says my function must be finite and real. How can I solve that? Thank you!
조회 수: 8 (최근 30일)
이전 댓글 표시
I want to find the zero of f(x) = 2(3x+4)(x^3+4x^2-10)/(x^2(3x+8)^2)
Here is the screenshot for the error:

댓글 수: 0
채택된 답변
Matt J
2021년 9월 24일
편집: Matt J
2021년 9월 24일
Clearly, your function is non-finite at x=0. There is a factor of x^2 in its denominator.
Regardless, fzero() is the wrong tool for analyzing a rational function. Just use roots() to get the roots of the numerator polynomial.
r=[roots([1 0 4 -10]).' ,-4/3];
r=real( r( abs(imag(r))<1e-10 ))
And, of course, you must make sure that none of the numerator roots coincide with any denominator roots, but that is obvious here by inspection.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Polynomials에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!