Время численного расчета

Сообщение №1585 от Алексей 05 ноября 2001 г. 05:15
Тема: Время численного расчета

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


Отклики на это сообщение:

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

Если можно - то подробности: задачи, алгоритмы и проч.
Все хотят считать быстро, но что именно и за счет чего...


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

Я недавно начал изучать численные методы. Пишу всякие прожки, типа методов половинного деления и наискорейшего спуска. Дак вот преподователь требует , чтобы ма начальную точку брали как можно более выгодную и проч.. Правда тогда итераций станет на одну меньше, а всего их пять. Но нас настойчиво заставляют оптимизировать алгоритм в 100 строк, который потом мы компилим на 4 пнях. Так что я в принципе тот, кого Вы ищите, но , естественно , не тот , кто Вам нужен.
Мораль - пишите информативные сообщения, а то человек откликнится а вы ему "Да ты мне не нужен". Человек обидится.


Ладис

Имхо, у каждого специалиста (физика, математика, инженера,…) должен быть джентельменский набор (собственного производства) каких- то функций.

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

Часто приходится строить на прямоугольнике (с отображением на экран) кривой y(x), задаваемой уравнением F(x,y)=0.0. Или линии уровня F(x,y)=С (С- варьируется) на прямоугольнике.

F – дорогая по затратам времени (даже не непрерывная)..

Или сводить решение нелинейной системы уравнений:
F1(x1, x2) =0.0;
F2(x1, x2) =0.0;
На прямоугольнике

К поиску x1*, x2*перебором отрезков.
Сводя к поиску корня функции одной переменной.
F1(x1, x2*= F2 -1 (x1, x2*)) =0.0;

Аналогично обобщение для системы n уравнений с n неизвестными

В итоге приходится тщательно отрабатывать функцию поиска корня на интервале перемены знака (деление пополам – одна из веток, когда алгоритм «говорит» - всё, все мыслимые быстродействующие методы дают осечку) .
Много перебора, но просто.

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


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

> Если можно - то подробности: задачи, алгоритмы и проч.
> Все хотят считать быстро, но что именно и за счет чего...

Добрый день,Михалыч. Во-первых,спасибо за ответ. Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида, для решения которой необходимо привлекать численные методы (Рунге-Кутта всех порядков и другие). Анализировалось время расчета в зависимости от метода численного расчета, языка програмирования, вида дифференциального уравнения. Цель исследования - добиться того, чтобы время расчета модели было по крайней мере в два раза меньше времени протекания реального процесса.



> Добрый день,Михалыч. Во-первых,спасибо за ответ. Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида, для решения которой необходимо привлекать численные методы (Рунге-Кутта всех порядков и другие). Анализировалось время расчета в зависимости от метода численного расчета, языка програмирования, вида дифференциального уравнения. Цель исследования - добиться того, чтобы время расчета модели было по крайней мере в два раза меньше времени протекания реального процесса.

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


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

> > Если можно - то подробности: задачи, алгоритмы и проч.
> > Все хотят считать быстро, но что именно и за счет чего...

> Добрый день,Михалыч. Во-первых,спасибо за ответ. Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида, для решения которой необходимо привлекать численные методы (Рунге-Кутта всех порядков и другие). Анализировалось время расчета в зависимости от метода численного расчета, языка програмирования, вида дифференциального уравнения. Цель исследования - добиться того, чтобы время расчета модели было по крайней мере в два раза меньше времени протекания реального процесса.

Методы Рунге-Кутты вообще говоря уже устарели причем давно.
И для большинства задач использование метода выше второго
практически бессмыслено.Если нужно использовать только явные методы, то можно посоветовать Чебышевские методы.
Если можешь сформулируй точно уравнения тогда разговор будет
более предметным.


>Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида, для решения которой необходимо привлекать численные методы (Рунге-Кутта всех порядков и другие). Анализировалось время расчета в зависимости от метода численного расчета, языка програмирования, вида дифференциального уравнения.

>Цель исследования - добиться того, чтобы время расчета модели было по крайней мере в два раза меньше времени протекания реального процесса.


Меня очень удивило, что в вашей задаче вы столкнулись с проблемой
«время расчета модели было по крайней мере в два раза меньше времени протекания реального процесса.»

Было бы очень интересным понять:
«В каком месте? За счет чего?»
У вас такие огромные потери процессорного времени.


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


Пожалуйста поясните кратко, что такое нейросетевая модель и, в частности, применительно к моделированию тормозной динамики автомобиля


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


Это я по мотивам сообщения №1603 от Алексея.

Он пишет:
«Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида»

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

Так как соотносится к анализу по сути системы диф-уров «Нейросетевая модель»?.


> Так как соотносится к анализу по сути системы диф-уров «Нейросетевая модель»

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


> Это я по мотивам сообщения №1603 от Алексея.

> Он пишет:
> «Я занимаюсь комплексным моделированием тормозной динамики автомобиля: мы имеем систему дифференциальных уравнений общего вида»

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

> Так как соотносится к анализу по сути системы диф-уров «Нейросетевая модель»?.

А чего непонятного-то ?
Раз люди занимаются моделированием динамики автомобиля, и им нужно это делать в реальном масштабе времени, то значит делают какую-нибудь CУ автомобилем в целом, и какой-то из его подсистем - АБС, активное управление подвеской или еще чего...

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

