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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 19:21   #1
cbuilderx
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 18
Вопрос Шляпа,поставившая меня в тупик...

Господа программисты,вот такая шляпа у меня:решить систему линейных уравнений методом простых итераций + методом Зейделя...НО!т.к. преподаватель придумал математичекий трюк в виде - решить данную систему,задействовав Спектральные радиусы[Максимальная строковая сумма среди всех строк матрицы коэффицентов при неизвестных]...
Первый Спектральный радиус - просто Максимальная строковая сумма среди всех строк матрицы коэффицентов при неизвестных
Второй спектральный радиус высчитывается на основе матрицы {D = (I-L)^(-1)*U}, где L и U: нижнетреугольная и верхнетреугольная матрицы соотвественно.Для этой цели я использовал функцию декомпозиции Гаусса.
Так вот,эти два алгоритма реализовал...Но при выводе в
Код:
LabeledEdit2.Text:='R(D)=' + FloatToStr(MaxStr2);
у меня ОШИБКА...Пошаговая отладка привела меня к тому,что по какой-то непонятной причине в процедуре
Код:
procedure MaxString1(x:MyArray; var y:omyarray);
после того как была найдена Максимальная сумма всё смывается в унитаз...После долгих размышлений решил попросить вашей помощи и советов,что не так?
Файл проекта + листовки с математической белибердой прилагаются...
Вложения
Тип файла: rar Операторные уравнения_2.rar (251.0 Кб, 8 просмотров)
Дорога возникает только под шагами идущего...
cbuilderx вне форума Ответить с цитированием
Старый 15.05.2012, 21:47   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Не смотрел исходники, но думаю, что дело в этом - переменная, в которую записываешь сумму, должна быть глобальной. Процедуры и функции основаны так, что после того, как отработали, они "смывают в унитаз" все локальные переменные.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 16.05.2012, 02:31   #3
cbuilderx
Пользователь
 
Регистрация: 12.03.2010
Сообщений: 18
Восклицание

Цитата:
Сообщение от Rin Посмотреть сообщение
Не смотрел исходники, но думаю, что дело в этом - переменная, в которую записываешь сумму, должна быть глобальной. Процедуры и функции основаны так, что после того, как отработали, они "смывают в унитаз" все локальные переменные.
Сделал,но ошибка возникает только с матрицей D[i,j],подставив любые другие,всё прекрасно работает...
Дорога возникает только под шагами идущего...
cbuilderx вне форума Ответить с цитированием
Старый 16.05.2012, 07:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Шляпа в том что ты используя динмассивы не позаботился о проверке выхода цикла за их пределы.
Замени все
Цитата:
for i:=0 to n-1 do
и подобные, где идет работа с массивом на
Код:
 for i:=Low(переменка массива) to High(переменка массива) do
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тупик в обучении Jop Помощь студентам 5 26.10.2010 22:54
Зашол в тупик( TMaskEdit Ti_pain) Помощь студентам 3 04.11.2009 13:52
Сетевой_диск- тупик! KEV Win Api 5 13.02.2009 15:56