Calculadora de regressão polinomial
Esta calculadora de regressão polinomial ajusta uma curva do grau escolhido a observações numéricas pareadas por mínimos quadrados determinísticos.
Executar grátis
Informe uma lista x, uma lista y correspondente e o grau do polinômio desejado. O resultado apresenta os coeficientes em ordem crescente de potências, começando pelo termo constante, para que você possa copiá-los diretamente para um código de análise ou avaliá-los com a aritmética de Horner. O cálculo usa a decomposição QR de Householder, que oferece melhor comportamento numérico do que a resolução direta das equações normais.
Prepare observações pareadas e escolha o grau
Informe os valores independentes em x e os valores observados correspondentes em y. A posição é importante: o primeiro valor y pertence ao primeiro valor x, o segundo pertence ao segundo e assim por diante. Portanto, as duas listas devem ter exatamente o mesmo comprimento, e cada item deve ser um número finito. Em seguida, escolha um grau inteiro não negativo. O grau zero ajusta uma constante, o grau um ajusta uma reta, o grau dois ajusta uma parábola, e cada grau maior acrescenta outra potência de x. São necessários pelo menos grau mais um pontos, pois essa quantidade de coeficientes precisa ser determinada. Em geral, é preferível usar mais pontos: isso transforma a tarefa em um verdadeiro ajuste por mínimos quadrados, em vez de uma interpolação exata, e pode reduzir a influência do ruído de medição. Não escolha um grau alto apenas porque ele acompanha melhor as observações fornecidas. Um polinômio flexível demais pode oscilar entre os pontos e gerar previsões ruins fora do intervalo amostrado. Comece pelo grau mais simples que a forma dos dados e a finalidade do modelo justificarem.
Interprete e use os coeficientes retornados
Os coeficientes são retornados em ordem crescente de potências. Se o resultado for <code>[c0, c1, c2]</code>, a equação ajustada será <code>y = c0 + c1*x + c2*x^2</code>. Essa convenção facilita a identificação do termo constante e associa cada posição da lista ao respectivo expoente. A resposta também repete o grau aceito e o número de pontos pareados, identifica a ordem dos coeficientes e informa o método de mínimos quadrados. Os coeficientes minimizam a soma dos resíduos verticais ao quadrado: para cada valor x fornecido, o polinômio ajustado produz uma previsão, essa previsão é subtraída do valor y observado e as diferenças quadráticas são somadas. Os mínimos quadrados equilibram todas as observações, sem garantir que a curva passe por uma delas em particular. A aritmética de ponto flutuante pode criar pequenos artefatos decimais; por isso, os resultados são normalizados para uma precisão estável antes do retorno. Ao consumir a saída, preserve a ordem documentada e avalie o polinômio de forma consistente; inverter a lista descreveria uma curva completamente diferente.
Entenda limites numéricos e falhas no ajuste
A calculadora usa a decomposição QR de Householder, uma técnica padrão para resolver sistemas de mínimos quadrados sem formar explicitamente as equações normais. Essa escolha costuma funcionar melhor quando as colunas polinomiais têm escalas diferentes, mas o ajuste polinomial ainda pode ser numericamente exigente. Valores x muito grandes, grande dispersão de escalas ou um grau próximo do máximo configurado podem ampliar erros de arredondamento. Em trabalhos científicos exigentes, considere centralizar e dimensionar x antes do ajuste e preserve essa transformação junto com o modelo. A calculadora rejeita uma solicitação quando há menos pontos que o grau mais um. Também rejeita dados com posto deficiente, como a tentativa de ajustar um polinômio de grau positivo quando os valores x não contêm informação distinta suficiente para determinar todos os coeficientes. Essas falhas são preferíveis ao retorno de infinitos, valores NaN ou uma solução arbitrária. Um ajuste bem-sucedido descreve uma associação nas observações fornecidas; ele não estabelece causalidade, não valida extrapolações nem prova que um polinômio seja o processo gerador correto. Examine os resíduos e o conhecimento do domínio antes de usar a curva em previsões importantes.
Casos de uso
Ajustar uma curva de calibração
Estime uma relação quadrática ou cúbica entre entradas de referência conhecidas e respostas medidas de um instrumento.
Modelar uma tendência curva
Resuma um padrão não linear suave em observações pareadas com coeficientes reutilizáveis em código.
Conferir cálculos acadêmicos
Compare coeficientes polinomiais de mínimos quadrados calculados à mão com um resultado QR determinístico.
Perguntas frequentes
Qual é o preço?
O preço da API é US$ 0,002 por solicitação. A calculadora no navegador pode executar localmente o mesmo núcleo determinístico.
Em que ordem os coeficientes são retornados?
Em potências crescentes: o primeiro valor é o termo constante, o segundo multiplica x, o terceiro multiplica x ao quadrado e assim por diante.
Quantos pontos são necessários?
São necessários pelo menos grau mais um pontos pareados. Observações adicionais geralmente melhoram o ajuste de dados com ruído.
Por que o ajuste pode ser singular mesmo com pontos suficientes?
Os valores x podem não conter informação distinta suficiente para determinar todas as potências solicitadas, por exemplo quando todos são iguais.
A curva passa por todos os pontos?
Não necessariamente. Os mínimos quadrados minimizam os resíduos verticais quadráticos totais; a passagem exata ocorre apenas com dados compatíveis.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/stat/polynomial-regression \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":[-2,-1,0,1,2],"y":[9,2,1,6,17],"degree":2}'const res = await fetch("https://api.kit.forhosting.com/stat/polynomial-regression", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": [
-2,
-1,
0,
1,
2
],
"y": [
9,
2,
1,
6,
17
],
"degree": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/polynomial-regression",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": [
-2,
-1,
0,
1,
2
],
"y": [
9,
2,
1,
6,
17
],
"degree": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/polynomial-regression", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":[-2,-1,0,1,2],"y":[9,2,1,6,17],"degree":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":[-2,-1,0,1,2],"y":[9,2,1,6,17],"degree":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/polynomial-regression", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"x": [
-2,
-1,
0,
1,
2
],
"y": [
9,
2,
1,
6,
17
],
"degree": 2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.polynomial_regression",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |