Interpolação Polinomial-Métodos Numéricos
Licenciatura em Engenharia Mecânica
Trabalho 1- Interpolação Polinomial
Trabalho 2-Solução de Equações não lineares
Semestre de Verão 2012/2013
Unidade Curricular: Métodos Numéricos
Trabalho 1
Resolução: function px=vandermond(x,y) if length(x)~=length(y) error('vetor x e y de dimensões diferentes!') end n=length(x); for i=1:n for j=1:n A(i,j)=x(n-i+1)^(n-j); end end yaux=y; for i=1:n y(i)=yaux(n+1-i); end px=A\y(:);
function y = polyvalh(coef,centros,x) n = length(coef); y = coef(1); for i = 2:n y = coef(i) + y .* (x-centros(i-1)); end Resolução:
function dd = difdiv(x,fx,k)
if length(x) ~= length(fx) error('vector de nos e valores nodais com numero de elementos diferente') end x = x(:); fx = fx(:); len = length(x); if (nargin < 2) | ( nargin > 3) error('numero de argumentos incorrecto') end if nargin == 2 k = 1; end msg = 'diferenca maxima = '; if k > len - 1 disp(msg), disp(len - 1) dd = []; else dd = fx; for i=1:k n = length(dd); dd = (dd(2:n) - dd(1:n-1)) ./ (x(i+1:len) - x(1:len-i)); end end
Resolução:
function [coef,centros] = interpnewton(x,y) n = length(x); coef(n) = y(1); for i = 1 : n - 1 aux = difdiv(x,y,i); coef(n-i) = aux(1); end centros = x(n - 1:-1:1);
function y = polyvalh(coef,centros,x) n = length(coef); y = coef(1); for i = 2:n y = coef(i) + y .* (x-centros(i-1)); end Trabalho 2
Polinómio a considerar:
A aproximação dos zeros foi feita na calculadora, com observação do gráfico e deu-se no intervalo ]1,3[.
Resolução: function y = bisseccao(a,b,tol) if a > b aux = a; a = b; b = aux; end n = ceil(log((b-a)/tol)/log(2)-1); x = (a+b)/2; disp(' k ak