Страницы: 1
RSS
Апроксимация полиномом функции двух переменных, z=F(x,y)
 
Всех приветствую!
Столкнулся с ситуацией (видимо из-за недостатка количества исходных данных, а также кривизны рук), в которой у меня не получается найти приемлемого качества полиномиальную зависимость, проходящую через известные точки функции z=F(x,y).
В приведённом примере указаны исходные данные (столбцы A, B и C - прочее можно игнорировать), для которых мне нужно найти зависимость вида
F(x,y) = Amn*x^m*y^n+A(m-1)n*x^(m-1)*y^n+...+A00*x^0*y^0 и определить такие коэффициенты Aij (где i=0...m и j=0...n), чтобы расхождение между значениями z и F(x,y) для известных точек {x,y,z} оказалось минимальным
Известный мне способ определения таких коэффициентов не привёл к сколь-нибудь приемлемому результату. Могли бы Вы предложить какие-нибудь альтернативы ему?
 
Я недавно решал подобную задачу несколькими способами. Может пойдет вам.
https://baguzin.ru/wp/?p=24879 См. главу 13.
 
К сожалению, я не могу получить доступ к этому сайту из-за ограничений своей локальной сети. Если Вас не затруднит, прошу разместить свое решение на этом ресурсе.
 
Прикрепил.
 
IKorСочувствую, больно у вас разряженная матрица. У меня по работе четыре аргумента не редкость, а подчас и больше бывает... Но матрицы не разряжены. И от полиноминальной апроксимации я давно отказался - только в частных случаях применяю ибо вилами по воде писано даже для одного аргумента.
Как я делаю описывал тут - https://cloud.mail.ru/public/xFki/KyuKuhX1B

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

УПД
Я бы попробовал разбить на срезы (как у вас и сделано), сделать интерполяцию по каждому участку отдельно, и потом уже делать поперечную интерполяцию. Как то так...

Если интересно - могу завтра показать что получится.
Изменено: tutochkin - 07.04.2022 21:46:34
 
Цитата
написал:
больно у вас разряженная матрица.
Сижу и наполняю матрицу данными... приходится действовать вручную - поэтому получается не быстро...
Посмотрим, что получится из аппроксимации полиномом на более подробном материале.

S_bag, спасибо за присланные материалы. Правильно ли я понимаю, что в них рассматривается вариант аппроксимации зависимости функции с одной переменной? Или я чего-то не увидел?
 
IKor, я бы делал вот так. На первом листе нет одиноких данных, по ним строил сетку. Второй лист с одинокими данными.
 
Спасибо, tutochkin!
Я не слишком силён в написании макросов - поэтому прошу поправить меня, если я ошибаюсь.
Насколько я понимаю, для решения этой конкретной задачи потребовалось разбить массив известных значений на три десятка участков, для каждого из которых вручную определить граничные значения по обоим переменным и самой функции, а затем задействовать внешнюю функцию кусочной интерполяции для возврата результата вычислений по конкретному сочетанию двух переменных.
 
IKor, ну когда то я делал это вручную, да...
https://youtu.be/AXnTdHlmn34
Страницы: 1
Наверх