Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
точность уравнения линии тренда
 
{quote}{login=Лузер™}{date=09.02.2010 03:23}{thema=}{post}Поможет.  
Не переживайте.  
Правой кнопкой мышки на уравнении тренда - формат подписей данных - число - экспоненциальный - число десятичных знаков - 15  
Думаю, такое уравнение Вас устроит{/post}{/quote}  
я долго искал как увеличить точность, а ларчик-то просто открывался :)  
спасибо!  
а тему можно закрывать.
точность уравнения линии тренда
 
{quote}{login=Лузер™}{date=09.02.2010 02:22}{thema=}{post}Как Вы думаете, почему до сих пор используют толстенные термодинамические таблицы, вместо того, чтобы на одном листочке написать зависимость p=f(t)?  
Может потому, что нет этой функции, а есть численные (они же приближенные) методы?  
Так что вопрос не по экселю. А по численным методам.{/post}{/quote}  
я понимаю, что функции, всецело удовлетворяющей табличным значениям нет.  
но, с определенной точностью есть. я, например, эту зависимлсть получил.  
а вот точность, к сожалению, хромает =(  
 
т.е. эксель здесь не поможет? о_О
точность уравнения линии тренда
 
всем привет!  
 
предисловие :)  
есть такая таблица "Термодинамические свойства аммиака в состоянии насыщения" (диапазон -77...90 оС), где, кроме прочих параметров, присутствует зависимость p=f(t), т.е. зная температуру кипения (конденсации) аммиака можно узнать при каком давлении процесс кипения (конденсации) происходит.  
периодическое введение этих значений вручную из таблицы в эксель нерационально, поэтому я решил получить уравнение, описывающее данную зависимость.  
построение графика p=f(t) прошло нормально - получилась гладкая кривая.  
потом, как обычно, кликнув правой клавишей мышки на кривой выбрал "добавить линию тренда", добавил тренд (выбрав в виде описывающей функции полином 6й степени), и поставил галочку, чтоб уравнение отображалось на графике.  
само уравнение: y = 5E-13x6 - 4E-11x5 + 3E-08x4 + 2E-05x3 + 0,0024x2 + 0,1612x + 4,301,  
где х - температура; у - давление.  
 
суть проблемы.  
полученное уравнение, конечно же, согласуется с табличными значениями, но с недостаточной точностью.  
преобразовання формула в экселе выглядит так: =(5*10^-13*A2^6-4*10^-11*A2^5+3*10^-8*A2^4+2*10^-5*A2^3+0,0024*A2^2+0,1612*A2+4,301)/10.  
 
вопросы:  
как можно повысить точность при использовании этой формулы?  
есть ли другие способы получения аналитической зависимости с хорошей согласуемостью с табличными данными?  
 
для устранения возникших дополнительных вопросов, прикрепил файл.
проблема при итерации
 
Михаил, спасибо Вам за решение проблемы!  
Все верно :)  
итак,  
в ячейке I8 (мольная концентрация [фи]а) методом последовательных приближений температура t2 подбирается так, чтобы разница между заданной и полученной температурами (C9-C3) была минимальной: =ЕСЛИ((C9-C3)>0,001;I8+0,00001;ЕСЛИ((C9-C3)<-0,001;I8-0,00001;I8));
в ячейке I10 (мольная концентрация [фи]r) методом последовательных приближений температура t4 подбирается так, чтобы разница между заданной и полученной температурами (C11-C4) была минимальной: =ЕСЛИ((C11-C4)>0,001;I10+0,00001;ЕСЛИ((C11-C4)<-0,001;I10-0,00001;I10)).
 
теперь перейдем к регенеративному теплообменнику (РТО).  
итак,  
в ячейке E20 (давление сл. раствора после РТО p) методом последовательных приближений температура t3 подбирается так, чтобы разница между ней и t4 составляла 5 оС с минимальным отклонением: =ЕСЛИ(ЕОШ(ЕСЛИ((C21-C11)>5,001;E20-0,0001;ЕСЛИ((C21-C11)<4,999;E20+0,0001)));0,01;ЕСЛИ((C21-C11)>5,001;E20-0,0001;ЕСЛИ((C21-C11)<4,999;E20+0,0001;E20)));  
в ячейке E22 (давление кр. раствора после РТО p) методом последовательных приближений температура t1 подбирается так, чтобы разница между i1ф (энтальпия в т.1, полученная с помощью формул - математических уравнений из зарубежной статьи) и i1р (энтальпия в т.1, полученная из уравнения теплового баланса i1р=i4+(qт/a)) была минимальной: =ЕСЛИ(ЕОШ(ЕСЛИ((K22-B38)>0,005;E22-0,0001;ЕСЛИ((K22-B38)<-0,005;E20+0,0001)));0,01;ЕСЛИ((K22-B38)>0,005;E22-0,0001;ЕСЛИ((K22-B38)<-0,005;E22+0,0001;E22))).  
 
