Sunteți pe pagina 1din 1

clear// limpar as variaveis

clc // limpar o console

//valores para funo a serem declarados

//V= input('tenso da fonte:');


//R= input('resistncia:');
//Is= input('corrente :');
//Vt= input('tenso trmica(kT/q):');

//funo

function f=f(x) //conduzindo a funo em funo de uma variavel


//f =( V-R*Is*((exp(x/Vt)-1))-x) //funo
f =( 30-1000*0.000000000001*((exp(x/0.026)-1))-x) //funo
endfunction //fim da funo

//bisseo
//limite inferior
a = input('limite inferior:');
//limite superior
b = input('limite superior:');
tol = input('preciso');
//nmero mximo de iteraes
nmax = input('nmero mximo de iteraes')
if((f(a)*f(b))>0)then
disp("este intervalo no contm raiz");
pause
elseif(f(a)==0)then
disp("A raiz :",a);
pause
elseif(f(b)==0)then
disp("A raiz :",b);
pause
else
i = 0;
erro= abs(b-a);
while((erro>tol) && (i<nmax))
i=i+1;//substituir por um for i:nmax
c=((a+b)/2);
erro=abs(b-a);
if(f(c)==0)then
disp("Raiz=",c);
elseif(f(c)*f(b)<0)then
a=c;
else
b=c;
end
end
end
if(i>=nmax)then
disp("O calculo nao convergiu");
else
disp("Raiz=",c);
end

S-ar putea să vă placă și