Buscar

Metodo da bisseção

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%% Metodo da Bissecao %%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%% Dados de entrada %%%%%%%%%%%%%%%%%%%%
%%% a - intervalo %%%%%%%%%%%%%%%%%%%%%%%
%%% b - intervalo %%%%%%%%%%%%%%%%%%%%%%%
%%% f - funcao a qual se quer encontrar a raiz %%%%%%%%%
%%% e - precisao dejesada para raiz %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% dados de saada %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% x - raiz desejada %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [x] = bissecao()
clc;
format long;
syms x; %%% variavel simbolica
f = input('Digite a funcao desejada: (em funcao de x) ');
a = input('Digite o valor de a ');
b = input('Digite o valor de b ');
e = input('Digite a precisao desejada ');
k=0; %% iteracoes
fa=subs(f,a); %% f(a)
fb=subs(f,b); %% f(b)
y = (a+b)/2;
disp('k x f(x) erro')
while((b - a) > e) %% enquanto o erro for maior que o valor estabelecido
 x = (a+b)/2; %% calcula a media do intervalo dado
 fx = subs(f,x); %%calcula o valor da funcao para o x calculado
 if (fa*fx < 0) %% se f(a)*f(x)<0
 b = x; %% b = x
 fb = fx; %% f(b) = f(x)
 else %% senao
 a = x; %% a = x 
 fa = fx; %% f(a) = f(x)
 end
 k=k+1; 
 %s = [k x subs(f,x) (b-a)]
 
 y = [y x] %% vetor que guarda todas as ra?zes calculadas
end
disp('O numero de iteracoes e: ')
k
disp('A raiz e: ')
x
disp('O erro e')
b - a
plot(subs(y),'o'); grid on; hold on; % plota as raizes calculadas
title('Raizes')

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando