Fórmulas, expressões matemáticas e ajustes de funções

From GRIPER Wiki

Jump to: navigation, search

Contents

Expressões matemáticas

Conjunto de dados a serem ajustados por uma função matemática

Em muitas situações de análise de dados, ou cálculos em geral, queremos aplicar expressões matemáticas a variáveis previamente definidas. Um exemplo bastante comum é o de ajuste de funções. Imagine um conjunto de dados como o mostrado na figura ao lado onde deseja-se ajustar uma expressão do tipo

y = ax + b

onde a e b são parâmetros que serão ajustados aos dados ao lado.

Acontece que nem sempre é possível escrever uma fórmula matemática desta maneira em um programa de computador. Cada programa possui uma sintaxe própria que deve ser respeitada. Isto não seria diferente no nosso caso. O WebROOT faz interface com o ROOT e, a menos de situações bem específicas que discutiremos adiante, a sintaxe utilizada no WebROOT para expressões matemáticas é a mesma utilizada pelo ROOT.

Assim, fórmulas e expressões matemáticas são escritas utilizando o padrão de linguágem do c++ e ROOT. A seguir apresentamos um breve tutorial.

Variável independente

No WebROOT, a variável independente em uma expressão é sempre x, se a expressão tiver apenas uma variável independente. Se tiver duas variáveis independentes, elas são x e y. Se houver três, x, y e z. Estas variáveis são escritas sempre com letra minúscula. Fique atento a isto.

Operadores matemáticos

Em c++, os operadores matemáticos básicos são o (+) para adição, (-) para a subtração, (*) para multiplicação, (/) para divisão e (%) para o resto de uma divisão. Não existe operador para potência em c++. Normalmente utiliza-se a função pow(a,b) = ab. Contudo, o ROOT também aceita o operador (^) para este fim. Assim, a^b = ab. No WebROOT, ambos formatos para potência são aceitos.

Funções matemáticas básicas

Escrevendo uma expressão matemática com parâmetros e os valores dos parâmetros

Há várias funções matemáticas pré-definidas no c++ (e ROOT), tais como sin(x), cos(x), tan(x), asin(x) (arco-seno), acos(x), atan(x) (x em radianos), exp(x), ln(x) (log na base e), log10(x) (log na base 10), pow(a,b), sqrt(x) (raiz quadrada), abs(x) (módulo), etc. Consulte a web para uma boa referência de funções pré-definidas em c++. Apesar disto, acredito que estas cobrem 99.9% do dia-a-dia do WebROOT.

Parâmetros em expressões matemáticas

Na expressão y = ax + b, a e b são parâmetros. No WebROOT, parâmetros são escritos como um número entre colchetes, por exemplo [0], [1], [2],... Assim, para escrever a equação de uma reta y = ax + b, no WebROOT, devemos escrever y = [0] * x + [1]. Note o * para representar a operação de multiplicação. Por comparação a = [0] e b = [1]. Na figura ao lado temos uma outra expressão matemática, y = ax + blog(cx + 1), que deve ser escrita como [0] * x + [1] * log([2] * x + 1). Note, nesta figura, que atribuímos valores aos parâmetros, separados por vírgulas. Assim a = [0] = 5, b = [1] = 0.2 e c = [2] = 10000.

Funções matemáticas extras do ROOT

Exemplos de expressões matemáticas
Expressão WebROOT
ax + b [0] * x + [1]
 \left(\frac{sin(ax)}{ax}\right)^2  (sin([0]*x)/([0]*x))\wedge 2
 \left( a - b\left( \exp(cx)-1\right) \right)x ([0] − [1] * (exp([2] * x) − 1)) * x
 \frac{a}{\sqrt{2\pi}\sigma}\exp\left(-\frac{1}{2}\left(\frac{x-\bar{x}}{\sigma} \right)^2 \right) gaus(0)

Há várias funções matemáticas extras no ROOT que podemos utilizar. Veja o manual do ROOT para detalhes. Para citar as mais comuns:

  • gaus(0) - Função gaussiana. [0] = amplitude, [1] = valor médio, [2] = desvio padrão
  • gaus(3) - Função gaussiana. [3] = amplitude, [4] = valor médio, [5] = desvio padrão.
  • polN(0) - Polinômio de grau N. Por exemplo, pol1(0), pol2(0), etc. Neste caso, polN(0) = [0] + [1]*x + [2]*x^2 + ... Temos pré-definido desde pol0 até pol9.

OBS: O valor (0) entre parêntesis, indica a numeraço inicial dos parâmetros. Por exemplo, gaus(3) indica que [3] = amplitude, [4] = valor médio e [5] = desvio padrão. Isto é útil quando escrevemos fórmulas complexas que envolvem várias funções pré-definidas.

Ajustes de funções

Muitas aplicações no WebROOT têm a possibilidade de realizar ajustes de uma função a um conjunto de dados. O ambiente de ajuste de funções segue o mesmo princípio em todas estas aplicações. A seguir discutiremos como isto é feito.

Caixa de ajuste de funções

O WebROOT utiliza como padrão o Minuit para ajuste de funções. O método padrão utilizado é o MMQ (Método dos Mínimos Quadrados) onde o conjunto de parâmetros que ajustam uma função aos dados é obtido através da minimização do Chi2 entre os dados e a função. No caso de ajuste de funções aos dados em um gráfico, temos a opção de obter os resíduos do ajuste. Esta opção não está presente para ajustes de histogramas.

