2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.



Начать новую тему Ответить на тему
 
 Потоковый вариант метода прогонки
Сообщение09.08.2012, 17:21 


08/08/12
10
Привет всем!
Решаю одномерное уравнение теплопроводности по неявной схеме методом прогонки, но из-за того, что коэффициент теплопроводности сильно изменяется (от 0,1 до 70) - возникают ошибки во время расчета. У Самарского прочитал, что есть специальный метод потоковой прогонки, который позволяет решать задачи с сильно меняющимся коэффициентом (Самарский Теория Разностных Схем, Дополнение 2 стр. 637). Однако не очень понятно, как переделать существующий метод, чтобы получить метод потоковой прогонки. Вот реализация обычного метода прогонки:
Код:
function MP(A: Matr2; b: Matr1; nodes:integer): Matr1;      //Matr2 - матрица, Matr1 - вектор
    var i, n: integer;
        f, g: Matr1;
    begin
        n:=nodes-2;//Length(A);
        SetLength(f, n-1);
        SetLength(g, n-1);
        for i:=0 to n-1 do
                b[i]:=-1*b[i];
        f[0]:=-A[0,1]/A[0,0];
        g[0]:=-b[0]/A[0,0];
        for i:=1 to n-2 do
           begin
              f[i]:=-A[i,i+1]/(A[i,i]+A[i,i-1]*f[i-1]);
              g[i]:=-(b[i]+A[i,i-1]*g[i-1])/(A[i,i]+A[i,i-1]*f[i-1]);
           end;
        SetLength(result, n);
        result[n-1]:=-(b[n-1]+A[n-1,n-2]*g[n-2])/(A[n-1,n-1]+A[n-1,n-2]*f[n-2]);
        for i:=n-2 downto 0 do result[i]:=f[i]*result[i+1]+g[i];
end;

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group