1
Numpy와 함께 파이썬을 사용하여 유한 차분 법을 사용하여 기본 방정식을 풀려고합니다. 이 코드는 나에게 올바른 첫 번째 값을 준다. 즉, 나에게 [1]을 준다; 그러나, 그 이후의 모든 다른 값은 단지 0입니까? 첫 번째 값에 대해 분명히 작동하기 때문에 내가 뭘 잘못하고 있는지 모르겠다. 어떻게 수정해야합니까? 아이디어가 도움이 될 것입니다.파이썬의 유한 차분 사용
from numpy import *
import numpy as np
import matplotlib.pyplot as plt
import scipy as sp
from scipy.integrate import odeint
def solver(omega_m, dt):
#t_0, H_0, a_0, dt, n, T; always the same; omega's change
t_0 = 0.0004
a_0 = 0.001
H_0 = 1./13.7
T = 13.7
dt = float(dt)
n = int(round((T - t_0)/dt))
x = zeros(n+1)
t = linspace(t_0, T, n+1)
x[0] = a_0
for i in range (0, n):
x[i+1] = x[i] + (H_0 * ((omega_m)**(1./2.)) * ((x[i])**(-1./2.)) * dt)
return x, t
a, t = solver(omega_m =1, dt=0.001)
print a, t
정말로 고맙게 생각합니다. 그러나 그것은 큰 도움이되었습니다. 지금 당장해야합니다. – rcss92
@ rcss92 도와 주면 답변을 수락 할 수 있습니다 –
지금 완료하십시오. 죄송합니다 어떻게 해야할지 몰랐다. – rcss92