Finding the root of an equation using iteration

3 visualizaciones (últimos 30 días)
Sara Jones
Sara Jones el 27 de Oct. de 2018
Editada: Stephan el 27 de Oct. de 2018
I am attempting to find the root of the equation 3x^3+x^2-10 using iteration. Here is the code that I have so far, however I don't think I have implemented the while loop correctly since it the equation is currently only evaluated once. Essentially, the code ought to evaluate whether the absolute value of xVal-cVal is less than 0.0001 and if so, it should print out the value of cVal and stop. Otherwise, the value of xVal should be set to equal cVal and loop back, however the code does not do this.
xVal = input('Enter a value for x:');
cVal =((10-xVal^2)/3)^(1/3);
while (abs(xVal-cVal)>0.0001)
xVal = cVal;
end
disp(cVal);

Respuestas (1)

Stephan
Stephan el 27 de Oct. de 2018
Editada: Stephan el 27 de Oct. de 2018
Hi,
you miss to the actualize the value for cval in your while loop - Try:
xVal = input('Enter a value for x:');
cVal =((10-xVal^2)/3)^(1/3);
while (abs(xVal-cVal)>0.0001)
xVal = cVal;
cVal =((10-xVal^2)/3)^(1/3);
end
disp(cVal)
This will work.
Best regards
Stephan

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!

Translated by