A forma mais rápida de encaixar uma parábola num conjunto de pontos?
editar: Acho que descida gradiente é o caminho a seguir. O cálculo dos Mínimos Quadrados teria sido um pouco mais de taxação (ter que fazer a decomposição qr ou algo para manter as coisas estáveis).
4 answers
Se os pontos não tiverem nenhum erro associado, pode interpolar por três pontos . Caso contrário os mínimos quadrados ou qualquer formulação equivalente é o caminho a seguir.
(x1,y1), (x2,y2) and (x3,y3)
e quer a parábola
y-y0=a*(x-x0)^2
Para passar por eles: encontre y0, x0, and a
.
Você pode fazer alguma álgebra e obter esta solução (desde que os pontos não estejam todos em linha):
let c=(y1-y2)/(y2-y3)
x0=(-x1^2+x2^2+c*(x2^2-x3^2))/(2.0*(-x1+x2+c*x2-c*x3))
a=(y1-y2)/((x1-x0)^2-(x2-x0)^2)
y0=y1-a*(x1-x0)^2
Nota na equação para c if y2==y3
então você tem um problema. Então, no meu algoritmo, verifico isto e troco por x1, y1 com x2, y2 e depois continuo.
Paul Probert
Uma solução calculada é quase sempre mais rápida do que uma solução iterativa. A "exceção" seria para contagens de iteração baixa e cálculos complexos.
Eu usaria o método dos Mínimos Quadrados. Eu só o codificei para regressão linear, mas ele pode ser usado para parábolas (eu tinha razões para procurá - lo recentemente-fontes incluíram uma edição antiga de "Numerical Recipes" Press et al; E "Engineering Mathematics" Kreyzig).- Leia no. de pontos de dados n e ordem de Mp polinomial .
- ler os valores dos dados .
- Se n
- Definir M=Mp + 1;
- calcular a co-eficiência da matriz C.
- calcula a co-eficiência da matriz B.
- resolver para os co-eficientes a1,a2,. . . . . . . um . Escreve o co-eficiente .
- estimar o valor da função na glren das variáveis independentes .