все остальные расчеты по определению точек цикла - аналогичны изложенным.  
 
Спасибо всем за посильную помощь.  
 
Теперь разбираюсь как правильно задавать точность расчета в формулах :)  
Поскольку нередко через этот цикл итерации, проскакивает оптимальный вариант, но  расчет показывает другой результат.
проблема при итерации
 
Dophin написал:  
но разбираться с файлом действительно лень, единственное что могу посоветовать - это начать изучать VBA там эти задачи решаются просто.  
 
а формулы шикарные)  
 
если можно будет обойтись в этом примере без применения пакета ВБА, то его изучение пока отложу. если же нет - придется осваивать, но это время =(  
 
да формулы самые простые - всего-то 2 логических условия "если" :)  
 
vikttur написал:  
Наверное, подсказать можно, только зная процесс расчета, саму математику.  
Вы проблему знаете - попробуйте смоделировать ее на небольшом примере, без сложных формул и расчетов, чтобы можно было понять саму суть.  
 
ок, попробую проще объяснить поставленную проблемой задачу.  
итак.  
определние точек цикла (т.4, т.2 - как пример) определяется математическими уравнениями (найдены в одной зарубежной статье - достаточно согласуемы с табличными данными):  
t4=f(p0, [фи]r) - температура кр. раствора после абсорбера (т.4);
t2=f(pк, [фи]а) - температура сл. раствора после генератора (т.2);
давление р0 и рк заданы в начале расчета и являются постоянными.  
Допустим, как в моем примере, температура слабого раствора после генератора t2=120 oC. Соответственно, при этой температуре определенное значение имеет и мольная коцентрация [фи]а.
Согласно зависимостям (математическим уравнениям из зарубежной статьи) значения давления и мольной концентрации оказывают влияние на значение температуры, а не наоборот!  
Главное: я не могу сразу знать какая концентрация сл. раствора, тем более с точностью до 5 знака :) поэтому и возникает необходимость применения итераций, т.е. по сути, использования метода последовательных приближений.  
Пример.  
если рк=1,169 Мпа и [фи]а=0,09187, то t2=160 oC;
если рк=1,169 Мпа и [фи]а=0,13068, то t2=150 oC;
если рк=1,169 Мпа и [фи]а=0,17147, то t2=140 oC;
если рк=1,169 Мпа и [фи]а=0,21381, то t2=130 oC;
если рк=1,169 Мпа и [фи]а=0,25749, то t2=140 oC.
все эти значения получены при ручной подстановке, которая быстро утомляет :)  
поэтому и хотел автоматизировать этот процесс, ЧТОБЫ ПУТЕМ ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ (ИЗМЕНЕНИЕМ В ДАННОМ ПРИМЕРЕ [фи]а) ПРИХОДИТЬ К ЗАДАННОЙ ТЕМПЕРАТУРЕ.
кое-как это получилось. хоть михаил справделиво указал на ошибку в условии "если" (см. посты выше). реализовать это исправление не получилось, поскольку появляется на экране предупреждение:  
 
Для функции введено аргументов: Слишком много.  
 
Чтобы закрыть данное сообщение и получить справку по вводу аргументов функции, нажмите кнопку "ОК". Затем на строке формул щелкните кнопку знака равенства (слева от знака равенства в формуле).  
 
теперь о проблеме при определении температуры слабого раствора после регенеративного теплообменника t3.  
в данном случае t3=f(p, [фи]а) - здесь уже [фи]а=сonst, а изменяется p.
вся проблема в том, что и давление р, и мольная концентрация [фи] присутствуют в этих математических уравнениях, данных зарубежными "коллегами" :)
но вот незадача: давление р находится в знаменателе =(  
я уже пробовал задавать начальное значение этого р при определении t3, результат - та же ошибка "ДЕЛ/0!".  
 
Господа советующие, если у вас есть уточняющие вопросы, пожалуйста, задавайте!  
Я прекрасно понимаю, что мое описание проблемы для вас малопонятно, собсна, как снег на голову :)
проблема при итерации
 
вот просто нет слов - охренеть =(((  
сидел полчаса печатал-объяснял и все насмарку((  
мой напечатанный месседж уже не восстановишь? о_О  
госпола модераторы, откликнитесь!
проблема при итерации
 
{quote}{login=Dophin}{date=29.01.2010 11:38}{thema=}{post}но разбираться с файлом действительно лень, единственное что могу посоветовать - это начать изучать VBA там эти задачи решаются просто.  
 
а формулы шикарные){/post}{/quote}  
если можно будет обойтись в этом примере без применения пакета ВБА, то его изучение пока отложу. если же нет - придется осваивать, но это время =(  
да формулы самые простые - всего-то 2 логических условия "если" :)  
 
{quote}{login=vikttur}{date=29.01.2010 11:51}{thema=}{post}Наверное, подсказать можно, только зная процесс расчета, саму математику.  
Вы проблему знаете - попробуйте смоделировать ее на небольшом примере, без сложных формул и расчетов, чтобы можно было понять саму суть.{/post}{/quote}  
ок, попробую проще объяснить поставленную проблемой задачу.  
итак.  
определние точек цикла (т.4, т.2) определяется математическими уравнениями (найдены в одной зарубежной статье - достаточно согласуемы с табличными данными):  
t4=f(p0, [фи]r) - температура кр. раствора в т.4;
t2=f(pк, [фи]а) - температура сл. раствора в т.2;
давление р0 и рк заданы в начале расчета и являются постоянными.  
Допустим, как в моем примере, температура слабого раствора после генератора t2=120 oC. Соответственно, при этой температуре определенное значение имеет и мольная коцентрация [фи]а.
Главное: я не могу сразу знать какая концентрация сл. раствора, тем более с точностью до 5 знака :) поэтому и возникает необходимость применения итераций, т.е. по сути, использования метода последовательных приближений.  
Пример.  
если рк=1,169 Мпа и [фи]а=0,09187, то t2=160 oC;
если рк=1,169 Мпа и [фи]а=0,13068, то t2=150 oC;
если рк=1,169 Мпа и [фи]а=0,17147, то t2=140 oC;
если рк=1,169 Мпа и [фи]а=0,21381, то t2=130 oC;
если рк=1,169 Мпа и [фи]а=0,25749, то t2=140 oC.
все эти значения получены при ручной подстановке, которая быстро утомляет :)  
поэтому и хотел автоматизировать этот процесс, ЧТОБЫ ПУТЕМ ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ (ИЗМЕНЕНИЕМ В ДАННОМ ПРИМЕРЕ [фи]а) ПРИХОДИТЬ К ЗАДАННОЙ ТЕМПЕРАТУРЕ.
кое-как это получилось. хоть михаил справделиво указал на ошибку в условии "если" (см. посты выше). реализовать это исправление не получилось, поскольку появляется на экране предупреждение:  
 
Для функции введено аргументов: Слишком много.  
 
Чтобы закрыть данное сообщение и получить справку по вводу аргументов функции, нажмите кнопку "ОК". Затем на строке формул щелкните кнопку знака равенства (слева от знака равенства в формуле).  
 
теперь о проблеме при определении температуры слабого раствора после регенеративного теплообменника t3.  
в данном случае t3=f(p, [фи]а) - здесь уже [фи]а=сonst, а изменяется p.
вся проблема в том, что и давление р, и мольная концентрация [фи] присутствуют в этих математических уравнениях, данных зарубежными "коллегами" :)
но вот незадача: давление р находится в знаменателе =(  
я уже пробовал задавать начальное значение этого р при определении t3, результат - та же ошибка "ДЕЛ/0!".
проблема при итерации
 
{quote}{login=Михаил}{date=29.01.2010 05:50}{thema=}{post}Имхо, у вас принципиальная ошибка в формулах типа    
=ЕСЛИ((C9-C3)>0,0001;I8+0,00001;ЕСЛИ((C9-C3)<-0,0001;I8-0,00001))  
Когда -0.0001<=(C9-C3)<=0.0001, формула принимет значение ЛОЖЬ (или ноль), и, если она стоит в знаменателе, то и получаете #ДЕЛ/0!.  
необходимо    
=ЕСЛИ((C9-C3)>0,0001;I8+0,00001;ЕСЛИ((C9-C3)<-0,0001;I8-0,00001);* _Чему_равно_I8_в_интевале_от_-0,0001_до_0,0001_*)  
Дальнейшее проверять слишком сложно....{/post}{/quote}  
Михаил, ваше замечание справедливо :)  
Я сам, когда писал формулы, столкнулся с этим. Изначально и вводил значение * _Чему_равно_I8_в_интевале_от_-0,0001_до_0,0001_* (я и щас попробовал)  
НО! выдает предупреждение:  
{quote}  
Для функции введено аргументов: Слишком много.  
 
Чтобы закрыть данное сообщение и получить справку по вводу аргументов функции, нажмите кнопку "ОК". Затем на строке формул щелкните кнопку знака равенства (слева от знака равенства в формуле)  
{/quote}  
может, тут проблема с заданной точностью при вычислениях, я проработаю это.  
 
по поводу "#ДЕЛ/0!": в формуле при определении температуры t3 давление р стоит в знаменателе.  
но, видимо, исходная точка итерации р=0, что сразу влечет за собой эту ошибку.  
меня интересует - можно как-то ее обойти?  
не зря говорят, что 2 головы лучше :)  
 
{quote}{login=Igor67}{date=29.01.2010 09:09}{thema=}{post}Но для меня слишком много данных, которые не понимаю. Не смотря на то что Вы много написали - понятней не стало:(( {/post}{/quote}  
{quote}{login=vikttur}{date=29.01.2010 09:16}{thema=}{post}много "ячеечек", все шустро считается, но разбираться лень (читай - не интересно). Очень много всего...{/post}{/quote}  
 
ребята, больше всего меня интересует трабла с определением t3. все остальное - доработки.
проблема при итерации
 
всех приветствую!  
я новенький на этом форуме.  
пытался решить проблему своими силами и умственными возможностями, но "воз и ныне там" :)  
собсна, поэтому и пишу.  
 
начну издалека и плавно перейду к главному.  
с помощью excel мною была построена математическая модель работы асборбционной холодильной машины (изменение температуры и энтальпии водоаммиачного раствора описывается математическими уравнениями).  
задача данной модели - расчет цикла (прямого и обратного) при изменении исходных данных, которыми служат температура слабого раствора после генератора t2, температура конденсации t6 и температура паров аммиака после испарителя t8.  
благодаря применению циклических ссылок (читай, итераций), расчет ведется успешно, хоть и долго.  
и вот, когда пришел черед автоматизации при определении температуры слабого раствора после  регенеративного теплообменника t3 проблема и проявила себя.  
итак, суть: эта температура t3 зависит от нескольких факторов:  
1) мольной концентрации слабого раствора ψa - определена ранее опять же с помощью итерации, т.е. в данном случае выступает уже как постоянная;  
2) давления p - его и необходимо просчитать. формула для определения была проста: =если((t3-t6)>5,0001;p-0,0001;если((t3-t6)<5,0001;p+0,0001))  
и когда я клацаю enter начинается процесс обработки и через некоторое время выдается ошибка "#ДЕЛ/0!".  
загвоздка в том, что это давление р присутствует в знаменателе при определении t3.  
процесс итерации, как я понимаю, начинается с 0, а, как нам известно, на ноль делить нельзя. ну, можно, конечно, но получится бесконечность 8-)  
вопрос в следующем: что делать? :)  
вижу 2 варианта:  
1) задание области итерации, но мои поиски такой функции закончились безуспешно =( ;  
2) ваш вариант.  
 
в меню "сервис" такой вкладки как "поиск решения" у меня нет.  
есть подбор параметра, но то не то пальто :)  
 
вскользь читал, что могут использоваться возможности надстройки ВБА, если она поможет, буду осваивать.  
 
я понимаю, что поставленная задача абстрактна в своей постановке, но разрешима, если разобраться.  
для уменьшения количества возникающих вопросов прикрепляю файл с матмоделью, как того и требуют правила.
Страницы: 1
Наверх