Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Фортран   Найти похожие ветки 

 
KSergey ©   (2004-12-27 08:23) [40]

> [39] WondeRu ©   (27.12.04 07:46)
> я бы не доверил фортрану управление системой безопасностью!

Религия. Не более ;)


 
WondeRu ©   (2004-12-27 09:11) [41]

KSergey ©   (27.12.04 8:23) [40]
Религия. Не более ;)

скорее профессиональный консерватизм: что работает замечательно (написанное на делфи), не стоит дополнять чем-то не изученным (для меня фортран)! )))


 
КаПиБаРа ©   (2004-12-27 09:14) [42]

KSergey ©   (27.12.04 8:23) [40]

А с базами он как работает?


 
NewDelpher ©   (2004-12-27 09:18) [43]

Ну я писал на Фортране до недавнего времени. На моей старой работе (КБ) к нему было очень уважительное отношение, поскольку для баллистических расчетов Фортран очень хорошо подходит.


 
KSergey ©   (2004-12-27 09:24) [44]

> [42] КаПиБаРа ©   (27.12.04 09:14)
> А с базами он как работает?

Ага, на базах свет клином сошелся ;)
Ну судя по тому, что WinAPI доступно - то, как минимум,  c ODBC поработать можно.
Но не пробовал ни разу, признаться...


 
КаПиБаРа ©   (2004-12-27 09:31) [45]

KSergey ©   (27.12.04 9:24) [44]
А откуда брать данные для расчетов то?


 
KSergey ©   (2004-12-27 09:33) [46]

> [45] КаПиБаРа ©   (27.12.04 09:31)
> А откуда брать данные для расчетов то?

А) забить в программу (если разчет неделю, т.е. изменение данных раз в неделю - то почему бы и нет?)
Б) текстовые файлы
В) да много что придумать можно ;)


 
КаПиБаРа ©   (2004-12-27 09:35) [47]

Кстати когда я писал диплом (на фортране). Там был расчет диф ур методом Рунге-Кутта 4-го порядка. Для интереса реализовал часть алгоритма на Ц. Фортран по производительности отставал процентов на 30.


 
NewDelpher ©   (2004-12-27 10:05) [48]

Я видел серьезные вещи, написанные на Фортране. С анимацией, графиками, оконным интерфейсом (текстовым, конечно). Да и QBasic там очень любили. А вот Pascal - нет: "Все эти begin-ы, end-ы - запутаешься", "Дельфи - язык домохозяек". Ругался я с ними постоянно на эту тему.


 
KSergey ©   (2004-12-27 10:07) [49]

> [47] КаПиБаРа ©   (27.12.04 09:35)
> Фортран по производительности отставал
> процентов на 30.

Может дело в реализаторе? ;)
Вообще, мне по литературе попадались другие данные, хотя, конечно, тут смотреть надо что именно и как.

Все же на мой взгляд, мощь фортрана - в комплексных числах. Более ни в чем, пожалуй.

Все эти наработанные библиотеки, о которых так много говорят, мне не посчастливилось разыскать.. Видимо плохо искал...


 
КаПиБаРа ©   (2004-12-27 10:41) [50]

KSergey ©   (27.12.04 10:07) [49]
Все же на мой взгляд, мощь фортрана - в комплексных числах. Более ни в чем, пожалуй

Согласен.


 
nikkie_   (2004-12-27 17:05) [51]

>KSergey
>Все эти наработанные библиотеки, о которых так много говорят, мне не посчастливилось разыскать.. Видимо плохо искал...

ты же сам про Visual Fortran написал... почему же ты заметил в нем программки на WinAPI и не заметил IMSL?

или вот http://www.jinr.ru/programs/
странно, что Ega23 не высказывается по теме...

> Aldor_
Большинство задач численных методов сводится к решению систем линейных алгебраических уравнений (метод Гаусса, различных прогонок).

вроде бы производишь впечатление подготовленного человека. тогда должен знать, что методом Гаусса системы линейных уравнений решают только студенты.

>Жук
Не надо путать математику и физику

и что же тогда такое математика? боюсь, для большинства задач чистой математики и Pascal, и Fortran одинаково бестолковы.

AlterEgo of WondeRu
я все же все нужные мне функции матиматики сам реализую на делфи + асм!

сие говорит только о том, что много математики у тебя и нет. ничего страшного, большинство программистов вообще без нее обходятся.


 
WondeRu ©   (2004-12-27 17:17) [52]

nikkie_   (27.12.04 17:05) [51]
сие говорит только о том, что много математики у тебя и нет

давайте не будем... а? Вы даже не представляете с чем я сталкиваюсь, не делайте скоропалительных выводов... Эт ТИПА добрый совет!


 
KSergey ©   (2004-12-27 17:23) [53]

> [51] nikkie_   (27.12.04 17:05)
> ты же сам про Visual Fortran написал... почему же ты заметил
> в нем программки на WinAPI и не заметил IMSL?

Чета было на моем диске.. Но ввиду его ворованности и лени читать кипу доки (к стати, не помню - была ли она? мож и не было)  - не пользую...


 
Aldor_   (2004-12-27 18:42) [54]


KSergey ©   (26.12.04 15:31) [36]

мне было бы любопытно посмотреть на "невеликие" затраты в реализации на
паскале пяти листов формул, где все (..мм... как это в математике? ну x, y,

z? пусть будут переменые, ага?) переменные - комплексные числа ;)


Хорошо, давайте мерить затраты во времени и деньгах. Труд по "вбиванию" формул - это низкоквалифицированный труд (причем неважно, комлексное сложение пишется как a+b или Summ(a, b)). Поэтому на этот труд можно посадить аккуратного студента или школьника за минимальную плату, или даже за зачет. Далее про затраты см. ниже.


ghg ©   (26.12.04 14:35) [27]

и вообще что-либо похожее на фортрановскую библиотеку IMSL?


 Поискал, нашел. Вот что предлагает библиотека IMSL:
# Linear systems
# Eigensystem analysis
# Interpolation and approximation
# Integration and differentiation
# Differential equations
# Transforms
# Nonlinear equations
# Optimization
# Matrix/vector operations
# Special Functions

 Почти все это написано на Паскале много раз. Не могу сказать только про "Eigensystem analysis", не знаю что это такое.
Если хотите, многое из этого могу выслать Вам по почте в виде *.pas файлов.

 Как видите, "что-либо" похожее на IMSL на паскале есть во множестве вариантов и бесплатно. А вот цены на лиценизию IMSL в разных вариациях колеблются в вилке $525 - $6599. Уверен, труд бедных студентов по набиванию формул стоит гораздо меньше.
 
 Кстати, здесь же нашел IMSL C Library, IMSL C# Library :)))


nikkie_   (27.12.04 17:05) [51]

вроде бы производишь впечатление подготовленного человека. тогда должен знать, что методом Гаусса системы линейных уравнений решают только студенты


 Хм, даже не знаю, что Вам ответить. Ну во-первых, метод прогонки (и все ее варианты) есть частный случай метода Гаусса. Во-вторых не все СЛАУ сводятся к трехдиагональным или пятидиагональным (n-точечных прогонок я пока не встречал), ну и к тому же я студент :))


 
Aldor_   (2004-12-27 18:47) [55]

Извиняюсь за глюки с форматированием.


 
nikkie_   (2004-12-27 20:01) [56]

WondeRu
давайте не будем... а? Вы даже не представляете с чем я сталкиваюсь, не делайте скоропалительных выводов... Эт ТИПА добрый совет!

внимательно слушаю, c чем ты сталкиваешься и какие численные методы ты реализуешь на ассемблере.

Aldor_
Почти все это написано на Паскале много раз. <...> Если хотите, многое из этого могу выслать Вам по почте в виде *.pas файлов

у меня подозрение, что ты готов прислать реализацию метода Гаусса и метода прогонки. боюсь, это мало кого заинтересует. или готов предъявить список методов, реализованных на Паскале?

Не могу сказать только про "Eigensystem analysis", не знаю что это такое.
eigenvalues - собственные значения, eigenvectors - собственные вектора. описание аналогичной части библиотеки "Дубна" см. здесь:
http://www.jinr.ru/programs/jinrlib/f220.htm
какие из этих алгоритмов у тебя реализованы на паскале?

описание QR-алгоритма есть в книжках по численным методам. желающие могут найти его описание и написать программу (ничего нереального - это стандартное задание лабораторной по вычметодам). после этого может быть пропадет желание делать заявления про формулы, которые "могут студенты набить".

Уверен, труд бедных студентов по набиванию формул стоит гораздо меньше.
вопрос номер 1 - для решения одной и той же задачи существуют разные методы. в разных частных случаях разные методы ведут себя по-разному в вопросах точности, скорости, сходимости. кто будет определять, какой метод надо использовать? вопрос номер 2 - а кто эти формулы напишет на листочке бумаги? вопрос номер 3 - а отлаживать это будет тот же студент?

Ну во-первых, метод прогонки (и все ее варианты) есть частный случай метода Гаусса.
можно поподробнее? каким это образом метод прогонки соотносится с методом Гаусса? также складывается ощущение, что про итерационные методы ты не слыхал.

господа, если такие библиотеки существуют и специалисты используют именно их, а не пишут свои собственные реализации всякий раз, то, значит, в этом есть смысл. высказывания типа "методы все простые, я сам их реализую", "студенты набьют формулы" - простое дилетантство.


 
WondeRu ©   (2004-12-28 09:24) [57]

nikkie_   (27.12.04 20:01) [56]
внимательно слушаю, c чем ты сталкиваешься и какие численные методы ты реализуешь на ассемблере.

