Trying to use Newton's method until solution converges

1 view (last 30 days)
So this is probably a dumb question, but I'm terrible at Matlab and am really struggling and can't seem to find any examples for my problem. I understand how Newton's method works, but not sure how to apply it in my case. My problem is I'm trying to solve this equation
for delta_sigma . All the other variables are known already.
This is the code I have right now:
% Variables
Eps = 0.011;
E = 73100;
H = 662;
n = 0.07;
maxIter = 100; % # of iterations
i = 1;
x(i) = 500; % Initial guess
while i <= maxIter
Eps = x/E+2.*(x./(2*H)).^(1/n);
dEps = 2./(n.*x).*(x./(2*H)).^(1/n);
y = x(i)-(Eps/dEps);
i = i+1;
x(i) = y;
end
which I think would be correct if I was trying to find the delta_epsilon value. Could someone help me out? Thanks

Accepted Answer

Torsten
Torsten on 25 Jan 2023
Edited: Torsten on 25 Jan 2023
% Variables
Eps = 0.011;
E = 73100;
H = 662;
n = 0.07;
maxIter = 100; % # of iterations
Tol = 1e-8;
i = 1;
error = 1.0;
X(i) = 500; % Initial guess
x = X(i);
while i <= maxIter && error > Tol
f = x/E + 2*(x/(2*H))^(1/n) - Eps;
df = 1/E + 2 * 1/n * (x/(2*H))^(1/n-1) * 1/(2*H);
x = X(i) - f/df;
error = abs(x-X(i));
i = i+1;
X(i) = x;
end
i
i = 7
X
X = 1×7
500.0000 802.8180 765.4778 756.0581 755.6437 755.6430 755.6430
x/E + 2*(x/(2*H))^(1/n)- Eps
ans = 0
  4 Comments
Torsten
Torsten on 25 Jan 2023
Edited: Torsten on 25 Jan 2023
You can choose any value > "Tol" for "error". It's only an initialization such that the while-loop is entered.
A value for error <= 1e-8 won't work because MATLAB then assumes that a solution has already been found.
Matt J
Matt J on 26 Jan 2023
Wow thanks so much!
@Christina Kersten If so, you should accept-click Torsten's asnwer

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!