Loop structure for fixed point.

2 次查看(过去 30 天)
Hello, I have problem with Loop structure for fixed point.
This is the problem, and i made code like this.
It only caculates 1 time and just stops. Which mean, it's not repeating my code, xb=x; and x=sqrt(1.8*x+2.5)
if i manually repeat xb=x; and x=sqrt(1.8*x+2.5) the answer is correct, however it's not repeating those code.
What's wrong about my loop and How to fix it?
  5 个评论
Rik
Rik 2021-4-17
How large is that difference? And what is the code you're currently using? And what results are you expecting?
형석 김
형석 김 2021-4-17
编辑:형석 김 2021-4-17
@Rik The value of x i got is 2.7892, and the correct answer when I calculated manually is 2.7424. I've also calculated error when x=2.7892 manually, but error sllightly exceeds 0.05, which is (2.9333-2.7892)/2.78792=0.05166.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2021-4-17
and the correct answer when I calculated manually is 2.7424
No it is not. The correct answer is 2.71934053986603
format long g
roots([-1 1.8 2.5])
You tried the transform
-x^2 + 1.8*x + 2.5 == 0
implies 1.8*x + 2.5 == x^2
implies sqrt(1.8*x + 2.5) == sqrt(x^2)
and you deduced from that that
x == sqrt(1.8*x + 2.5)
but that is not correct. sqrt(x^2) is not x: it is abs(x) . So
abs(x) == sqrt(1.8*x + 2.5)
and you should be working both branches of that.
I suggest that you instead
-x^2 + 1.8*x + 2.5 == 0
implies 1.8*x == x^2 - 2.5
implies x == (x^2 - 2.5)/1.8

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by