Добавление условия остановки в метод Якоби - PullRequest
0 голосов
/ 13 сентября 2018

Что я хотел бы сделать, это добавить условие остановки в свою программу Jacobi.Это условие остановки просматривает предыдущее значение итерации и сравнивает его с текущим значением.Если значения матрицы сходятся, то итерация прерывается.Если нет, то это продолжается.

Итак, давайте установим порог, скажем, 0,00001.Как определить, сходятся ли значения, тем самым нарушая цикл?

Я предполагаю, что если current / m [v, v] <= 0,00001, то я нарушу цикл ... </p>

def jacobi(m,numiter=100,e=0.00001):

    # Number of rows determins the number of variables
    numvars = m.shape[0]

    # construct array for final iterations
    history = np.zeros((numvars,numiter))
    i = 1
    while(i < numiter): #Loop for numiter

        for v in range(numvars): # Loop over all variables
            current = m[v,numvars] # Start with left hand side
            for col in range(numvars): #Loop over columns
                if v != col: # Don't count colume for current variable
                    current = current - (m[v,col]*history[col, i-1]) 
            current = current/m[v,v] #divide by current variable coefficent

            history[v,i] = current #Add this answer to the rest
        i = i + 1 #iterate

    #plot each variable
    for v in range(numvars):
        plt.plot(history[v,: i]);
    return history[:,i-1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...