# Problem on bisection method in MATLAB

5 visualizaciones (últimos 30 días)
raj k el 20 de Oct. de 2020
Comentada: shubh aggarwal el 28 de Oct. de 2020
Write a program in MATLAB which will give as output all the real solutions of the equation sin(x)=x/10. The solutions should be accurate up to the second decimal place and should be obtained using the bisection method. Note that the program should be written efficiently i.e, a loop should be introduced so that the bisection method is applied repeatedly to obtain all the solutions (starting values should not be entered manually for each root). The program should display all the solutions as output.
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Ameer Hamza el 20 de Oct. de 2020

Iniciar sesión para comentar.

### Respuestas (2)

Ameer Hamza el 20 de Oct. de 2020
Study the code in the following FEX packages, and then you can write your own code for the homework
##### 4 comentariosMostrar 2 comentarios más antiguosOcultar 2 comentarios más antiguos
John D'Errico el 21 de Oct. de 2020
If you understand it, then you need to make an effort. surely you can find pseudo-code for a bisection method? If so, then look how the loop is structured. Now think about how loops work in MATLAB. The mode effort you make, the more likely you will get help. Show the code you are writing. look at it. Think about how it must work. Look at the code you wrote, and ask why it did not work.
raj k el 22 de Oct. de 2020
Hi. So this is the code I am using
a1=pi;
b=3*pi/2;
Tol=1e-8;
error=abs(a1-b);
fa=FofX2(a1);
fb=FofX2(b);
iterations=0;
while(error>Tol)
format long;
c=(a1+b)/2
fc=FofX2(c);
iterations=iterations+1
if(fa*fc<=0)
b=c;
fb=fc;
else
a1=c;
fa=fc;
end
error=abs(b-a1);
end
disp(c)
disp(iterations)
Can you look at it and give me some leads? I am trying to figure out how to do it.

Iniciar sesión para comentar.

Andy el 22 de Oct. de 2020
Valid starting points for a and b are the turning points of the function sin(x)-(x/10)=0. Determine the turning points then use tp(1) and tp(2) as the first a and b, then tp(2) tp(3)
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Andy el 22 de Oct. de 2020
tp(1) is the first turning point, tp(2) is the second and so on.
You can write code to determine the turning points by differentiating the function and finding the peaks. There is a findpeaks function on file exchange.
shubh aggarwal el 28 de Oct. de 2020
@ raj k can you share the final code if your problem was solved

Iniciar sesión para comentar.

### 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!

Translated by