Ir para conteúdo
Fórum Script Brasil

rmslobato

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que rmslobato postou

  1. Olá. Eu estudei programação em C na faculdade. Nesse semestre preciso fazer um programa para resolver alguns casos de simples equações diferenciais. Resolvi fazer em python, por sugestão de um amigo, já que precisaria fazer gráficos com as soluções numéricas das equações e ele comentou que havia feito algo semelhante de maneira muito simples com o python. Aceitei a dica aproveitando para estudar outra linguagem de programação. O Código abaixo é basicamente o programa inteiro. Simplifiquei o código comentando algumas linhas para não precisar prostar na integra o programa. O problema: Importando o programa e chamando a função 'teste1(0)' uma janela é aberta com o gráfico gerado pelos pontos das sequencias t e y sem nenhum problema. Como não descobri uma maneira de abrir exibir mais de um gráfico simultaneamente (abrindo-os em outras janelas), resolvi fazer um menu - um laço infinito (terminando com opcao sair) - e então de acordo com a opção, iria ser exibido o gráfico correspondente. No entanto, quando é escolhido uma opção e o gráfico é exibido, ocorre um erro. Se você clica na janela do gráfico, ela fica branca e é encerrada pelo sistema operacional, contudo, o laço roda normalmente no programa, pedindo nova opção. Isso me parece um erro de sobrecarga de memório. Mas eu não entendo, porque a funcao teste1(0) é chamada uma vez só. Então acredito que o erro esteja relacionado com o plot() e o laço. Porém, não sei como manter o menu, e tirar o erro quanto a exibição dos gráficos. Obs.: Estou usando o PyLab(IPython) para windows. #------------------------------------------------------ from pylab import plot, close #------------------------------------------------------ def euler(a, h, n): if n == 1: f = open("tabela.txt", "a") f.write("\n-- Metodo de Euler --\n") y = [] t = [] yk = 1.0 tk = 0.0 t_max = 2.0 yk1 = yk tk1 = tk while tk1 < t_max: y.append(yk1) t.append(tk1) if n == 1: f.write("%.3s %.6s\n" % (tk1, yk1)) yk1 = yk + h*a*yk yk = yk1 tk1 = tk1 + h if n == 0: plot(t, y, color='green') if n == 1: f.close() #------------------------------------------------------ def teste1(n): if n == 1: f = open("tabela.txt", "a") f.write("TESTE 1: y'= -3y, h = 0.1\n") f.close() #exata(-3, 0.1, n) euler(-3, 0.1, n) #eulermod(-3, 0.1, n) #rk4(-3, 0.1, n) #------------------------------------------------------ def menu(): texte_menu = """ 1 - teste 1 2 - ... . . . 6 - sair """ texto_grafico = """ bla bla """ while 1: print texto_menu print("Opcao:") op = raw_input() opcao = int(op) if opcao == 1: close(1) print("Opcao escolhida: 1\n") print texto_grafico teste1(0) elif opcao == 2: # codigos... elif opcao == 6: close(1) break else: print("Opcao invalida.\n") #------------------------------------------------------
×
×
  • Criar Novo...