# Newton Raphson - saving all values and using last iteration value as initial for next

13 vues (au cours des 30 derniers jours)
HMZ le 19 Avr 2021
Commenté : HMZ le 20 Avr 2021
I'm attempting to do a Newton - Raphson calculation but am having trouble starting. A1 and B1 are both matrices [1x15], so for the the values of A1, B1 and Theta_F, I need to perform a Newton - Raphson calculation over 5 iterations, saving all iteration values (for plotting) and using the last iteration value as the initial guess for the next N-R step (with the next set of A1, B1 and Theta_F values)
I'm really not sure where to start or how best to approach it (not been using MATLAB very long), any help would be greatly appreciated!
Many thanks.
M_s = 0; % Other variables in equations
alpha_s = 0;
Theta_F = [1:1:15]
A1 = [0,-30,-120,-270,-480,-750,-1080,-1470,-1920,-2430,-3000,-3630,-4320,-5070,-5880]
% B1 has the same value but is calculated as a matrix
B1 = [-196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200]
f = @(x) A1.*cos(x) + B1.*sin(x) + M_s*(x + (Theta_F ./(180*pi)) + (alpha_s /(180*pi))); % Function
fd = @(x) -A1.*sin(x) + B1.*cos(x) - M_s; % Function derivative
x0 = 0.0001;
x = x0;
% Attempt at N-R
for i = 1:5
x(i+1) = x(i) - f(x(i))/fd(x(i))
i = i+1
end
##### 7 commentairesAfficher 5 commentaires plus anciensMasquer 5 commentaires plus anciens
Andrew Newell le 19 Avr 2021
Modifié(e) : Andrew Newell le 20 Avr 2021
Actually, for and equal to zero, the solution is . Are you going to need to do this for nonzero parameters? If not, you're done.
HMZ le 19 Avr 2021
Yes, I've created a spreadsheet to practice the mathematics behind the process and ensure the values are sensible. The values of x (for corresponding value of A1, B1 and Theta_f) after 5 iterations come out to be;
x = [0
-0.000152905
-0.000611621
-0.001376146
-0.002446478
-0.003822611
-0.005504532
-0.007492215
-0.00978562
-0.012384688
-0.015289328
-0.018499418
-0.022014791
-0.025835229
-0.029960451
]

Connectez-vous pour commenter.

### Réponse acceptée

Andrew Newell le 20 Avr 2021
Modifié(e) : Andrew Newell le 20 Avr 2021
Sorry, I just realized that you wanted to save the iterations. Here's how:
x = -0.001*ones(6,length(A1));
for i=1:5
x(i+1,:) = x(i,:) - f(x(i,:))./fd(x(i,:));
end
The top row of this matrix has the initial guess and the next five rows have the five iterations.
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
HMZ le 20 Avr 2021
Thank you so much for you help! It is extremely appreciated

Connectez-vous pour commenter.

### Plus de réponses (2)

Paul Hoffrichter le 20 Avr 2021
Modifié(e) : Paul Hoffrichter le 20 Avr 2021
The final x values match your spreadsheet results. Your suggested x0 converges too soon to be interesting. Set it to 1.0 to actually see convergence in action.
format long
M_s = 0; % Other variables in equations
alpha_s = 0;
Theta_F = [1:1:15]
iMax = 5;
A1 = [0,-30,-120,-270,-480,-750,-1080,-1470,-1920,-2430,-3000,-3630,-4320,-5070,-5880]
% B1 has the same value but is calculated as a matrix
B1 = [-196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200, -196200]
f = @(x) A1.*cos(x) + B1.*sin(x) + M_s*(x + (Theta_F ./(180*pi)) + (alpha_s /(180*pi))); % Function
fd = @(x) -A1.*sin(x) + B1.*cos(x) - M_s; % Function derivative
x0 = 0.0001;
% x0 = 1; % more interesting starting point
x = zeros(1, length(A1));
x(:) = x0;
xSave = zeros(iMax, length(A1));
% Attempt at N-R
for i = 1:iMax
x = x - f(x)./fd(x);
xSave(i,:) = x;
i = i+1;
end
% Check;
y = f(x)
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
HMZ le 20 Avr 2021
This also worked, so thank you very much as well for all your help!

Connectez-vous pour commenter.

Andrew Newell le 20 Avr 2021
O.k. So here is how you do it:
x = -0.001*ones(size(A1));
for i=1:5
x = x - f(x)./fd(x);
end
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Newton-Raphson Method dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by