Index exceeds matrix dimensions using for and while loop

clc
clear
close
%define variables
Re = [2500:1:500000];
n = numel (Re);
t(1)= 0;
e = 1;
f = 1;
for i = 1:n
g(i+1) = 4*log10(Re(i)*sqrt(f))-0.4-(1/sqrt(f));
while e > 0.000005
i = i+1;
t(i+1) = f(i) + (4*log10(Re*sqrt(f(i)))-0.4-(1/sqrt(f(i))))/((2/(f(i)*log(10)))+(1/(2*f(i)^(2/3))))
e = abs(t(i+1) - t(i))
end
end
It gives index exceeds matrix dimensions error. I checked each raw of code, but I cannot see it

2 comentarios

f(i) (at least for i>1) does not exist.
what should it be?

Iniciar sesión para comentar.

Respuestas (1)

Anirudh Vajpeyi
Anirudh Vajpeyi el 30 de Abr. de 2022
while e > 0.000005
i = i+1;
t(i+1) = f(i) + (4*log10(Re*sqrt(f(i)))-0.4-(1/sqrt(f(i))))/((2/(f(i)*log(10)))+(1/(2*f(i)^(2/3))))
e = abs(t(i+1) - t(i))
end
This loop is basically an infinite loop and also 'f' has just one value. So, not sure what exactly do you want to achieve.

2 comentarios

Develop a function that uses Newton Raphson methods to solve for f given a user-supplied value of Re between 2,500 and 500,000. Design the function so that it ensures that the absolute error in the result is 𝜖 < 0.000005.
Exact equation 1/sqrt(f) = 4*log10(Re*sqrt(f))-0.4

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 30 de Abr. de 2022

Comentada:

el 1 de Mayo de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by