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

1 view (last 30 days)
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?

Accepted Answer

Jan
Jan on 21 Dec 2020
Maybe you mean:
g = gx(x0);
% ^
  5 Comments
Jan
Jan on 21 Dec 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.

Sign in to comment.

More Answers (0)

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!