Hi again alan!
The equation can be first rewritten as
-(a^5 / (40(RL)^2)) + a - y = 0
so the problem is basically one of finding the roots of the polynomial
of the left-hand side of the equation.
An algorithm that can be used to find the roots (if they exist) of
virtually any non-linear equation is the "Bisection" Algorithm. The
idea of the algorithm (which is very simple) is the following: start
defining an interval which you know contains a root (but not more than
one root), then reduce the size of the interval succesively until you
have an arbitrarily small one that contains the root; and that's the
solution.
For example, I set 40*(RL)^2 = 5, and y = 2. If you plot the
polynomial with this parameters, you will see that there is a root
somewhere betwen -3 and -1. So let's take [-3,-1] as the initial
interval. Now find the middle point of the interval (-2). Is the root
in [-3,-2] or in [-2,-1]?. If it is in [-3,-2], let that be the "new"
interval; otherwise let [-2,-1] be the "new" interval. Now take the
middle point of the "new" interval and repeat this process; until the
interval is as small as you want, or until the middle point of an
interval is as close to being a root as you want.
Let's define
f(a) = a - (a^5 / (40(RL)^2)) - y
so we want to find the roots of the nonlinear function f. Let's also
define "tol" to be the precision you require (0.001, 0.000001,
whatever). The steps of the algorithm are the following:
1) Define an arbitrary interval, which should contain EXACTLY one
root. Let's call it [xlow,xhigh].
2) Find the middle point of the interval: xmiddle=(xlow+xhigh)/2
3) If f(xlow)*f(xmiddle) < 0, then set xhigh to be xmiddle
If f(xmiddle)*f(xhigh) < 0, then set xlow to be xmiddle
4) Repeat 2-3 until |f(xmiddle)| < tol
The condition f(xlow)*f(xmiddle)<0 implies that the root is between
xlow and xmiddle; the same goes for the other condition. The || means
"absolute value of". Using the values I mentioned before for the
parameters R, L and y, I got that the only real root is at -1.802.
You can watch a Java applet that shows how this algorith works at the
following addres:
Bisection Algorithm
http://www.apropos-logic.com/nc/BisectionAlgorithm.html
Also, you can find further details regarding the algorithm in the
following page, along with Matlab and Maple codes that implement it.
Nonlinear probs and Intermediate Value
http://www.krellinst.org/UCES/archive/classes/CNA/dir2.1/uces2.1.html#2.1.4a
Google search strategy
bisection algorithm
://www.google.com.ar/search?hl=es&lr=&ie=UTF-8&oe=UTF-8&q=bisection+algorithm&spell=1
I hope this helps! If you have any doubt regarding my answer, please
request a clarification before rating it. Otherwise, I await your
rating and final comments.
Best wishes!
elmarto |