I'm following a method that my company uses for the structural analysis of a component, and one of the steps requires me to numerically iterate the following equation below to solve for one of the variables.
Ramberg-Osgood Stress-Strain Equation
I need to solve for sigma_b, and I know the values of all of the other variables. Specifically, the method states "Solve for sigma_b by means of numeric iteration". I'm pretty rusty on my numeric integration methods, but I took a shot at it.
- First, I rearranged the equation to get sigma_b (technically "x_new"?) on the left side, and sigma_b ("x_old"?) on the right side as well mixed together with the other variables.
- I then plugged in a starting value for "x_old" and calculated "x_new".
- At this point, "x_new" becomes "x_old", and I recalculate a new "x_new".
- Using excel, I coded this and iterated a few times until the change in my answer was very low.
Here's what I rearranged the equation to (Step 1): Ramberg-Osgood Equation rearranged
Here's a screenshot of my excel sheet (steps 2-4): Excel Iterations
Lastly, here are the four known values:
ε_ = 0.022
n = 18.77
E = 10300000
σ_0.2 = 58000
Comments, concerns? Did I rearrange the equation correctly? Better (but still practical!) method of numerical iteration? Any help is much appreciated! Apologies, my account is too new to directly embed images.
First of all, Welcome to the site !
Changing notations to make the problem simple, you want to solve for $x$ the equation $$y=a x+b x^n$$ where $a$, $b$, $n$ and $y$ are positive numbers ($a,b,n$ being given).
Looking at your results, I am sure that Newton method will converge much faster.
What we already know is that function $y$ is bracketed by $(a+b)x$ and $(a+b)x^n$. So, this provides a finite range for $x$
Edit
As you gave it, the equation is $$\epsilon_b=\frac{\sigma_b}E +0.002 \left(\frac{\sigma_b}{\sigma_{0.2}} \right)^n$$ (we shall discuss later about it).
With the numbers you gave in the post, namely $\epsilon_b=0.022$, $E=10300000$, $\sigma_{0.2}=58000$ and $n=18.77$, being lazy (at least for the time being), let us ignore the first term and start iterating with $$\sigma_b^{(0)}=\sigma_{0.2} \,(500 \,\epsilon_b)^\frac 1n $$ The successive Newton iterates will be $$\left( \begin{array}{cc} n & \sigma_b^{(n)} \\ 0 & 65903.694 \\ 1 & 64898.111 \\ 2 & 64736.640 \\ 3 & 64733.037 \\ 4 & 64733.035 \end{array} \right)$$ which is quite fast (but does not have much to do with your result.
What you should notice is that we started with an overestimate of the solution; but at this point, the second derivative of the rhs is positive. Then, by Darboux theorem, the convergence is ensured without any other overshoot of the solution.
Now, let us look at what higher oder methods would give $$\left( \begin{array}{cccc} n & \text{Newton} & \text{Halley} & \text{Householder} \\ 0 & 65903.694 & 65903.694 & 65903.694 \\ 1 & 64898.111 & 64743.181 & 64733.147 \\ 2 & 64736.640 & 64733.035 & 64733.035 \\ 3 & 64733.037 & & \\ 4 & 64733.035 & & \end{array} \right)$$ Back to the equation, I must say that I would prefer to write is as $$\epsilon_b=\frac {\sigma_{0.2}}E \left(\frac{\sigma_b}{\sigma_{0.2}} \right) +0.002 \left(\frac{\sigma_b}{\sigma_{0.2}} \right)^n$$ and define $x=\frac{\sigma_b}{\sigma_{0.2}}$. Making it more general, the equation becomes $$\epsilon_b=a x+ b \,x^n \qquad \text{where} \qquad a=\frac {\sigma_{0.2}}E\qquad \text{and} \qquad b=0.002$$ and use as a starting point $$x_0=\left(\frac{\epsilon_b} b\right)^{\frac 1n}$$