Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Расчет функции на основе экспериментальных данных

истекло время актуальности


Есть входная величина N, она обозначает уровень жидкости.

Которая может быть в диапазоне 0…Nmax, где Nmax известное нам  число.

Допустим, 4000.

Есть выходная величина V, обозначающая объем жидкости.

Она может быть в диапазоне 0…. Vmax (объем емкости).

Объем емкости нам известен, допустим 400 литров.

Ввиду геометрически неправильной формы емкости  зависимость V=f(N) не является линейной.

Требуется описать функцию (можно в виде набора отрезков) при условии что

Известен набор  чисел – приращений  dN и соответствующих им приращений dV.

При этом абсолютные значения V неизвестны. Известны только N, dN, dV и Vmax.


на одном и том же интервале N1....N2....N3....N4 могут быть несколько приращений Vmax, пересекающих рассматриваемые границы, например приращение V1 получено на приращении N1->N3, а V2- на приращении N2->N4.

Возможен и вариант что приращение V1 получено на приращении N2->N3, а V2- на приращении N1->N4.

придется искать компромиссные варианты аппроксимации.



  1. 128 дней999 ₴
    Victor De
     169   0   1

    Комментарий
    oбязательное поле

    Украина Кривой Рог | 29 апреля 2017 |
  • Вычисляются f(Ni) по известным приращениям V и N. Значения V вычисляются по 

    любой квадратурной формуле прямоугольников, трапеций и т.п. Vk=интеграл от 0 до Nk, значения подинтегральной функции f(N) в узлах уже известны.

  • Анатолий Ветров — заказчик проекта

    могут быть "неудачные" пары V-N, их придется игнорировать либо корректировать.  Чистой математикой, наверное, не обойтись.

  • Приведите наборы {V,N} с "удачными" и "неудачными" парами.

  • Анатолий Ветров — заказчик проекта

    Известные пары :   N=1, V=0 ;    N=1018, V=370


    И данные по приращениям:

                                                                                                                                                 

    N1N2
    dV
    158546
    131








    154732
    191








    310787
    147




    140728
    196








    98660
    192


    где N1, N2 - абсолютные значения (известные) - приращение уровня жидкости


    а dV - изменение объема. Начальный и конечный объем неизвестен.







  • Если я правильно понимаю Вашу таблицу, то:

    а) в свободный столбец занесите среднегеометрические значения N1 и N2 это 

        0,5*sqrt(N1*N2)

    б) постройте график dV от среднегеометрического

    в) получите линию тренда (линейную)

    г) у меня получилось dV=-0,0001*ср.геом.+0,3698

    д) Вам это нужно?

  • Включите сюда и известную пару.

  • Анатолий Ветров — заказчик проекта

    во-первых мне надо иметь функцию (либо табличную зависимость) V =F (N)

    а не dV.


    во вторых если считать по исходным данным, то как видите интервалы N..N2 перекрываются и для одного значения N будет существовать сразу несколько вариантов тренда. Надо выбирать подходящий.

  • Анатолий Ветров — заказчик проекта

    Нарисуйте график функции V=F(N) на основе этой таблицы

  • blob

    Сделал с помощью Excel поиск решения. Целевая функция = минимизация квадратного отклонения разности объёмов

  • Анатолий Ветров — заказчик проекта

    таких точек перелома как на графике быть не должно.


    Вот реальный график зависимости V=F(N)


    real+table.png

  • Если поставить максимальное приблежение к прямой

    blob

  • Анатолий Ветров — заказчик проекта

    Исходные данные будут вводиться в веб-форму на сайте, а рассчитанная таблица ( в виде пар (N;V) будет отправляться на указанный в форме емейл. это и есть задача проекта.

  • Анатолий Ветров — заказчик проекта

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

  • Простите за опечатку, аппроксимация должна выглядеть так

    dV/dN=-0,0001*ср.геом.+0,3701

    Ждите.

  • Прошу мене вибачити, що втручаюся. Я би діяв з кінця: спочатку я розробив (би) модель. Краще декілька моделей. Наприклад %D0%97%D0%BD%D1%96%D0%BC%D0%BE%D0%BA+%D0%B5%D0%BA%D1%80%D0%B0%D0%BD%D0%B0+%D0%B7+2017-04-28+15-28-54.png

  • Анатолий Ветров — заказчик проекта

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

  • Так, це окремий випадок! І ці самі окремі випадки (моделі) допоможуть вирішити задачу. Тобто другим кроком буде побудова функціїї на одному наборі данних. Третім - уточнення функціїї у випадку надходження наступного набору данних і порівняння з моделлю. В ідеалі, коли кількість наборів збільшується - отримуємо краще наближення до моделі. Ну і останній крок - перевірка алгоритму на інших моделях

  • Анатолий Ветров — заказчик проекта

    если бы емкость описывалась формулой, я бы не обращался на фриланс 🙂

    emk1.pngemk2.png

  • Як швидко треба виконати? і Яка точність (похибка) вимагається?

  • Анатолий Ветров — заказчик проекта

    Можно описать так. есть готовый набор моделей емкостей и их характеристик. описанных таблично (N-V).  По каждой из них выбираем случайным образом 8 точек N и для каждой случайное приращение dN ( но N+dN < Nmax). Интерполяцией определяем получаемое dV (использовать в расчетах V нельзя, мы его якобы не знаем). Потом пробуем решить обратную задачу  - на основе dV и точек N воссоздать исходную таблицу.  После этого попробуем поставить задачу так: Ордината каждой из точек полученной кривой в диапазоне 0..N должна отличаться от исходной кривой не более чем на 3%.

  • Анатолий Ветров — заказчик проекта

    не срочно, по мере вдохновения (до осени, скажем)

  • V    N    

    370    1018    

    333    902,0488518    0,000407554

    296    788,1518026    0,000426014

    259    676,2037169    0,000234411

    222    566,10891    -4,43614E-05

    185    457,7811202    -5,16695E-05

    148    351,1404824    -0,000404797

    111    246,1173973    -0,000810097

    74    142,6616896    8,24519E-07

    37    40,78829566    4,4642E-07


    В данном случае выбрано dV=37

    Расчет V=f(N) ведется сверху вниз. Предыдущее значение N1 и V1

    известны, N2 (902,04..) подбирается из условия


         37-(-0,0001*0,5*sqrt(N1*N2)+0,3701)*(N1-N2)=0


    Итого:  V=0,3408*N+26,6



  • Анатолий Ветров — заказчик проекта

    не понял, у вас вышла линейная характетистика? Это неправильно. Т.е. в частном случае она может быть линейной, но как правило нелинейна.  Я бы понял, если бы в результате получился набор линейных функций для разных интервалов.

  • А что тут понимать? Проводите прямую линию, которую я указал, на вашем реальном графике (который, кстати, "почти" линейный). Если есть совпадение, хорошо.

    Если нет, то необходимо иметь приличный набор данных.

  • Анатолий Ветров — заказчик проекта

    ну на приведенном примере ваша методика сработает, правда с приличной ошибкой. а вот на тех емкостях что я привел выше - прямой быть не может, мне надо общее решение а не частное. Искать решение в виде прямой не годится.


Заказчик
Проект опубликован
27 апреля 2017
111 просмотров