в основном статистика, да и еще обработка текстур и различные преобразования над векторами в n-мерном пространстве... естественно весь интерфейс делфовый, а математика - ассемблерные вставки... Если вы думаете, что это не математика, то кину в Вас камень ;) Не думаете же что я буду реализовывать подсчет дифуров дробного порядка (кстати, что это?)!


 
ocean   (2004-12-28 09:41) [58]

фильм ужасов: Borland Fortran Builder v 5.0...


 
Юрий Зотов ©   (2004-12-28 10:09) [59]

> Aldor_   (27.12.04 18:42) [54]

1. Серьезное программирование численных методов - это далеко не только вбивание формул. Вбивание - это вряд ли более 1 процента трудозатрат, а вот остальное... это уж точно работа не для студентов.

2. Фортран - язык очень старый и, кроме того, с самого начала позиционировался и использовался именно для расчетов. Благодаря этому за многие годы для него были накоплены такие математические библиотеки, которых нет ни в одном другом языке. Причем писали и отлаживали их далеко не студенты, а профессиональные математики и профессиональные программисты (которые в то время нередко совмещались в одном лице). Некоторые подпрограммы после тщательнейшей поверки принимались в качестве рекомендуемых чуть ли не на государственном уровне.

Достаточно вспомнить хотя бы знаменитые RKF45 и ZEROIN. Существуют их портации на Паскаль и другие языки, но это уже, можно сказать, самоделки, не прошедшие такого объема тестирования, да еще на таком высоком уровне, как оригиналы.


 
Aldor_   (2004-12-28 23:42) [60]

>nikkie_   (27.12.04 20:01) [56]
каким это образом метод прогонки соотносится с методом Гаусса?


 Стандартная прогонка: формулы прямого и обратного ходов получаются в точности из формул прямого и обратного ходов метода Гаусса, примененным к системе с трехдиагональной матрицей
 <uПрогонка Дорра: выводится из стандартной прогонки путем замены одного из прогоночных коэффициентов (назовем его a) на 1-a</code и ввода обозначения S := B - A - C (A, B, C - элементы матрицы системы на одной строке)
 Немонотонная прогонка: метод Гаусса с выбором главного элемента, примененный к системе с трехдиагональной матрицей


также складывается ощущение, что про итерационные методы ты не слыхал.

 Использовать итерационные методы для решения задачи, для которой есть корректные устойчиввые прямые методы??!


... ты готов прислать ... или готов предъявить ... ты не слыхал ...
... какие из этих алгоритмов у тебя реализованы ...

 Почему Вы переходите на личности? Мы не меня обсуждаем, на мне свет клином не сходился. Я пытаюсь показать, то если переход на Фортран только из-за библиотек связан с какими-либо затратами (переделка готового ПО, обучение разработчика), то стоит сравнить эти затраты с затратами на переписывание библиотек на Паскаль и затраты эти не столь уж велики (правда Юрий привел очень серьезный аргумент - в зартраты необходимо еще включить тестирование на задачах, подобных решаемой) . Конечно, случаи индивидуальны и Вы правы, когда говорите, что если такие библиотеки существуют и специалисты используют именно их, а не пишут свои собственные реализации всякий раз, то, значит, в этом есть смысл.

вопрос номер 1 - для решения одной и той же задачи существуют разные методы. в разных частных случаях разные методы ведут себя по-разному в вопросах точности, скорости, сходимости. кто будет определять, какой метод надо использовать?
 Ну уж точно не тот, кто "вбивает формулы". Это безусловно решает математик, тот, для кого разработчик пишет ПО (если разработчик <> математик). Этот вопрос никак не входит в компетенцию реализации алгоритма. И тут же вопросик: библиотеки Фортрана решают этот вопрос?

а кто эти формулы напишет на листочке бумаги? вопрос номер
Алгоритмы описываются в книгах/учебниках/статьях. Вот Вам и "выписанные на листочках формулы". В указанных источниках алогритмы почти никогда не даются на каком-либо конкретном ЯП; либо на псевдокоде, либо блок-схемами, либо на естественном языке. Уверен, что Вы это знаете это не хуже меня. Так зачем такие вопросы задаете? (приношу извинения, если дело в плохом изъяснении в моих постах)

>Юрий Зотов ©   (28.12.04 10:09) [59]

 Понял, слезаю :)
 
 Если серьезно, не могли бы Вы привести пример алгоритма численной математики, сложного в программной реализации, для которой потребовалась бы серьезная квалификация как программиста? В учебниках везде встречаются фразы типа "к решению систем линейных алгебраических уравнений сводится подавляющее большинство задач вычислительной математики", в классических книгах по численной математике я не нашел сколь-нибуль нетривиального в реализации на конкретном ЯП алгоритма. Заранее сэнкс.


 
Aldor_   (2004-12-28 23:44) [61]

>nikkie_   (27.12.04 20:01) [56]
каким это образом метод прогонки соотносится с методом Гаусса?


 Стандартная прогонка: формулы прямого и обратного ходов получаются в точности из формул прямого и обратного ходов метода Гаусса, примененным к системе с трехдиагональной матрицей
 <uПрогонка Дорра: выводится из стандартной прогонки путем замены одного из прогоночных коэффициентов (назовем его a) на 1-a</code и ввода обозначения S := B - A - C (A, B, C - элементы матрицы системы на одной строке)
 Немонотонная прогонка: метод Гаусса с выбором главного элемента, примененный к системе с трехдиагональной матрицей


также складывается ощущение, что про итерационные методы ты не слыхал.

 Использовать итерационные методы для решения задачи, для которой есть корректные устойчиввые прямые методы??!


... ты готов прислать ... или готов предъявить ... ты не слыхал ...
... какие из этих алгоритмов у тебя реализованы ...

 Почему Вы переходите на личности? Мы не меня обсуждаем, на мне свет клином не сходился. Я пытаюсь показать, то если переход на Фортран только из-за библиотек связан с какими-либо затратами (переделка готового ПО, обучение разработчика), то стоит сравнить эти затраты с затратами на переписывание библиотек на Паскаль и затраты эти не столь уж велики (правда Юрий привел очень серьезный аргумент - в зартраты необходимо еще включить тестирование на задачах, подобных решаемой) . Конечно, случаи индивидуальны и Вы правы, когда говорите, что если такие библиотеки существуют и специалисты используют именно их, а не пишут свои собственные реализации всякий раз, то, значит, в этом есть смысл.

вопрос номер 1 - для решения одной и той же задачи существуют разные методы. в разных частных случаях разные методы ведут себя по-разному в вопросах точности, скорости, сходимости. кто будет определять, какой метод надо использовать?
 Ну уж точно не тот, кто "вбивает формулы". Это безусловно решает математик, тот, для кого разработчик пишет ПО (если разработчик <> математик). Этот вопрос никак не входит в компетенцию реализации алгоритма. И тут же вопросик: библиотеки Фортрана решают этот вопрос?

а кто эти формулы напишет на листочке бумаги? вопрос номер
Алгоритмы описываются в книгах/учебниках/статьях. Вот Вам и "выписанные на листочках формулы". В указанных источниках алогритмы почти никогда не даются на каком-либо конкретном ЯП; либо на псевдокоде, либо блок-схемами, либо на естественном языке. Уверен, что Вы это знаете это не хуже меня. Так зачем такие вопросы задаете? (приношу извинения, если дело в плохом изъяснении в моих постах)

>Юрий Зотов ©   (28.12.04 10:09) [59]

 Понял, слезаю :)
 
 Если серьезно, не могли бы Вы привести пример алгоритма численной математики, сложного в программной реализации, для которой потребовалась бы серьезная квалификация как программиста? В учебниках везде встречаются фразы типа "к решению систем линейных алгебраических уравнений сводится подавляющее большинство задач вычислительной математики", в классических книгах по численной математике я не нашел сколь-нибуль нетривиального в реализации на конкретном ЯП алгоритма. Заранее сэнкс.


 
Aldor_   (2004-12-28 23:46) [62]

>nikkie_   (27.12.04 20:01) [56]
каким это образом метод прогонки соотносится с методом Гаусса?


 Стандартная прогонка: формулы прямого и обратного ходов получаются в точности из формул прямого и обратного ходов метода Гаусса, примененным к системе с трехдиагональной матрицей
 <uПрогонка Дорра: выводится из стандартной прогонки путем замены одного из прогоночных коэффициентов (назовем его a) на 1-a и ввода обозначения S := B - A - C (A, B, C - элементы матрицы системы на одной строке)
 Немонотонная прогонка: метод Гаусса с выбором главного элемента, примененный к системе с трехдиагональной матрицей


также складывается ощущение, что про итерационные методы ты не слыхал.

 Использовать итерационные методы для решения задачи, для которой есть корректные устойчиввые методы??!


... ты готов прислать ... или готов предъявить ... ты не слыхал ...
... какие из этих алгоритмов у тебя реализованы ...

 Почему Вы переходите на личности? Мы не меня обсуждаем, на мне свет клином не сходился. Я пытаюсь показать, то если переход на Фортран только из-за библиотек связан с какими-либо затратами (переделка готового ПО, обучение разработчика), то стоит сравнить эти затраты с затратами на переписывание библиотек на Паскаль и затраты эти не столь уж велики (правда Юрий привел очень серьезный аргумент - в зартраты необходимо еще включить тестирование на задачах, подобных решаемой) . Конечно, случаи индивидуальны и Вы правы, когда говорите, что если такие библиотеки существуют и специалисты используют именно их, а не пишут свои собственные реализации всякий раз, то, значит, в этом есть смысл.

вопрос номер 1 - для решения одной и той же задачи существуют разные методы. в разных частных случаях разные методы ведут себя по-разному в вопросах точности, скорости, сходимости. кто будет определять, какой метод надо использовать?
 Ну уж точно не тот, кто "вбивает формулы". Это безусловно решает математик, тот, для кого разработчик пишет ПО (если разработчик <> математик). Этот вопрос никак не входит в компетенцию реализации алгоритма. И тут же вопросик: библиотеки Фортрана решают этот вопрос?

а кто эти формулы напишет на листочке бумаги? вопрос номер
Алгоритмы описываются в книгах/учебниках/статьях. Вот Вам и "выписанные на листочках формулы". В указанных источниках алогритмы почти никогда не даются на каком-либо ЯП, либо на псевдокоде, либо блок-схемами, либо на естественном языке. Уверен, что Вы это знаете это не хуже меня. Так зачем такие вопросы задаете? (приношу извинения, если дело в плохом изъяснении в моих постах)

>Юрий Зотов ©   (28.12.04 10:09) [59]
 Понял, слезаю :)
 
 Если серьезно, не могли бы Вы привести пример алгроитмы численной математики, сложного в программной реализации, для которой потребовалась бы серьезная квалификация как программиста? В учебниках везде встречаются фразы типа "к решению систем линейных алгебраических уравнений сводится подавляющее большинство задач вычислительной математики", в классических книгах по численной математике я не нашел сколь-нибуль нетривиального в реализации на конкретном ЯП алгоритма. Заранее сэнкс.


 
Aldor_   (2004-12-28 23:49) [63]

Ё-мое, что ж я сделал-то.... сорри


 
Aldor_   (2004-12-29 06:11) [64]

Aldor_   (28.12.04 23:46) [62]

 для которой есть корректные устойчиввые прямые методы
 алгроитмы -> алгоритмы


 
iZEN ©   (2004-12-29 07:00) [65]

Ох уж этот Фортран.
Ладно, давайте о хорошем:Источник: JAX Magazine
10.09.2004
Вышел Commons Math 1.0 RC 1
Первый релиз кандидат библиотеки Commons Math 1.0 уже находится готовый для загрузки на своей домашней странице. В список возможностей библиотеки Commons Math, вышедшей под лицензией Apache 2.0, входит работа с линейной алгеброй, генерация случаный данных, работа со статистикой, нахождение корней, интерполяция, гамма- и бета-функции, массивы, факториалы, комплексные числа, распределения, матрицы, решение линейных систем и многое другое.
Эту предварительную версию не желательно использовать в рабочих целях, поскольку она выпущена в целях тестирования и выявления ошибок. Команда разработчиков Commons Math надеется выпустить первую стабильную версию Commons Math 1.0 где-то через две недели, с учетом активного участия в процессе отладки первого релиз-кандидата сообщества пользователей этой библиотеки.

Вот список пакетов включенных в эту библиотеку и краткие комментарии к ним:
   * Analisys: реализует основные процедуры числового анализа, включая поиск корней и интерполяцию функций.
   * Complex: реализует тип комплексных чисел и комплексных трансцендентальных функций.
   * Distribution: реализует основные дискретные и непрерывные распределения.
   * Linear: поддержка линейной алгебры.
   * Random: генераторы случайных чисел и данных.
   * Special: реализация специальных функций типа Гамма и Бета.
   * Stat: поддержка работы со статистикой.
   * Util: основные структуры данных используемые во всех частях библиотеки.

Кроме того библиотека влкючает основные классы-исключения используемые внутри ее самой:
   * ConvergenceException: выбрасывается, когда числовое вычисление не может быть выполнено, потому что числовой результат выходит за пределы возможного значения.
   * FunctionEvaluationException: выбрасывается, когда появляется ошибка определения какой-либо функции. Этот класс поддерживает свойство argument, где хранится входное значение, являющееся причиной неудачного определения значения функции.
   * MathConfigurationException: сигнализирует о проблеме в конфигурации в одном из методов классов-фабрик.
   * MathException: это базовый класс для всех исключений этой библиотеки. Он может поддерживать эмуляцию поведения исключений JDK 1.4, если это необходимо.

Скачать этот релиз можно здесь: http://jakarta.apache.org/~psteitz/commons-math-1.0-RC1/
Домашняя страница проекта: http://jakarta.apache.org/commons/math/

Сейчас доступна версия 1.0 (стабильная).


 
Юрий Зотов ©   (2004-12-29 09:36) [66]

> Aldor_   (28.12.04 23:46) [62]
 
> ...пример...

Вот простейший. Выдуман из головы, но тем не менее, весьма возможный на практике (думаю, с подобной ситуацией сталкивался каждый, кто достаточно много работал с численными методами).

Пусть при решении системы обыкновенных дифф. уравнений производится корректировка шага. А - текущее нормализованное решение, B - уточненное нормализованное решение, С - некая малая поправка (близкая к машинному нулю), E - величина, используемая в итерационном алгоритме вычисления нового шага. Естественно, все переменные имеют тип float.

Один программист записывает формулу "в лоб" - так, как ему написал ее математик: E := A - B + C.

Другой программист учитывает, что значения A и B могут быть очень близки друг к другу и пишет так: E := (A + C) - B. Причем именно ставит еще и вроде бы ненужные скобки - потому что неизвестно, не вздумает ли компилятор что-то тут "оптимизировать" и надо всячески помешать ему это делать.

Очень вероятный результат - первая программа зацикливается (внутри того самого итерационного алгоритма вычисления нового шага), вторая - считает номально.


 
nikkie_   (2005-01-03 23:05) [67]

Извиняюсь, что долго не отвечал - перед Новым Годом не до того было.

>WondeRu
>в основном статистика, да и еще обработка текстур и различные преобразования над векторами в n-мерном пространстве...
Честно говоря, мне это ни о чем не говорит. "Статистика" - вполне может означать, что ты считаешь среднее-арифметическое и дисперсию n чисел. Или все-таки где-то мелькает слово "хи-квадрат"? "Различные преобразования над векторами" - это я теряюсь.. сложение векторов и их скалярное произведение? преобразование с использованием матриц преобразований? Ну что ж, это говорит о том, что ты успешно справляешься с написанием циклов, и даже двойных вложенных циклов :D. "Обработка текстур" - это я даже не знаю, что такое. Впрочем, я догадываюсь (а может ты где-то в другой ветке писал), что наверное твоя тема - распознавание образов. :))


 
nikkie_   (2005-01-03 23:06) [68]

>Aldor_
Во-первых, если нет особых причин обижаться на меня, то я бы предпочел, чтобы ко мне обращались на "ты". Или это "иду на Вы"? :)

>>каким это образом метод прогонки соотносится с методом Гаусса?
>Стандартная прогонка: формулы прямого и обратного ходов получаются в точности из формул прямого и обратного ходов метода Гаусса, примененным к системе с трехдиагональной матрицей

Каюсь, когда учил вычметоды, как-то отождествление прогонки и метода Гаусса прошло мимо моего внимания. И все-таки мне кажется это разные методы, хотя бы основываясь на том, что это разные алгоритмы для разных задач с разными требованиями по памяти/времени. Иначе мы можем скачать, что любая СЛУ решается методом сложения и умножения ее коэффициентов. :)

>Прогонка Дорра
Что это такое?

>Использовать итерационные методы для решения задачи, для которой есть корректные устойчивые прямые методы??!
Да. Почему это вызывает удивление?? Переписал несколько абзацев из учебников (книжки брал с http://217.16.26.42/diskra.php ).

Особое внимание в этой главе мы уделим итерационным методам, так как они широко применяются для решения разностных уравнений математической физики, операторам которых соответствуют ленточные матрицы A высокого порядка.
Самарский "Вычислительные методы" с.96

Есть очень много других прямых методов решения задач линейной алгебры. Рассмотрим формальные характеристики наиболее известных методов.
<...>

Метод отражений требует вдвое большего числа действий, чем метод Гаусса (оперативная память та же).

Метод ортогонализации втрое медленнее метода Гаусса. Им интересовались в надежде на то, что он позволит решать плохо обусловленные системы. Но выяснилось, что при больших n сама ортогонализация приводит к большой потере точности <...> и лучше использовать методы регуляризации.

Калиткин "Численные методы" с.132

Итерационные методы решения линейных систем иногда дополняют, а иногда заменяют прямые методы.

Решая линейную систему общего вида методом исключения, попутно можно проверить, насколько хорошо она обусловлена. <...> (В случае если система плохо обусловлена) зачастую удается уточнить решение, рассматривая <...> как итерационный процесс Ньютона и делая 2-3 итерации.

Калиткин "Численные методы" с.153

Есть важная группа задач, приводящая к линейным системам с сотнями и тысячами неизвестных. Это решение двумерных и трехмерных уравнений в частных производных эллиптического типа при помощи разностных схем. Матрицы таких систем слабо заполнены, но расположение нулевых элементов таково, что метод исключения не может полностью использовать особенности структуры матрицы и приводит к большому объему вычислений. Кроме того, в методе исключения матрицы таких систем не помещаются в оперативной памяти ЭВМ, а обращение к внешней памяти еще более увеличивает время расчета.
Калиткин "Численные методы" с.154

В этой главе было, в частности, приведено большое количество методов решения линейных систем уравнений. Какой же из этих методов все-таки стоит выбрать, решая задачу?

Если порядок системы небольшой и по затратам машинного времени число операций порядка m^3, где m - порядок системы, является приемлимым, то проще всего обратиться к стандартным программам метода отражений (число арифметических действий N~2m^3/3) или метода вращений (число арифметических действий N~4m^3/3, но меньше накопление вычислительной погрешности).
<...>

В случае, когда применение этих методов нецелесообразно, имеет смысл проанализировать возможности применения простейших по своей структуре итерационных методов: простой итерации, Зейделя, сверхрелаксации, наискорейшего спуска. <...> Если применение этих методов требует больших затрат машинного времени, то следует проанализировать возможности применения более сложных по своей структуре методов: оптимального линейного итерационного процесса, метода с использованием корней многочлена Чебышева, метода сопряженных градиентов, итерационных методов, использующих спектрально эквивалентные операторы.

Если размерность задачи столь велика, что само решение задачи, т.е. вектор X, не помещается в оперативной памяти ЭВМ, то иногда применяются вероятностные методы решения систем линейных уравнений, которые остались вне нашего рассмотрения.

Бахвалов, Жидков, Кобельков "Численные методы" с.322

Несколько удивляют различные оценки количества действий в методах Гаусса, отражений и вращений Калиткиным и Бахваловым и Co (если я правильно догадываюсь, что Калиткин называет методом ортогонализации именно метод вращений). Смысл высказывания Калиткина: "лучше метода Гаусса ничего нет". Бахвалов и Co: "Рекомендуем использовать метод отражений или метод вращений".  Не знаю, чем объясняется некоторый разнобой тут. К сожалению, в этих djvu нет страничек с указанием года издания... Судя по списку литературы, книга Калиткина написана в конце 70-х. При этом там есть ссылка на книгу Бахвалова 75-го года. Но про Бахвалова-Жидкова-Кобелькова написано "Данная книга представляет собой переработанный вариант учебного пособия тех же авторов, вышедшего в 1987 году". Как-то с трудом мне верится, что все эти методы переносятся из книжки в книжку просто по инерции. BTW, Бахвалов - заведующий кафедрой вычметодов на мехмате МГУ:
http://mech.math.msu.su/staff/bakhval.htm


 
nikkie_   (2005-01-03 23:13) [69]

>>... ты готов прислать ... или готов предъявить ... ты не слыхал ...
>>... какие из этих алгоритмов у тебя реализованы ...
>Почему Вы переходите на личности? Мы не меня обсуждаем, на мне свет клином не сходился.

Разве это переход на личности? Я разве что-то сказал о цвете твоей кожи, строении носа, особенностях твоего характера или твоих родственниках? :))

