Skip to content

Instantly share code, notes, and snippets.

@ihavenonickname
Created August 15, 2018 00:44
Show Gist options
  • Save ihavenonickname/1e39ab0997aa1f23061ea0ae8c87ea35 to your computer and use it in GitHub Desktop.
Save ihavenonickname/1e39ab0997aa1f23061ea0ae8c87ea35 to your computer and use it in GitHub Desktop.
function [ ] =bissec1(f,a,b,Erro,x, x2),
//******************************************************************//
//calcula a raiz de f(x) no intervalo [a,b] pelo método da bissecção
//Entrada: f = função a ser avaliada
// a = limite inferior do intervalo
// b = limite superior do intervalo
// erro = precisão desejada
// x1=limite inferior para plotar o gráfico da função em estudo
// x1=limite superior para plotar o gráfico da função em estudo
//Saída: raiz
// número de iterações: iter
// raiz procurada: xm
// ******************************************************************//
format(20)
x0 = a;
x1 = b;
xm = (x0+x1)./2;
it =0 ;
while (min(abs(f(xm)),(x1-x0))>Erro)&it<=150 do
if f(x0).*f(xm) > 0 then
x0 = xm; else x1=xm; end;
xm = (x0+x1)./2;
it = it+1;
end;
raiz = xm;
iter = it;
disp('iterações:')
disp(iter)
disp('raiz:')
disp (raiz)
x=x:.01:x2;
y=feval(x,f);
plot(x,y,'b')
xlabel('eixo x')
ylabel('eixo y')
a = gca();
a.x_location="origin";
a.y_location="origin";
endfunction;
function [ ] = posicao_falsa(f, a, b, Erro, x, x2),
format(20);
x0 = a;
x1 = b;
raiz = (x0+x1)./2;
iter = 0;
while (min(abs(f(raiz)), x1 - x0) > Erro) & iter <= 150 do
if f(x0) .* f(raiz) > 0 then
x0 = raiz;
else
x1 = raiz;
end;
raiz = (x0*f(x1) - x1*f(x0)) / (f(x1) - f(x0));
iter = iter + 1;
end;
disp('iterações:');
disp(iter);
disp('raiz:');
disp (raiz);
x = x:.01:x2;
y = feval(x, f);
plot(x, y, 'b');
xlabel('eixo x');
ylabel('eixo y');
a = gca();
a.x_location="origin";
a.y_location="origin";
endfunction;
function [ ] = newton_raphson(f, inicial, Erro, x, x2),
format(20);
raiz = inicial;
iter = 1;
while (abs(f(raiz)) > Erro) & iter <= 150 do
raiz = raiz - (f(raiz) / numderivative(f, raiz));
iter = iter + 1;
end;
disp('iterações:');
disp(iter);
disp('raiz:');
disp (raiz);
x = x:.01:x2;
y = feval(x, f);
plot(x, y, 'b');
xlabel('eixo x');
ylabel('eixo y');
a = gca();
a.x_location="origin";
a.y_location="origin";
endfunction;
function [ ] = secante(f, a, b, Erro, x, x2),
// TODO
endfunction;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment