CB2325NumericaG1.aproximacao package¶
Submodules¶
CB2325NumericaG1.aproximacao.aproximacao_regressao_exp_taylor module¶
- CB2325NumericaG1.aproximacao.aproximacao_regressao_exp_taylor.polinomio_de_taylor(function: Expr, x_symbol: Symbol, point: float, times: int, plot: bool = False) Expr[código-fonte]¶
Calcula, imprime e opcionalmente plota o Polinômio de Taylor para uma dada função em torno de um ponto.
- Parâmetros:
function (sp.Expr) – A expressão simbólica da função que será aproximada.
x_symbol (sp.Symbol) – O símbolo em relação ao qual o polinômio será construído e as derivadas calculadas.
point (float) – O ponto de expansão ‘a’ (o centro) em torno do qual a função será aproximada. IMPORTANTE: Ponto será do eixo x.
times (int) – O número de termos a serem usados na série. O polinômio resultante terá grau ‘times - 1’.
plot (bool, optional) – Se True, gera um gráfico comparando a função original e o polinômio de Taylor. Padrão é False.
- Retorna:
A expressão simbólica do Polinômio de Taylor resultante.
- Tipo de retorno:
sympy.Expr
- Dependencies:
sympy (importada como sp)
math
numpy (importado como np) - Necessário se plot=True.
matplotlib.pyplot (importado como plt) - Necessário se plot=True.
Notas
Esta função utiliza a biblioteca SymPy para realizar a diferenciação simbólica e a construção do polinômio.
Se plot = True, utiliza Numpy e Matplotlib para visualizar a aproximação.
O plot (opcional) mostra a função e a aproximação de Taylor.
- CB2325NumericaG1.aproximacao.aproximacao_regressao_exp_taylor.regressao(dados_x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], dados_y: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grau: int, plot: bool = False) ndarray[código-fonte]¶
Calcula os coeficientes de uma regressão polinomial usando Mínimos Quadrados.
Esta função ajusta um polinômio de grau ‘grau’ (y = … + c_1*x + c_0) aos dados, resolvendo o sistema de mínimos quadrados lineares A * c = y usando ‘np.linalg.lstsq’.
- Parâmetros:
dados_x (npt.ArrayLike) – Vetor contendo os valores da variável independente.
dados_y (npt.ArrayLike) – Vetor contendo os valores da variável dependente.
grau (int) – O grau (d) do polinômio a ser ajustado.
plot (bool, optional) – Se True, exibe o gráfico dos dados e da curva de regressão. Padrão é False.
- Retorna:
Um array numpy contendo os coeficientes do polinômio. IMPORTANTE: Os coeficientes são retornados da menor potência para a maior (ex: [c_0, c_1, …, c_grau]).
- Tipo de retorno:
np.ndarray
- Levanta:
ValueError – Se ‘dados_x’ e ‘dados_y’ tiverem comprimentos diferentes.
np.linalg.LinAlgError – Pode ser levantado por ‘np.linalg.lstsq’ se a matriz for singular ou houver problemas numéricos.
- Dependencies:
numpy (importado como np)
matplotlib.pyplot (importado como plt) - Se plot=True
Notas
A função ‘np.linalg.lstsq’ é uma forma robusta de resolver o problema de mínimos quadrados, geralmente usando decomposição SVD ou QR por baixo dos panos.
A ordem dos coeficientes retornados ([c_0, c_1, …]) é o inverso da ordem usada por ‘np.polyfit’ ([… c_1, c_0]).
- CB2325NumericaG1.aproximacao.aproximacao_regressao_exp_taylor.regressao_logaritmica(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], y: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], plot: bool = False) tuple[float, float][código-fonte]¶
Calcula os coeficientes ‘a’ e ‘b’ de uma regressão logarítmica do tipo (y = a * ln(x) + b) e, opcionalmente, plota a função.
- Parâmetros:
x (npt.ArrayLike) – Vetor contendo os valores da variável independente. IMPORTANTE: Todos os valores de ‘x’ devem ser estritamente positivos (x > 0), pois o logaritmo de valores negativos ou zero não é definido.
y (npt.ArrayLike) – Vetor contendo os valores da variável dependente.
plot (bool, optional) – Se True, exibe o gráfico dos dados e da curva de regressão. Padrão é False.
- Retorna:
Uma tupla contendo (a, b), onde: a (float): Coeficiente ‘a’ que multiplica o termo ln(x). b (float): Coeficiente ‘b’ (intercepto) da linha de regressão.
- Tipo de retorno:
tuple[float, float]
- Levanta:
ValueError –
Herdado da função ‘regressao_linear’: Se ‘x’ e ‘y’ tiverem comprimentos diferentes. - Herdado da função ‘regressao_linear’: Se tiverem menos de 2 pontos de dados. - Se ‘x’ contiver valores menores ou iguais a zero.
RuntimeWarning – Pode ser levantado pelo numpy se ‘x’ contiver valores menores ou iguais a zero, resultando em ‘NaN’ ou ‘-inf’ (embora um ValueError seja levantado primeiro por esta função).
Notas
Este método funciona transformando a variável preditora ‘x’ aplicando o logaritmo natural (ln), e depois utilizando a função ‘regressao_linear’ padrão nos dados transformados (ln(x), y).
O plot (opcional) mostra os pontos de dados e a função aproximadora.
CB2325NumericaG1.aproximacao.aproximacao_trig_linear module¶
- CB2325NumericaG1.aproximacao.aproximacao_trig_linear.ajuste_linear(x: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], y: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], plot: bool = False) tuple[float, float][código-fonte]¶
Calcula o coeficiente angular ‘a’ e o coeficiente linear ‘b’ de uma regressão linear simples (y = ax + b).
- Parâmetros:
x (npt.ArrayLike) – Vetor contendo os valores da variável independente.
y (npt.ArrayLike) – Vetor contendo os valores da variável dependente.
plot (bool, optional) – Se True, exibe o gráfico dos dados e da linha de regressão. Padrão é False. (Este argumento foi inferido da função regressao_logaritmica, mas não estava na sua docstring original da linear).
- Retorna:
Uma tupla contendo (a, b), onde: a (float): Coeficiente angular da linha de regressão. b (float): Coeficiente linear da linha de regressão.
- Tipo de retorno:
tuple[float, float]
- Levanta:
ValueError – Se ‘x’ e ‘y’ tiverem comprimentos diferentes ou se tiverem menos de 2 pontos de dados, o que é insuficiente para a regressão.
- Dependencies:
numpy (importada como np)
matplotlib.pyplot (importada como plt) - Se plot=True
Notas
A regressão é realizada utilizando o Método dos Mínimos Quadrados Ordinários (MQO).
- CB2325NumericaG1.aproximacao.aproximacao_trig_linear.ajuste_trigonometrico(x: List[float], y: List[float], periodo: float, plot: bool = False) Tuple[float, float, float][código-fonte]¶
Calcula o ajuste trigonométrico (Série de Fourier de 1ª ordem) de um conjunto de pontos (x, y) usando o método dos mínimos quadrados. Encontra os coeficientes c0, c1, c2 para a função: y = c0 + c1*cos(omega*x) + c2*sin(omega*x) onde omega = 2*pi / periodo.
- Parâmetros :
x : Lista ou array de valores para o eixo x. y : Lista ou array de valores para o eixo y. periodo (T) : O período fundamental estimado dos dados. Estimar
corretamente é crucial para um bom ajuste.
plot : Se True, plota o gráfico.
- Retorna :
Uma tupla (c0, c1, c2) contendo os coeficientes do ajuste. (c0 = offset, c1 = amplitude do cosseno, c2 = amplitude do seno)