Ты сам предложил себя и свой опыт в качестве критерия оценки нужности и полезности IMSL:
Поискал, нашел. Вот что предлагает библиотека IMSL:
...
Почти все это написано на Паскале много раз. Не могу сказать только про "Eigensystem analysis", не знаю что это такое.
Если хотите, многое из этого могу выслать Вам по почте в виде *.pas файлов.

По-моему, вполне естественно, что я попытался уточнить, каков твой опыт и какие pas-файлы ты имел в виду.

Ради интереса попробуй заявить физику, что СТО - это фигня, а на вопрос, что ты знаешь о ней, попроси не переходить на личности. :/

>>кто будет определять, какой метод надо использовать?
>И тут же вопросик: библиотеки Фортрана решают этот вопрос?

На мой взгляд - они, конечно, не решают, но серьезно помогают. Мне кажется, приведенные цитаты достаточны для подтверждения того, что не существует одного идеального и единственно правильного метода решения вычислительной задачи. Поэтому на практике хорошо бы посмотреть как себя ведут разные методы на данной задаче. И одно дело, если такая прикидка делается вызовом либо одной, либо другой готовой и оттестированной библиотечной функции. Совсем другое дело, если все эти методы надо реализовать самому.

>>а кто эти формулы напишет на листочке бумаги?
>Алгоритмы описываются в книгах/учебниках/статьях.

Я не просто так упомянул QR-алгоритм. Открой книжку Бахвалова и Co на странице 320, прочитай и "набей формулы". Интересно будет услышать о том, как легко это получилось.

А кстати, вот и реализация этого алгоритма, если кому интересно:
http://alglib.manual.ru/eigen/hessenbergqrivals.php
Извините, не проверял :)))


 
nikkie_   (2005-01-03 23:25) [70]

Я пытаюсь показать, то если переход на Фортран только из-за библиотек связан с какими-либо затратами (переделка готового ПО, обучение разработчика), то стоит сравнить эти затраты с затратами на переписывание библиотек на Паскаль
А не приходило в голову, что "разработчик" может знать Фортран и не знать Паскаль? С какой радости ему вдруг надо учить новый модный язык (скажем, за который iZEN ратует) и переписывать на него имеющиеся библиотеки? Ради нового поколения, которое не хочет знать ничего кроме этого языка, мода на который пройдет через 10 лет?


 
AlterEgo of WondeRu ©   (2005-01-03 23:28) [71]

nikkie_   (03.01.05 23:05) [67]
наверное твоя тема - распознавание образов

угу))) ладно, признаю, что ты крут!)))


 
Юрий Зотов ©   (2005-01-04 01:09) [72]

