Статус: Newbie
Группы: Registered
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 7
Откуда: Казань
Сказал «Спасибо»: 10 раз
Сделал расчет коэффициента сжимаемости природного газа, а затем решил все это реализовать в виде отдельной функции. Тут выдало мне ошибку "Значение вышло за пределы маскимально-допустимого положительного числа", однако при обычном расчете все замечательно решается. Выяснялось, что ошибка возникает при расчете А2 (смотрите прикрепленный файл), хотя там используются величины близкие к 0. В чем ошибка?
Статус: Advanced Member
Группы: Registered
Зарегистрирован: 22.03.2010(UTC)
Сообщений: 223
Откуда: Beer-Sheva
Сказал «Спасибо»: 173 раз Поблагодарили: 256 раз в 133 постах
Оптимизируйте третью строку снизу оператором eval: A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
1 пользователь поблагодарил Ber7 за этот пост.
Valey оставлено 18.06.2012(UTC)
Статус: Newbie
Группы: Registered
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 7
Откуда: Казань
Сказал «Спасибо»: 10 раз
Спасибо, теперь все отлично работает!
Статус: Advanced Member
Группы: Registered, Advanced Member
Зарегистрирован: 03.06.2009(UTC)
Сообщений: 156
Сказал «Спасибо»: 215 раз Поблагодарили: 3 раз в 3 постах
Автор: Valey Спасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
Отредактировано пользователем 19 июня 2012 г. 9:40:17(UTC)
| Причина: Не указана
Статус: Advanced Member
Группы: Registered, Advanced Member
Зарегистрирован: 03.06.2009(UTC)
Сообщений: 156
Сказал «Спасибо»: 215 раз Поблагодарили: 3 раз в 3 постах
Автор: Ber7 Оптимизируйте третью строку снизу оператором eval: A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
Пардон, но "eval всех достал!".
А почему система не может сама оптимизировать расчеты, освобождая инженера от необходимости засорять расчет служебными функциями! Вопрос, конечно, детский, но...
Статус: Advanced Member
Группы: Registered
Зарегистрирован: 24.07.2008(UTC) Сообщений: 97 Откуда: Питер
Сказал(а) «Спасибо»: 18 раз Поблагодарили: 3 раз в 3 постах
Ответ наверно тоже получится детский... Потому что компьютер не имеет понятия с какой точностью каждый отдельный индивидуум хочет производить вычисления. по-умолчанию - точность максимальная (потому как используется символьная арифметика: если встречается sqrt(sin(3)), то программа с этим выражением так и будет работать, а не переведёт его в 0.37565943094759, что бы потом погореть на погрешности последующих вычислений). Применяя eval юзер соглашается на появление погрешности после 15-го знака. Внимание (барабанная дробь), а теперь вопрос, куда в компьютер надо вставить мозг, что бы он сам догадывался, надо считать численно или символьно?
Статус: Newbie
Группы: Registered
Зарегистрирован: 11.01.2012(UTC)
Сообщений: 7
Откуда: Казань
Сказал «Спасибо»: 10 раз
Автор: OchkovVF Автор: Valey Спасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
Согласен, просто в рамках решаемой мною задачи необходимости введения этих данных в качестве аргументов нет, т.к. они принимаются условно-постоянными параметрами и задаются один раз в начале расчета. А плотность берется при стандартных условиях, т.е. при фиксированных значениях температуры и давления.
Быстрый переход
Форум проекта SMath
SMath Studio
- Скачать SMath Studio
--- Архив
--- Ночные сборки
- Примеры использования
- Вопросы по использованию
- Предложения
- Ошибки
Математика
- Документы
- Алгоритмы
- Математические задачи
Общение
- О проекте
- Общение
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.