LU разложение. |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
LU разложение. |
Krjuger |
1.11.2011 17:52
Сообщение
#1
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Собственно есть задача, полную ее суть писать не стану,но проблема заключается в следующем нужно с помощью LU разложения решить систему.Рабочий код на С++ у меня был и я его попытался перенести на Delphi.Но к несчастью моя затея обернулась неудачей.
Непонятна причина такого поведения,ведь на С++ все это работало.Если надо могу добавить файл целиком. |
IUnknown |
1.11.2011 18:00
Сообщение
#2
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Добавь лучше С++-ную реализацию. Посмотрим, что сделано не так, почему не работает...
|
Krjuger |
1.11.2011 18:15
Сообщение
#3
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Вот С++,так как оно мне требовалось, чтобы посчитать стопочку типовых расчетов,особого энтузиазма в оформлении нет.
Так как типовые были сдаты, и пара вариантов были посчитаны руками и результаты были одинаковыми,поэтому я счел,что он работает верно. Да и забыл упомянуть для текущей задачи мне требуеться,чтобы оно считалось для максимальных размерностей 101х100.А то у меня уже был случай,когда Гаусс верно считал для любой матрицы меньше 20,а для больших переставал работать,пришлось полностью пересмотреть концепцию))) Сообщение отредактировано: Krjuger - 1.11.2011 18:18 |
IUnknown |
1.11.2011 18:55
Сообщение
#4
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
У тебя как минимум в двух местах неправильно сделан перенос с С++... Оба - циклы по K. И там и там надо ходить до (i - 1), а не до i... Тестировал программу на той же матрице, что и Сишный вариант?
P.S. Матрицы вот такие должны получаться (это результат работы твоего чуть-чуть подпиленного дельфийского кода): L-matrix: ? Да, кстати, у тебя там балаган с возвращаемыми значениями, ты под Res память-то не выделил. Да и как собрался возвращать и L- и U-матрицы? Проще передать через параметры... Сообщение отредактировано: IUnknown - 1.11.2011 19:20 |
Krjuger |
1.11.2011 19:21
Сообщение
#5
|
Профи Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: 20 |
Нет не тестировал,я смысла не вижу,если оно даже не отрабатывает до конца,то говорить правильности решения пока рано.
Цитата У тебя как минимум в двух местах неправильно сделан перенос с С++... Оба - циклы по K. И там и там надо ходить до (i - 1), а не до i... К несчастью так нельзя,когда мы самый первый раз заходим в цикл по i у нас i=0, и i-1 в цикле по K мне даст большую беду,в Сях то такой цикл просто проскочился бы не отробатывая,а тут так не катит((( Цитата Да, кстати, у тебя там балаган с возвращаемыми значениями, ты под Res память-то не выделил. Да и как собрался возвращать и L- и U-матрицы? Проще передать через параметры... Мне не нужно возвращать эти матрицы,мне нужно вернуть вектор, который состоит из элементов диагонали матрици U это и будут решения системы,такой уж метод. Цитата Матрицы вот такие должны получаться (это результат работы твоего чуть-чуть подпиленного дельфийского кода): В Сях то он таким и получаеться. Сообщение отредактировано: Krjuger - 1.11.2011 19:26 |
IUnknown |
1.11.2011 19:25
Сообщение
#6
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата К несчастью так нельзя,когда мы самый первый раз заходим в цикл по i у нас i=0, и i-1 в цикле по K мне даст большую беду Бла-бла-бла... Кроме Word-а в Дельфи есть еще и Integer, который способен принимать отрицательные значения. Чуешь, откуда ошибка?В общем, вот, прогнал на FPC твой дельфийский код, ничего не вылетает, печатает то, что приведено выше: typeДельфи запускать лень Сообщение отредактировано: IUnknown - 1.11.2011 19:26 |
-Татьяна- |
14.06.2012 0:59
Сообщение
#7
|
Гость |
Собственно есть задача, полную ее суть писать не стану,но проблема заключается в следующем нужно с помощью LU разложения решить систему.Рабочий код на С++ у меня был и я его попытался перенести на Delphi.Но к несчастью моя затея обернулась неудачей.
Непонятна причина такого поведения,ведь на С++ все это работало.Если надо могу добавить файл целиком. А ВЫ не могли бы сбросить вашу задачу пожалуйста, она мне очень нужна...(lovetanya.15@mail.ru) Спасибо |
Текстовая версия | 5.11.2024 20:50 |