예제 #1
0
def pontoFixo(d):
    título("Ponto Fixo", '=')

    # Definição das Variaveis Inicias
    # Precisão
    pDec = d.dec
    mm.mp.dps = pDec
    mm.mp.trap_complex = True
    xkAtual = mm.mpf('0.0')
    xkProx = mm.mpf(d.a)
    e = mm.mpf(d.e)
    k = 0
    kmax = (int(d.kmax) - 1)
    # Tratamento das Strings de Funções
    sf = tSf(d.sf)
    spf = tSf(d.spf)
    # Matriz com dos resultados
    resultados = [[]]

    # Calculos
    s = metodo(xkAtual, xkProx, e, k, kmax, sf, spf, resultados, pDec)
    tabelaResultados = pd.DataFrame(resultados, columns=["xk", "f(xk)", "e"])
    print(tabelaResultados)
    print("\n")
    print(s)
    return s
def posiçãoFalsa(d):
    título("Posição Falsa", '=')

    # Definição das Variaveis Inicias
    # Precisão
    pDec = d.dec
    mm.mp.dps = pDec
    mm.mp.trap_complex = True
    a = mm.mpf(d.a)
    b = mm.mpf(d.b)
    e = mm.mpf(d.e)
    k = 0
    kmax = (int(d.kmax) - 1)
    # Tratamento das Strings de Funções
    sf = tSf(d.sf)
    # Matriz com dos resultados
    resultados = [[]]

    # Calculos
    s = metodo(a, b, e, k, kmax, sf, resultados, pDec)
    tabelaResultados = pd.DataFrame(
        resultados, columns=["A", "xk", "B", "e", "f(a)", "f(xk)", "f(b)"])
    print(tabelaResultados)
    print("\n")
    print(s)
    return s
예제 #3
0
def Simpson13(dIN):
    # Definir Dados
    # Precisão
    pDec = dIN.pDec
    mm.mp.dps = pDec
    # Tratamento das String de Função
    sf = tSf(dIN.sf)
    sdf = tSf(dIN.sdf)
    # Dados de Análise
    a = mm.mpf(dIN.a)
    b = mm.mpf(dIN.b)
    m = int(dIN.m)
    if (dIN.c == ""):
        c = mm.mpf((b + a) / 2)
    else:
        c = mm.mpf(dIN.c)
    h = mm.mpf((b - a) / m)

    # Cálculo da Integral
    I = mm.mpf('0')
    for i in range(m):
        xi = mm.mpf(a + (i * h))
        if (i == 0 or i == m):
            I += mm.mpf(f((xi), sf, pDec))
        elif (i % 2 == 1):
            I += mm.mpf(4 * f((xi), sf, pDec))
        else:
            I += mm.mpf(2 * f((xi), sf, pDec))
    I = mm.mpf((h / 3) * I)

    E = mm.mpf('0')
    # Calculo do Erro
    if (dIN.vc == 1):
        E = mm.mpf((mm.power(h, 5) / 90) * f(c, sdf, pDec))

    # Gerar e Retornar Resposta
    resp = ""
    if (dIN.vc == 1):
        resp += ("1/3 de Simpson\n\nI = " + str(I) + " ± " + str(E))
        resp += ("\n\nI+E = " + str(mm.mpf(I + E)))
        resp += ("\nI-E = " + str(mm.mpf(I - E)))
    else:
        resp += ("1/3 de Simpson\n\nI = " + str(I))
    return resp
def gerarGráficoZDF(d):
    título("Gráfico da Função", '=')
    sf = tSf(d.sf)
    delta = 0.001
    x = np.arange(float(d.a), float(d.b), delta)
    y = np.vectorize(f)
    dy = np.vectorize(f)
    if d.sdf != "":
        sdf = tSf(d.sdf)
        pp.title("Gráfico da Função e Derivada")
        pp.xlabel("X")
        pp.ylabel("f(X) & f'(X)")
        pp.plot(x, x - x, 'k', x, y(x, sf), 'k', x, dy(x, sdf), 'r')
    else:
        pp.title("Gráfico da Função")
        pp.xlabel("X")
        pp.ylabel("f(X)")
        pp.plot(x, x - x, 'k', x, y(x, sf), 'k')
    pp.show()
def gerarGráficoIN(d):
    título("Gráfico da Função", '=')
    pp.title("Gráfico Função e Integração Numérica")
    pp.xlabel("X")
    pp.ylabel("f(X)")
    # Definir Dados
    sf = tSf(d.sf)
    delta = 1e-3
    x = np.arange(float(d.a), float(d.b), delta)
    y = np.vectorize(f)
    # Gerar Gráfico da Função
    pp.plot(x, x - x, 'k', linewidth=3)
    pp.plot(x, y(x, sf), 'k', linewidth=2)
    # Gerar Integração Numérica
    n = int(d.m) + 1
    x = np.linspace(float(d.a), float(d.b), n)
    pp.plot(x, y(x, sf), 'r', x, y(x, sf), 'o')

    pp.show()
예제 #6
0
def secanteADF(xkA,xkP,sf,prec):
	título("Secante", '=')

	# Definição das Variaveis Inicias
		# Precisão
	mm.mp.dps = prec
	mm.mp.trap_complex = True
	xkAnterior = mm.mpf('0.0')
	xkAtual = mm.mpf(xkA)
	xkProx = mm.mpf(xkP)
	e = mm.mpf(10**(3-prec))
	k = 0
		# Tratamento das Strings de Funções
	sf = tSf(sf)
		# Matriz com dos resultados
	resultados = [[]]

	# Calculos
	s = metodo(xkAnterior,xkAtual,xkProx,e,k,sf,resultados,prec)
	tabelaResultados = pd.DataFrame(resultados,columns=["xk","f(xk)","e"])
	print(tabelaResultados)
	return s