Trying to use Newton's method until solution converges

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

% 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

Could you explain why you have error as 1?
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.
Wow thanks so much!
@Christina Kersten If so, you should accept-click Torsten's asnwer

Sign in to comment.

More Answers (0)

Categories

Asked:

on 25 Jan 2023

Commented:

on 26 Jan 2023

Community Treasure Hunt

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

Start Hunting!