1 Pages (7 items)
Создание пользовательской функции - Messages
#1 Posted: 6/18/2012 7:01:04 AM
Сделал расчет коэффициента сжимаемости природного газа, а затем решил все это реализовать в виде отдельной функции. Тут выдало мне ошибку "Значение вышло за пределы маскимально-допустимого положительного числа", однако при обычном расчете все замечательно решается. Выяснялось, что ошибка возникает при расчете А2 (смотрите прикрепленный файл), хотя там используются величины близкие к 0. В чем ошибка?
метод GERG-91.sm (63 KiB) downloaded 42 time(s).
метод GERG-91.sm (63 KiB) downloaded 42 time(s).
#2 Posted: 6/18/2012 7:36:19 AM
Оптимизируйте третью строку снизу оператором 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 users liked this post
Valey 6/18/2012 8:03:00 AM
#3 Posted: 6/18/2012 8:02:38 AM
Спасибо, теперь все отлично работает!
#4 Posted: 6/19/2012 2:35:16 AM
WroteСпасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
#5 Posted: 6/19/2012 2:38:56 AM
WroteОптимизируйте третью строку снизу оператором eval:
A2:=eval((A.0-(A.0^2-A.1^3)^0.5)^{1/3})
Пардон, но "eval всех достал!".
А почему система не может сама оптимизировать расчеты, освобождая инженера от необходимости засорять расчет служебными функциями! Вопрос, конечно, детский, но...
#6 Posted: 6/19/2012 4:21:44 AM
Ответ наверно тоже получится детский... Потому что компьютер не имеет понятия с какой точностью каждый отдельный индивидуум хочет производить вычисления. по-умолчанию - точность максимальная (потому как используется символьная арифметика: если встречается sqrt(sin(3)), то программа с этим выражением так и будет работать, а не переведёт его в 0.37565943094759, что бы потом погореть на погрешности последующих вычислений). Применяя eval юзер соглашается на появление погрешности после 15-го знака. Внимание (барабанная дробь), а теперь вопрос, куда в компьютер надо вставить мозг, что бы он сам догадывался, надо считать численно или символьно?
#7 Posted: 6/20/2012 12:59:00 AM
WroteWroteСпасибо, теперь все отлично работает!
Но это у Вас функция не двух (давление и температура), а шести аргументов (плюс состав газа и плотность)! А плотность, в свою очередь, это функция давления и температуры!
Еще бы хорошо, чтобы в функции работали единицы измерения!
А так приятно видеть полезную функция для теплотехников!
Согласен, просто в рамках решаемой мною задачи необходимости введения этих данных в качестве аргументов нет, т.к. они принимаются условно-постоянными параметрами и задаются один раз в начале расчета. А плотность берется при стандартных условиях, т.е. при фиксированных значениях температуры и давления.
1 Pages (7 items)
-
New Posts
-
No New Posts