Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2011, 02:51   #1
Spyke
 
Регистрация: 14.04.2011
Сообщений: 5
Сообщение Решение систем линейных уравнений численными методами.

Система уравнений:

8*x1 + 5*x2 + 2*x3 =21
6*x1 + 8*x2 + 2*x3 =18
2*x1 + 3*x2 + 6*x3 =11

Требуется решить методами Якоби и Гаусса-Зейделя (или хотя бы минимум одним из этих методов)
Spyke вне форума Ответить с цитированием
Старый 29.09.2011, 03:49   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Spyke Посмотреть сообщение
Требуется решить методами Якоби и Гаусса-Зейделя (или хотя бы минимум одним из этих методов)
И как оно?.. получается?
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 29.09.2011, 19:32   #3
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

ответы чё-то получаются не очень красивые.
X3 = 41/45
X2 = 323/765
X1 = 2.133333
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 29.09.2011 в 19:44.
NetSpace вне форума Ответить с цитированием
Старый 29.09.2011, 23:56   #4
Spyke
 
Регистрация: 14.04.2011
Сообщений: 5
По умолчанию

Текст программы бы
Spyke вне форума Ответить с цитированием
Старый 30.09.2011, 14:18   #5
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

метод Якоби . источник http://ru.wikipedia.org/wiki/Метод_Якоби , тупо перевёл код
Код:
type
 TFloatArray = array of Double;
 TMatrix = array of TFloatArray;

function Jacobi (A : TMatrix; var F : TFloatArray): TFloatArray;
var TempX  : TFloatArray ;
    norm   : double;
    i,h,N  : integer;
// N - размерность матрицы; A[N][N] - матрица коэффициентов,
// F[N] - столбец свободных членов,
// result[N] - начальное приближение, ответ записывается также в X[N];
begin
 N := lenGth(A);
 if (N=0) or ((N>0) and (N<>LenGth(A[0]))) or (LenGth(F)<>N) then exit;

 SetLenGth(result,N);
 SetLenGth(TempX,N);
// норма, определяемая как наибольшая разность компонент столбца иксов соседних итераций.
 repeat
    for i := 0 to N-1 do
    begin
     TempX[i] := -F[i];
     for h := 0 to N-1 do
     if (i <> h) then TempX[i] := TempX[i]+A[i][h] * result[h];
     TempX[i] := TempX[i]/-A[i][i];
    end;
    norm := abs(result[0] - TempX[0]);
    for h := 0 to N-1 do
    begin
      if (abs(X[h] - TempX[h]) > norm) then
      norm := abs(result[h] - TempX[h]);
      result[h] := TempX[h];
    end;
   until norm <= 1E-6;
   Finalize(TempX);
end;
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 30.09.2011 в 19:02.
JUDAS вне форума Ответить с цитированием
Старый 30.09.2011, 19:24   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

мда... я этот код дольше набирать буду и подгонять под себя, чем решать систему уравнений через матрицы...
А методом Гаусса не проще будет код? у кого есть?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 02.10.2011, 12:56   #7
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
я этот код дольше набирать буду и подгонять под себя
скопироовать с форума не получается?
Цитата:
А методом Гаусса не проще будет код?
Так дело в том, что метод Гаусса открыт в Паскале http://ru.wikipedia.org/wiki/Метод_Гаусса_—_Зейделя . Тяжело что-ли, пройти по ссылке в википедии и скопировать?
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 02.10.2011, 17:46   #8
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

я вот в этих трёх строчках
Код:
type
 TFloatArray = array of Double;
 TMatrix = array of TFloatArray;
function Jacobi (A : TMatrix; var F : TFloatArray): TFloatArray;
дольше разбираться буду. как их использовать, а как коэффициенты из уравнений вводить? и самое главное - как ответ выводить?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Холесского (Краута) для решения систем линейных уравнений (скрин с алгоритмом вложен)) Bogdand Помощь студентам 0 24.06.2011 07:54
Решение системы линейных уравнений Taekwondo Помощь студентам 1 15.05.2011 12:46
РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ МЕТОДОМ ГАУССА Unkind03 Паскаль, Turbo Pascal, PascalABC.NET 0 01.12.2010 17:10
Курсовой проект на тему решение систем линейных уравнений методом посл.итераций Ericnex Помощь студентам 1 11.05.2010 15:58
Решение систем линейных уравнений. SadmeN Помощь студентам 5 08.06.2009 23:36