Вы находитесь на странице: 1из 1

cdigo do mtodo de pgaso para refinamento de zeros de funes para o matlab clc syms x repete=1; while repete==1 f=input('Entre

com a f(x): \nObs.: 1. Ex: x^2-9*x+3; \n 2. Para usar a funo anterior digite apenas "f"; \n'); x0=input('Qual o primeiro ponto, "a", do intervalo "I"?: '); x1=input('Qual o segundo ponto, "b", do intervalo "I"?: '); epsilon1=input('Qual a preciso, para o mdulo de f(x) na interao k, epsilon 1?: ' ); epsilon2=input('Qual a preciso, para o mdulo de x(k)-x(k+1), epsilon 2?: '); erro=epsilon2+1; k=1; xant=x0; %Ponta p inicial do erro para a entrada no loop

fx0=subs(f,x,x0); %Calculo de f(x0) fx1=subs(f,x,x1); %Calculo de f(x1) x2=x1-(fx1*(x1-x0))/(fx1-fx0); %Calculo de x na interao k fx2=subs(f,x,x2); %Calculo de f(x2) while erro>epsilon2 & abs(fx2)>epsilon1 if (fx2*fx1)<0 x0=x1; %Verifica para que lado est a raiz e define o no vo intervalo x1=x2; fx0=subs(f,x,x0); else fx0=fx0*fx1/(fx1+fx2); x1=x2; end fx1=subs(f,x,x1); %Calculo de f(x1) x2=x1-(fx1*(x1-x0))/(fx1-fx0); %Calculo de x na interao k fx2=subs(f,x,x2); %Calculo de f(x2) k=k+1; erro=abs(x2-xant); xant=x2; end fprintf('A raz de f(x) no intervalo pedido com %d interaes : \n 2) repete=input('Digite "1" para calcular novamente: '); end %d\n', k, x

Вам также может понравиться