MATLAB Answers

Indexing through an array

1 view (last 30 days)
This program is designed to approximate cubed roots based on user input values of the number they want to approximate and their estimate. The loop iterates until the error is less than 1e-9.
I am trying to store all of my estimate values into a vector array and plot them on a graph, but I keep getting an error saying that my index values exceed the array elements. Any clarification about how to resolve this issue would be greatly appreciated.
num = input('Enter a number you would like to find the cubed root of: ')
est = input('Enter your initial estimate: ')
err = abs(num - est.^3)
est(1) = est
k = 2;
while err > 1e-9
est(k+1) = (1/3)*(2.*est(k)+num./est(k.^2));
err = abs(num - est(k.^3));
k = k + 1;
end
plot(1:length(est),est)
fprintf('The cubed root of %g is approximately %.3f',num,est)

  0 Comments

Sign in to comment.

Accepted Answer

David Hill
David Hill on 17 Nov 2020
num = input('Enter a number you would like to find the cubed root of: ');
est = input('Enter your initial estimate: ');
err = abs(num - est^3);
k = 2;
while err > 1e-9
est(k) = (1/3)*(2*est(k-1)+num./(est(k-1)^2));
err = abs(num - est(k)^3);
k = k + 1;
end
plot(1:length(est),est);
fprintf('The cubed root of %g is approximately %.3f',num,est(end));

  1 Comment

Austin Shipley
Austin Shipley on 17 Nov 2020
That worked perfectly! Thank you so much! I never really thought to tweak the array indices since that was a provided formula in my homework.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!