Você está na página 1de 3

Derivada numérica via ajuste ou interpolação.

wxmx 1 / 3

Derivada numérica via ajuste


ou interpolação
1
1.1 lista de pontos
xy:[
[0, 1],
[1, 2],
[2, 5],
[3, 9]
];
[0,1],[1,2],[2,5],[3,9]
1.2 definindo a matriz
matrixxy: apply(matrix,xy);
0 1

1 2

2 5

3 9

1.3 carregando o pacote


load(lsquares);
C:/maxima−5.45.1/share/maxima/5.45.1/share/lsquares/lsquares.mac
1.4 invocando o comando
O comando abaixo possui 4 entradas
1°- o nome da matriz
2°- uma lista das ordem que as variaveis se apresentam dentro da
matriz( estrutura da matriz)
3° equação que relaciona as duas variaveis da questão(curva de
ajuste)
4°- lista de parametros que devem ser encontrados para ajutar a
curva aos pontos
lsquares_estimates(
matrixxy,
[x,y],
y = a·x^2 + b·x +c,
[a,b,c]
);
3 9 19
a= ,b= ,c=
4 20 20
[a1,b1,c1]:[3/4,9/20,19/20];
Derivada numérica via ajuste ou interpolação.wxmx 2 / 3

3 9 19
, ,
4 20 20
p(x) := a1·x^2 + b1·x +c1;
2
p ( x ) := a1 x + b1 x + c1
p(x);
2
3x 9x 19
+ +
4 20 20
1.5 gerando o grafico
wxplot2d([
[discrete, xy], p(x) ],
[x,0,3],
[legend,"dados","ajuste"],
[style, points,lines])
;

1.6 Calculando as diferenças finitas


p1: (matrixxy[2][2]−matrixxy[1][2])/(matrixxy[2][1]−matrixxy[1][1]);
1
for i in [2,3] do(
c2:(matrixxy[i+1][2]−matrixxy[i−1][2])/(matrixxy[i+1][1]−matrixxy[i−1][1]),
disp(c2)
);
2
7
2
done
R1: (matrixxy[4][2]−matrixxy[3][2])/(matrixxy[4][1]−matrixxy[3][1]);
4
1.7 derivando via ajuste
p(x);
2
3x 9x 19
+ +
4 20 20
dp(x):= (6·x)/4 + 9/20;
6x 9
dp ( x ) := +
4 20
for x: 0 thru 3 do (disp(float(dp(x))));
0.45
1.95
Derivada numérica via ajuste ou interpolação.wxmx 3 / 3

3.45
4.95
done

Você também pode gostar