Русскоязычный форум закрыт из-за отсутствия активности (доступен только для чтения).
Пожалуйста, пользуйтесь англоязычной его версией. Приносим извинения за неудобства
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Вход


Опции
К последнему сообщению К первому непрочитанному
Offline Antech  
#1 Оставлено : 13 августа 2014 г. 14:55:41(UTC)
Antech


Статус: Member

Группы: Registered
Зарегистрирован: 13.09.2010(UTC)
Сообщений: 28
Откуда: Solar System, Earth

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 1 раз в 1 постах
Здравствуйте. Давно использую SMath в рабочих проектах. Как-то раз у меня возникла проблема со скоростью работы блоков программирования в SMath и автор помог мне, исправив sm-файл. Никогда бы не догадался, что после блока, вычисляющего матрицу M, нужно написать M:=M Good. Теперь мне понадобилось сделать итерационное решение сравнительно простой задачи, связанной с распределением расходов среды по трубопроводам. Вначале решение получалось примерно за 5-7 секунд. Это нормально. После этого я уточнил модель (учел сопротивление поворотов), для чего понадобилось добавить несколько вложенных функций. В результате расчет занимает 40...50 секунд, хотя добавленные функции простые и не должны долго вычисляться (в них самих нет итераций). Расчет нужно делать много раз, поэтому хотелось бы побыстрее...

Smath-файлы не секретные, они основаны на открытой литературе, поэтому даю ссылки на файлы.
Начальный вариант: http://rghost.ru/57445918
Вариант, в котором присутствует проблема с длительным расчетом: http://rghost.ru/57445935
Ссылки действуют 30 дней.

Можно ли как-то ускорить расчет? Или так и должно быть? Спасибо за внимание.

Отредактировано пользователем 13 августа 2014 г. 15:16:08(UTC)  | Причина: Не указана

Wanna join the discussion?! Login to your Форум проекта SMath forum account. Новые регистрации запрещены.

Offline Ber7  
#2 Оставлено : 15 августа 2014 г. 14:42:05(UTC)
Ber7


Статус: Advanced Member

Группы: Registered
Зарегистрирован: 22.03.2010(UTC)
Сообщений: 223
Мужчина
Израиль
Откуда: Beer-Sheva

Сказал «Спасибо»: 173 раз
Поблагодарили: 256 раз в 133 постах
Ваш расчет подправил.Время расчета уменьшилось в два раза.
Вложение(я):
Распределение расходов.smz (124kb) загружен 54 раз(а).
Метод расчета рычажных механизмов :
http://www.exponenta.ru/...litskiy-ivanov/index.asp
thanks 1 пользователь поблагодарил Ber7 за этот пост.
Antech оставлено 20.08.2014(UTC)
Offline Antech  
#3 Оставлено : 20 августа 2014 г. 10:55:32(UTC)
Antech


Статус: Member

Группы: Registered
Зарегистрирован: 13.09.2010(UTC)
Сообщений: 28
Откуда: Solar System, Earth

Сказал(а) «Спасибо»: 7 раз
Поблагодарили: 1 раз в 1 постах
Ber7
Спасибо! Начал экспериментировать и выяснил, что вынесение К1 и К2 из прог-модуля в виде постоянных на время расчета не повлияло. А вот A1_70 и A1_100 как отдельные функции - это очень влияет на время счета. Скрипт выполняет множество вычислений на каждой итерации, интересно, почему +/- одна формула изменяет время расчета в 2 раза? Там синус, но врядли так уж долго он считается...

Подскажите, а как Вы удаляете лишние строки в скрипте (блоке программирования) на SMath? Ну, "placeholders" в терминологии Mathcad. У меня новая версия SMath (04.08.2014) и del там не работает... Также интересно, можно ли вставлять новые строки в скрипт (кроме как выделить весь скрипт и добавить строки в конце). Кнопочка "]" добавляет новый уровень скрипта, а не строку...

Апдейт. Взял исходный файл, вставил A1_70(it) и A1_100(it) аналогично Вашему варианту. Время расчета особо не изменилось (минута+ на моем компе). В чем может быть причина? Нужно что-то еще исправить? Как я уже говорил, в Вашем варианте отдельные К1 и К2 пробовал убирать, это не повлияло на время счета.

Отредактировано пользователем 20 августа 2014 г. 11:55:04(UTC)  | Причина: update / syntax

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