how to write a bisection loop?
조회 수: 1 (최근 30일)
이전 댓글 표시
y = (-0.50598*10^-10)*x.^3 + (0.38292*10^-7)*x.^2 + (0.74363*10^-4)*x + 0.88318*10^-2
and I am trying to use bisection to find three point for this function, here is what I did.![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/534699/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/534699/image.png)
For bisection one: xl = -1000 and xu = -500, xm = (-1000+(-500))/2 = -750
If xl*xu < 0
Xu=xm
Xm=(xl+xu)/2
error = ((xm-xu)/xm)*100
end
If xl*xu >0
xl = xm
Xm=(xl+xu)/2
error = ((xm-xu)/xm)*100
end
If error < 5
end
this is what I plan to do in word I dont know how to make a funtion to start it.
댓글 수: 7
Jan
2021년 3월 1일
Please use the tools for formatting code. This improves the readability.
It is still not clear, what you want to achieve. "bisection between -1000 to -500, -500 to 0 and 1500 – 2000" does not explain this, because you can divide anything into anything. I guess, you want to find a minimum or zero value?
Your code contains an "Xm" adn "xm" with different uppercase X.
If you check for "if xl*xu<0" you need an "else" to handle the opposite case. Changing the value of xu and checking again "if xl*xu>0" is not suffcient.
The case that "xl*xu==0" is not considered.
Most likely I assume you want to create a function, which is evaluated at the points xl and xu. Comparing the x values is not meaningful. You can find many bisection codes in Matlab, if you ask an internet search engine.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!