Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
How to find roots of polynomial with non-integer exponent

Subject: How to find roots of polynomial with non-integer exponent

From: Ryu Ng

Date: 18 Aug, 2010 21:20:05

Message: 1 of 6

Hi,

How do I find the roots of the following polynomial using Matlab:

60 + 2.13*(t^2) - 0.0013*(t^4) + 0.000034*(t^4.751) = 0

Can you show me an example of how to solve this problem?

Thank you!

Subject: How to find roots of polynomial with non-integer exponent

From: Walter Roberson

Date: 18 Aug, 2010 21:37:34

Message: 2 of 6

Ryu Ng wrote:

> How do I find the roots of the following polynomial using Matlab:
>
> 60 + 2.13*(t^2) - 0.0013*(t^4) + 0.000034*(t^4.751) = 0
>
> Can you show me an example of how to solve this problem?

Transform it into a problem in integer coefficients using
T^(N/1000) = 1/1000 * T^N


C(4752-0) = 60;
C(4752-2) = 2.13;
C(4752-4) = 0.0013;
C(4752-4751) = 0.000034/1000;
roots(C)

and wait... and wait....

Subject: How to find roots of polynomial with non-integer exponent

From: John D'Errico

Date: 18 Aug, 2010 21:45:28

Message: 3 of 6

"Ryu Ng" <ngjinghan@hotmail.com> wrote in message <i4hiq5$htu$1@fred.mathworks.com>...
> Hi,
>
> How do I find the roots of the following polynomial using Matlab:
>
> 60 + 2.13*(t^2) - 0.0013*(t^4) + 0.000034*(t^4.751) = 0
>
> Can you show me an example of how to solve this problem?
>
> Thank you!

help fzero

Of course, fzero will solve for only 1 root at a time.

rmsearch, found on the file exchange, can try to find multiple
real roots. In the case of your function, there appear to be no
real roots.

John

 

Subject: How to find roots of polynomial with non-integer exponent

From: Matt J

Date: 18 Aug, 2010 22:00:21

Message: 4 of 6

"John D'Errico" <woodchips@rochester.rr.com> wrote in message <i4hk9o$oed$1@fred.mathworks.com>...

> help fzero
>
> Of course, fzero will solve for only 1 root at a time.
>
> rmsearch, found on the file exchange, can try to find multiple
> real roots. In the case of your function, there appear to be no
> real roots.
===============

There's are two:


>> fzero(f,[50,70])

ans =

   63.4914

>> fzero(f,[100,120])

ans =

  101.6006

Subject: How to find roots of polynomial with non-integer exponent

From: Matt Fig

Date: 18 Aug, 2010 22:11:19

Message: 5 of 6

"John D'Errico" <woodchips@rochester.rr.com> wrote in message
> help fzero
>
> Of course, fzero will solve for only 1 root at a time.
>
> rmsearch, found on the file exchange, can try to find multiple
> real roots. In the case of your function, there appear to be no
> real roots.
>
> John

Sure it does:
>> f = @(t) 60 + 2.13*(t.^2) - 0.0013*(t.^4) + 0.000034*(t.^4.751);
>> newtzero(f,1) % On the FEX
ans =
       -0.00363037698655658 - 5.26462938666907i
       -0.00363037698655658 + 5.26462938666907i
           63.4913563897093
           101.600580618282

Subject: How to find roots of polynomial with non-integer exponent

From: Roger Stafford

Date: 18 Aug, 2010 22:15:09

Message: 6 of 6

"Ryu Ng" <ngjinghan@hotmail.com> wrote in message <i4hiq5$htu$1@fred.mathworks.com>...
> Hi,
>
> How do I find the roots of the following polynomial using Matlab:
>
> 60 + 2.13*(t^2) - 0.0013*(t^4) + 0.000034*(t^4.751) = 0
>
> Can you show me an example of how to solve this problem?
>
> Thank you!
- - - - - - - -
  Matt has given you the two real positive roots using fzero. If you are looking for other roots, you face the problem of interpreting t^4.751 . If you consider 4.751 as an approximation to a real irrational number r, then t^r can be considered as exp(r*log(t)) and log(t) has infinitely many branches in the complex plane which creates the possibility of infinitely many roots. What restrictions do you place on t or the interpretation of t^r?

Roger Stafford

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us