A figura ao lado mostra a interface de ajuste de funções, com todas as suas caixas internas expandidas.

Para ajustar uma função deve-se, primeiramente, escrever a fórmula no campo Fórmula: y = . Fórmulas a serem ajustadas possuem parâmetros. Logo abaixo deve-se colocar 'chutes' iniciais para estes parâmetros. Isto é importante pois muitas expressões matemáticas não são lineares nos seus parâmetros e, nestes casos, o método de ajuste utiliza de busca numérica pelo mínimo do Chi2 a partir de cálculos de gradientes nos parâmetros. Se o chute inicial for muito ruim, ou ter sido deixado em branco, o ajuste pode não convergir.

Ao lado das caixas de texto para a fórmula e parâmetros há duas caixas de marcação. Acima, a caixa Ajuste. Se esta caixa estiver marcada, será feito o ajuste da função. Caso contrário, os valores dos parâmetros são substituídos na fórmula e a expressão é desenhada com estes valores, sem nenhuma tentativa de ajustar aos dados. Há também uma caixa de marcação Resíduos (apenas para gráficos), que desenha os resíduos dos dados em relação à fórmula (ajustada ou não). Para mais detalhes sobre como resíduos são desenhados, veja abaixo.

Há também opções para estabelecer o tipo de linha, espessura e cor que serão utilizadas para desenhar a função.

Opções de Ajuste

Logo abaixo há uma caixa chamada Opções de ajuste. Nesta caixa podemos estabelecer condições específicas para realização do ajuste. Estas opções são:

  • Fixa parâmetros - Em algumas situações temos formulas com vários parâmetros mas gostaríamos de ajustar apenas alguns deles. Neste caso, deve-se entrar a lista (separados por vírgulas) dos números dos parâmetros que ficarão fixos (iguais ao chute inicial) e não serão ajustados. Por exemplo, em uma expressão com 5 parâmetros, dos quais queremos que os parâmetros 1 e 4 sejam fixos, colocamos nesta caixa 1,4.
  • Limites de ajuste - Por padrão, os limites inferior e superior nos dados, no eixo-x, que serão utilizados para o ajuste são aqueles mostrados na escala visível do gráfico. Caso queiramos que estes limites sejam diferentes, basta entrar os valores mínimo e máximo de x para ser utilizado no ajuste.
  • Modos de ajuste - Seleciona o tipo de tratamento das incertezas. W = 1 significa que todos os pontos têm o mesmo peso estatístico, ou seja, não serão consideradas as incertezas. EX = 0 significa que incertezas no eixo-x não serão consideradas no ajuste. Integral significa que a função será integrada em x no intervalo correspondente à largura do bin do histograma. Esta opção só tem impacto em ajuste de histogramas.
  • Modos de desenho - Seleciona como a função será desenhada. São duas caixas de seleção.
    • a primeira caixa seleciona o tipo de desenho: todo gráfico desenha o ajuste em toda a janela gráfica. Nos limites mostra a função apenas nos limites de ajuste. Pontilhado é uma opção intermediária, onde a função é desenhada de forma "contínua" nos limites do ajuste e "pontilhada" fora destes limites.
    • a segunda caixa estabelece se serão desenhadas linhas que mostrem os limites de 1 sigma de incerteza na função ajustada. O padrão é não mostrar. Pode-se selecionar se estes limites são desenhados considerando-se ou não a covariância entre os parâmetros ajustados.

Opções de resíduos

Resultado de um ajuste de dados

Caso a opção "resíduos" esteja disponível e marcada, aqui você estabelece como mostrar os resíduos. Há três formas de mostrar os resíduos:

  • Somente resíduos - não mostra os dados. Mostra somente os resíduos
  • painel abaixo - desenha os resíduos em um painel abaixo do gráficos com os dados. Utilize a caixa Eixo resíduos para configurar o eixo vertical deste painel.
  • painel acima - o mesmo que o anterior, somente acima do gráfico com os dados.

Pode-se selecionar o tipo de resíduos a ser mostrado, com duas opções:

  • resíduos reduzidos - diferença entre os dados e a função, normalizada pela incerteza nos dados experimentais.
  • resíduos absolutos - diferença entre os dados e a função.

Resultados de um ajuste de função

Após ter realizado um ajuste de função com sucesso, na coluna do lado direito da sua aplicação, além do gráfico, de acordo com o tipo de aplicação, serão mostradas várias informações sobre os parâmetros ajustados. A figura ao lado ilustra como estes resultados são apresentados.

São mostradas as seguintes informações:

  • Número de parâmetros
  • Chi2
  • Número de graus de liberdade
  • Parâmetros ajustados - para cada parâmetro, identificado por um número, é mostrado o valor ajustado (ou, se fixo, o chute inicial) e sua incerteza. Note que este é um valor numérico. Incertezas e valores não são mostrados com o número de algarismos significativos correto, em geral. Se os pontos não possuirem incertezas os erros nos parâmetros são calculados após multiplicar a matriz de covariância por chi2/(NDF-1).
  • Matriz de covariância
  • Matriz de correlação
Personal tools