Cálculo numeroco
Por: Abraão Vila Nova • 19/9/2015 • Projeto de pesquisa • 670 Palavras (3 Páginas) • 184 Visualizações
[pic 1]
UNIVERSIDADE FEDERAL DE PERNAMBUCO
NÚCLEO DE TECNOLOGIA
CURSO DE ENGENHARIA CIVIL
Projeto 2 – Raiz de função real
RELATÓRIO SUBMETIDO À UFPE COMO
ATIVIDADE DA DISCIPLINA DE CÁLCULO NUMÉRICO
POR
ABRÃAO ALVES VILA NOVA
JOSÉ AILTON DA SILVA MACENA JÚNIOR
Prof. Alessandro Romário Antunes Echevarria
CARUARU, Outubro/2014.
INTRODUÇÃO
Encontra raízes de funções reais é importante para varias áreas da matemática e suas aplicações, como encontrar a taxa de variação máxima de um juros aplicado ou a resultante de uma força aplicada sobre uma determinada estrutura, porem nem sempre é fácil calcular analiticamente as raízes de uma equação, deste modo recorremos a ajuda de computadores para nos auxiliar na nossa busca.
DESENVOLVIMENTO
1 – Bisseção
%função que retorna a raiz de uma função em um dado intervalo
function x = bissecao(f,x0,x1,error)
x = x0;
if(f(x0)*f(x1))<0 %condição inicial do método
while abs(f(x)) > error %loop
x = (x0 + x1)/2; %busca binaria, metade do intervalo
if f(x)*f(x0)>0 %caso o limite inferior mantenha o sinal
x0 = x;
elseif f(x1)*f(x)>0 %caso limite superior mantenha o sinal
x1 = x;
end
end
else
x = 'N use esse metodo' ; %caso
end
end
%função principal , acha as raizes usando o metodo da bisseção
function Main()
fprintf('Informe a função : '); %mensagem para o usuario
fun = input('','s'); %Armazenando o valor da variavel
f = inline(fun);
xi = -10:10; %intervalo do gráfico
plot(xi,f(xi)); %plotando o gráfico para o usuario
fprintf('Informe o x0 : ');
x0 = input(''); %limite inferior do intervalo
fprintf('Informe o x1 : ');
x1 = input(''); %limite superior do intervalo
fprintf('Informe o error : ');
error = input(''); %erro aceitável
raiz = bissecao(f,x0,x1,error); %achando a raiz
fprintf('A raiz presente nesse intervalo eh : %f ',raiz); %informando ao usuario
end
2 - Método de Newton-Raphson
%Método de Newton-Raphson
syms x
fun = x^2 - 2; %Função de entrada
x1 = 4 ; %ponto inicial
error = 0.001; %error
dfun = diff(fun); %derivada da função;
f = inline(fun);
df = inline(dfun);
while abs(f(x1)) > error %loop
x1 = x1-(f(x1)/df(x1)); %indo para o proximo ponto
end
fprintf('%f \n',x1);
3 - Método do ponto fixo(interação)
%Método do ponto fixo
format('long','g')
syms x
fun = x^3 - x - 1;%função;
ifun = (x + 1)^(1/3); %função de interação;
error = 0.0001; %erro aceitável
x1 = 1 ; %ponto inicial
f = inline(fun);
iF = inline(ifun);
x0 = x1;
while abs(f(x1)) >= error %loop
x1 = iF(x0); %interação
x0 = x1;
end
fprintf('%f \n',x0); %resultado
RESULTADOS
Tabela 1 – Método da bisseção
Função | X0 | X1 | Error | Raiz |
x^3 – 2 | -2 | 2 | 0.0001 | 1.259918 |
x^3 -9x +3 | 2 | 3 | 0.0001 | 2.816910 |
x^5 -4x + 5 | -2 | -1 | 0.000001 | -1.630436 |
x.^2 – 2 | -2 | 2 | 0.001 | Não encontrada |
2cos(x) | 0 | 3 | 0.0005 | 1.5708 |
cos(x) + sin(x) | 0 | 4 | 0.005 | 2.3594 |
sin(x) + cos(x) – x^3 - 4 | -6 | 4 | 0.000001 | -1.7261 |
...