bisection method code help

3 visualizzazioni (ultimi 30 giorni)
Angelina Encinias
Angelina Encinias il 30 Ago 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 Commenti
Steven Lord
Steven Lord il 30 Ago 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 il 31 Ago 2022
What do I need to change to the code to fit the problem?

Accedi per commentare.

Risposte (1)

Sam Chak
Sam Chak il 31 Ago 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 Commento
Angelina Encinias
Angelina Encinias il 31 Ago 2022
Okay. Is this for my question above? I dont see anything about angles for this question.

Accedi per commentare.

Categorie

Scopri di più su Language Support in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by