Материала по этой тематике в Инете навалом, смотрите по словам vehicle simulation dynamics control итд

Советую автору первоначального вопроса посмотреть и материалы по HIL (hardware-in-the-loop simulation) - например
http://www.trucksim.com/
http://www.dspaceinc.com/
итд


> Раз люди занимаются моделированием динамики автомобиля, и им нужно это делать в реальном масштабе времени,...

А если люди занимаются моделированием динамики солнечной системы на ближайшие 200 000 лет?

Я почитала у них. Как раз, вроде бы, они не хотели бы, чтобы вычислительная система работала почти в режиме реального времени!


> > Так как соотносится к анализу по сути системы диф-уров «Нейросетевая модель»

> речь вроде шла о расчетах в реальном времени,

Я этого желания у автора что-то не заметил.
А автор вопроса исчез.


> > речь вроде шла о расчетах в реальном времени,
> Я этого желания у автора что-то не заметил.
> А автор вопроса исчез.

Вот слова автора:

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

Чего вы не видите? ;-)


> > > речь вроде шла о расчетах в реальном времени,
> > Я этого желания у автора что-то не заметил.
> > А автор вопроса исчез.

> Вот слова автора:

> ...по крайней мере в два раза меньше времени протекания реального процесса."

> Чего вы не видите? ;-)

Я вижу, что автор хочет ("по крайней мере"!) как можно быстрее организовать процесс вычислений.



Здравствуйте kalenka!

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

С уважением , Александр.


> Коли один из возможных вар-тов - нейросетевая модель и Вы выбираете язык программирования, хочу Вам сообщить что бОльшая часть программ по нейросетям в internet на Java. Наверное сть причины.

Причина на мой взгляд просто - малтиплатформенность. Я для себя выбрал другой язык с похожими свойствами - Smalltalk, причем достаточно давно лет 10 назад.


> Причина на мой взгляд просто - малтиплатформенность. Я для себя выбрал другой язык с похожими свойствами - Smalltalk, причем достаточно давно лет 10 назад.

Вау! Первый раз встечаюсь с человеком, пользующимся этим языком. Мне интересно, вас таких много? Я сложных программ не пишу, потому мне объекты ни к чему, но знаю нескольких шарящих челов - те никогда не встречались с людьми, пишущими на Smalltalk. А какие серьезные проекты на нем написаны?
А про Java вам видней. Но я не думаю , что в данном случае причина - плотформенная независимость. Я только про класс задачь , связанный с неросетями слышал, что их много на Java. Вообще не сильно заметил , чтобы народ на яву накинулся(причиной считаю 100% обьектно-ориентированную модель).


> > Причина на мой взгляд просто - малтиплатформенность. Я для себя выбрал другой язык с похожими свойствами - Smalltalk, причем достаточно давно лет 10 назад.

> Вау! Первый раз встечаюсь с человеком, пользующимся этим языком. Мне интересно, вас таких много? Я сложных программ не пишу, потому мне объекты ни к чему, но знаю нескольких шарящих челов - те никогда не встречались с людьми, пишущими на Smalltalk. А какие серьезные проекты на нем написаны?

Полно.
В JP Morgan еще 5 лет назад сделали огромную библиотеку прайсинга деривативов на Смолтоке. На Сквике - диалекте - много чего делали в Диснее. Лучший объектный язык на мой взгляд - Self - развитие Смолтока в область делегирования. Самя Ява (тьфю, черт!) - ято кастрированный Смолток с синтаксисом С - достаточно взглянуть на API.

> А про Java вам видней. Но я не думаю , что в данном случае причина - плотформенная независимость. Я только про класс задачь , связанный с неросетями слышал, что их много на Java. Вообще не сильно заметил , чтобы народ на яву накинулся(причиной считаю 100% обьектно-ориентированную модель).

Чего? Какая там 100% модель? Метод - это объект? Класс - это объект? Где множественное наследование имплементации?
Где темплаты/метаклассы, которые тоже должны быть объектами? Ява - г-но.

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


С точки зрения теоретического ООП Ява - абсолютно fucked up. Семантика равенства простых и составных типов, семантика объектны ссылок/объектов аргументов методов? Бред!

Единственная проблема Смолтока - нетипизированность. Расслабляет и приводит к менее удачным и поддерживаемым дизайнам.

Большая рекоммендация - изучить теорию категорий, если есть желание серьезно заниматься ООП. А также посмотреть разные парадигмы ООП - класс/тип ориентированный подход, делегирование/прототипы, акторы.

И напоследок. Нет больших или маленьких программ. Есть удачные решения, которые можно многократно использовать, а есть "спагетти". Лепя спагетти, только тратишь свое время. Так что помысли.


только менее эмоционально :)

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


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

Аналогнично. Последнее на что меня бросили - скрипт Математики :) - есть еще панки в этой жизни.
Все жду не дождусь, когда с неба грянет КОБОЛ.

Кстати, погляди self.sunlabs.com
Я недавно наконец дорвался до Sun box - скачал оное дело и посмотрел. Мечта поэта!


> Кстати, погляди self.sunlabs.com
> Я недавно наконец дорвался до Sun box - скачал оное дело и посмотрел. Мечта поэта!

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


Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама:
Rambler's Top100