I am getting wrong answer
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
SANDIPKUMAR ROYADHIKARI
el 28 de Ag. de 2021
Comentada: SANDIPKUMAR ROYADHIKARI
el 28 de Ag. de 2021
I am trying to calculate the error of a function within some limit, but I am getting wrong answer. I have attached my code. Please help me to find out the problem. Thanx
clear all
clc
x=1;
err=10000;
while (err>=20)
err=131-x^2;
x=x+1;
end
After running the code, err is coming out less than 20. Please help me to fix it.
6 comentarios
Walter Roberson
el 28 de Ag. de 2021
The error would be greater than 20 at your starting point, so why not stop there?
Are you trying to find the last i that gives err>20 rather than the first for which it is less? If so then after your loop, subtract off the last increment from i. You are adding 1 to i each time so subtract 1 from i.
Respuestas (2)
Awais Saeed
el 28 de Ag. de 2021
Editada: Awais Saeed
el 28 de Ag. de 2021
You wrote a loop to run when err >= 20, its value is decreasing in the loop and when err<20 (in your case 10), why would it still run? It has to stop. See the output to know the reason
x=1;
err=10000;
while (err>=20)
err=131-x^2;
fprintf('x = %d, err = %d\n', x, err)
x=x+1;
end
x = 1, err = 130
x = 2, err = 127
x = 3, err = 122
x = 4, err = 115
x = 5, err = 106
x = 6, err = 95
x = 7, err = 82
x = 8, err = 67
x = 9, err = 50
x = 10, err = 31
x = 11, err = 10
0 comentarios
Walter Roberson
el 28 de Ag. de 2021
You are looking for an integer, x, such that
syms x
xsol = solve(131-x^2 == 20)
You can see from xsol that the x that solve that equation are not integers: they are numbers that are between 10 and 11 and the negative of that.
Changing to a smaller increment such as 0.1 will only get you closer . No matter what rational increment you use instead of 1, the actual solutions are irrational and so cannot be reached by the method you are using (though possibly you could find something that came out okay to within roundoff error
0 comentarios
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!