1 страниц (7 вхождений)
Создание пользовательской функции - Сообщения
#1 Опубликовано: 18.06.2012 07:01:04
Сделал расчет коэффициента сжимаемости природного газа, а затем решил все это реализовать в виде отдельной функции. Тут выдало мне ошибку "Значение вышло за пределы маскимально-допустимого положительного числа", однако при обычном расчете все замечательно решается. Выяснялось, что ошибка возникает при расчете А2 (смотрите прикрепленный файл), хотя там используются величины близкие к 0. В чем ошибка?
метод GERG-91.sm (63 КиБ) скачан 42 раз(а).
метод GERG-91.sm (63 КиБ) скачан 42 раз(а).
#2 Опубликовано: 18.06.2012 07:36:19
Оптимизируйте третью строку снизу оператором eval:
A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
Метод расчета рычажных механизмов :
http://www.exponenta.ru/educat/systemat/selitskiy-ivanov/index.asp
1 пользователям понравился этот пост
Valey 18.06.2012 08:03:00
#3 Опубликовано: 18.06.2012 08:02:38
Спасибо, теперь все отлично работает!
#4 Опубликовано: 19.06.2012 02:35:16
WroteСпасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
#5 Опубликовано: 19.06.2012 02:38:56
WroteОптимизируйте третью строку снизу оператором eval:
A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
Пардон, но "eval всех достал!".
А почему система не может сама оптимизировать расчеты, освобождая инженера от необходимости засорять расчет служебными функциями! Вопрос, конечно, детский, но...
#6 Опубликовано: 19.06.2012 04:21:44
Ответ наверно тоже получится детский... Потому что компьютер не имеет понятия с какой точностью каждый отдельный индивидуум хочет производить вычисления. по-умолчанию - точность максимальная (потому как используется символьная арифметика: если встречается sqrt(sin(3)), то программа с этим выражением так и будет работать, а не переведёт его в 0.37565943094759, что бы потом погореть на погрешности последующих вычислений). Применяя eval юзер соглашается на появление погрешности после 15-го знака. Внимание (барабанная дробь), а теперь вопрос, куда в компьютер надо вставить мозг, что бы он сам догадывался, надо считать численно или символьно?
#7 Опубликовано: 20.06.2012 00:59:00
WroteWroteСпасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
Согласен, просто в рамках решаемой мною задачи необходимости введения этих данных в качестве аргументов нет, т.к. они принимаются условно-постоянными параметрами и задаются один раз в начале расчета. А плотность берется при стандартных условиях, т.е. при фиксированных значениях температуры и давления.
1 страниц (7 вхождений)
-
Новые сообщения
-
Нет новых сообщений