Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

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

project expired


Есть входная величина 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 days999 ₴
    Victor De
     209   0  1

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

    Ukraine Krivoi Rog | 29 April 2017 |
  • Вычисляются f(Ni) по известным приращениям V и N. Значения V вычисляются по 

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

  • Анатолий Ветров — project author
    Complain | 27 April 2017 |

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

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

  • Анатолий Ветров — project author
    Complain | 27 April 2017 |

    Известные пары :   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

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

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

    а не dV.


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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

  • blob

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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


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


    real+table.png

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

    blob

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

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

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

    Ждите.

  • Victor De
    Complain | 28 April 2017 |

    Прошу мене вибачити, що втручаюся. Я би діяв з кінця: спочатку я розробив (би) модель. Краще декілька моделей. Наприклад %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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

  • Victor De
    Complain | 28 April 2017 |

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

    emk1.pngemk2.png

  • Victor De
    Complain | 28 April 2017 |

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

  • 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



  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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

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

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

  • Анатолий Ветров — project author
    Complain | 28 April 2017 |

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