how to write a bisection loop?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Jan
el 1 de Mzo. de 2021
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.
Respuestas (1)
Matt J
el 1 de Mzo. de 2021
Editada: Matt J
el 1 de Mzo. de 2021
Because y is a polynomial, it is much more expedient to use roots(),
y = [(-0.50598*10^-10) , (0.38292*10^-7) , (0.74363*10^-4), 0.88318*10^-2];
r=roots(y)
fplot(@(x)polyval(y,x)); hold on
plot(r,0*r,'*'); hold off
xlim([min(r), max(r)])
0 comentarios
Ver también
Categorías
Más información sobre Logical 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!