> nikkie_
 
Коль,  азачем подчеркивание?

> не существует одного идеального и единственно правильного
> метода решения вычислительной задачи.

Угу. Даже программируя одну и ту же модель (которую, к тому же сам писал, и знаешь ее досконально) - как только начнешь тестировать код на разных наборах исходных данных - так тут же начинаешь понимать, как непросто все устроено.

> Поэтому на практике хорошо бы посмотреть как себя ведут
> разные методы на данной задаче.

Если их еще удастся найти.

> И одно дело, если такая прикидка делается вызовом либо одной,
> либо другой готовой и оттестированной библиотечной функции.
> Совсем другое дело, если все эти методы надо реализовать
> самому.

Угу. Если делать по-правильному - жизни не хватит.

P.S.
А вообще - с Новым Годом.


 
nikkie_   (2005-01-04 02:04) [73]

>Коль,  азачем подчеркивание?
3 месяца не ходил на форум - пароль забыл :)

с Новым Годом :))


 
Юрий Зотов ©   (2005-01-04 02:14) [74]

> nikkie_   (04.01.05 02:04) [73]
> пароль забыл
Настоящий математик!


 
nikkie_   (2005-01-04 04:22) [75]

/offtop
гы. :)))
добрая душа Gero прислал мне мой пароль :)))
спасибо, но я в курсе, что здесь можно "вспомнить пароль".
проблема не совсем в том, что я его "забыл"...
сапожник без сапог, в общем


 
Aldor_   (2005-01-04 20:47) [76]

Ух, с Новым Годом всех!

> Юрий Зотов ©   (29.12.04 09:36) [66]

 Спаибо, пример классный, убеждающий. Я бы только переложил чуть больше ответственности на математика: ИМХО, именно он должен принимать решение о том, в каком порядке должны производиться арифметические действия. Ведь именно математик принимает решение о применении прогонки Дорра (прогонка без операции вычитания), он ведь тоже обязан знать модель FPU и свойства его вычислений.
 А вот решение о том, чтобы поставить скобочки - это уже решение, связанное с конкретным ЯП и конкретным компилятором и это уже обязанность программиста. И здесь я согласен, далеко не у каждого студента хватит на это квалификации.

 И еще, если можно, вопросик по приведенному примеру. Я так рассуждал: сначала лучше произвести операцию (C - B), потому что, AFAIR, ошибка при операции вычитания чисел x и y пропорциональна числу X / (x - y), поэтому вычитая далекие по значению B и C получим достаточно маленькую ошибку (тем более x = C мало). А затем уже прибавляем A. Как видите, наши с Вами результаты не сходятся. Где ошибка у меня в рассуждениях?

> nikkie_

 Во-первых, огроменное спасибо за ссылку на мат. литературу. Много раз встречал на дисках обрывки этой библиотеки, но вот источник никак не мог найти. Запускаю FlashGet :)

чтобы ко мне обращались на "ты"
 без проблем, я ведь даже твой возраст видеть не мог. Войди под собой, покажи анкету. Кстати, у меня подчеркивание по той же причине :)

Ради интереса попробуй заявить физику, что СТО - это фигня, а на вопрос, что ты знаешь о ней, попроси не переходить на личности

 :) признаю, мои претензии неуместны

Прогонка Дорра
Что это такое?


 Прогонка без операции вычитания. Если неизвестные системы близки, то в обычной прогонки из-за операции вычитания продуцируется большая погрешность. Прогонка Дорра позволяет сильно уменьшить погрешность float-операций.

... про цитаты из книг ...

 Я так понял, авторы советуют использовать итерационные методы, когда прямые методы нецелесообразны из-за своей ресурсоемкости. Видимо, получаем здесь такой TrackBar"чик между скоростью/памятью и точностью.

что "разработчик" может знать Фортран и не знать Паскаль

 Так это и хорошо, что знает. Мои все высказывания были от одного "если": "если переход на Фортран связан с какими-либо затратами"


 
iZEN ©   (2005-01-04 22:12) [77]

to nikkie_   (03.01.05 23:25) [70].
Java в этом году исполняется 10 лет (если считать днём рождения его анонс в мае 1995г.)!! А Вы говорите: "новый модный язык"... ;)



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.71 MB
Время: 0.044 c
14-1105010563
Денис
2005-01-06 14:22
2005.01.23
Есть видеокамера , как ее можно подключить к компу?


14-1104957025
Мазут Береговой
2005-01-05 23:30
2005.01.23
Нужен совет по t-sql.


1-1105263770
Андрей М.
2005-01-09 12:42
2005.01.23
SelectDirectory с возможностью создать папку


1-1105146030
Conduct
2005-01-08 04:00
2005.01.23
Если мы создаём несколько TStringList ов, то надо делать один


10-1082010459
Сергей Бушин
2004-04-15 10:27
2005.01.23
Как узнать имеются ли у сервера клиентские подключения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский