how to solve Index exceeds the number of array elements (1)?

1 vue (au cours des 30 derniers jours)
Aaron Fredrick
Aaron Fredrick le 21 Déc 2020
Commenté : Aaron Fredrick le 21 Déc 2020
Hy guys im writing the following code
% creating an array for D %
D_array = 1:1:40;
% preallocation for optimal distance & cost %
Optimal_distance = zeros(1,length(D));
Cost = zeros(1,length(D));
% Newton's Raphson Method %
for j = 1:length(D_array)
D = D_array(j);
% Newton-Raphson's Method %
% initial guess %
x0 = 60;
% 1st derivative value %
fx = @(x) (C_S1)*sqrt(D^(2)+x.^(2))+(C_O1)*(L-x);
% 2nd derivative value %
gx = @(x) ((C_S1)*x./sqrt(x.^(2)+D^2))-(C_O1);
g = g(x0);
Precision = 0.01;
while abs(g) > Precision
% new 1st derivative value %
f= fx(x0);
% Newton-Raphson's formula %
x0 = x0 - f/g;
% new 2nd derivative value %
g= gx(x0);
end
Cost(j) = g;
Optimal_distance(j) = x0;
end
Im trying to get values of x0 where my value of D changes but when i run the code i get the following error message;
Index exceeds the number of array elements (1).
Error in Q1c (line 32)
g = g(x0);
How can I solve this problem?

Réponse acceptée

Jan
Jan le 21 Déc 2020
Maybe you mean:
g = gx(x0);
% ^
  5 commentaires
Jan
Jan le 21 Déc 2020
Use the debugger to check the values: g does not reach a fix point near to 0, but it is iterating between -4499994.58631 and 499560.68281.
Aaron Fredrick
Aaron Fredrick le 21 Déc 2020
How can I modify my code so i can get a proper output?

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by