Effacer les filtres
Effacer les filtres

bisection method code help

2 vues (au cours des 30 derniers jours)
Angelina Encinias
Angelina Encinias le 30 Août 2022
Commenté : Angelina Encinias le 31 Août 2022
function root=bisection(func,x1,xu)
xr=x1;es=.0001;
while(1)
xrold=xr;
xr=(x1+xu)/2;
if xr~=0
ea=abs((xr-xrold)/xr)*100;
else
ea=100;
end
if func(x1)*func(xr)<0
xu=xr;
elseif func(x1)*func(xr)>0
x1=xr;
else
ea=0;
end
if ea<=es,break,end
end
root=xr;
end
  2 commentaires
Steven Lord
Steven Lord le 30 Août 2022
What is your question or concern about the code you've posted and the text of (what appears to be) a homework problem?
Angelina Encinias
Angelina Encinias le 31 Août 2022
What do I need to change to the code to fit the problem?

Connectez-vous pour commenter.

Réponses (1)

Sam Chak
Sam Chak le 31 Août 2022
I did not change anything. The bisection code works for a simple test below to find :
fcn = @(x) sin(x) - 0.5; % if the equation is f(x) = g(x), then enter f(x) - g(x)
xL = 0; % lower bound
xU = pi/2; % upper bound
x = bisection(fcn, xL, xU);
x_deg = x*180/pi % solution in degree
x_deg = 30.0000
function root=bisection(func,x1,xu)
xr=x1;es=.0001;
while(1)
xrold=xr;
xr=(x1+xu)/2;
if xr~=0
ea=abs((xr-xrold)/xr)*100;
else
ea=100;
end
if func(x1)*func(xr)<0
xu=xr;
elseif func(x1)*func(xr)>0
x1=xr;
else
ea=0;
end
if ea<=es,break,end
end
root=xr;
end
  1 commentaire
Angelina Encinias
Angelina Encinias le 31 Août 2022
Okay. Is this for my question above? I dont see anything about angles for this question.

Connectez-vous pour commenter.

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by