Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Ортонормированные на кольце полиномы.

Итак, сегодня я таки реализовал это.
Получилось хреново: то ли эти полиномы очень чувствительны к неоднородности распределения точек, то ли просто хреновые, то ли мое рукожопие сказывается, но получилось даже хуже, чем декомпозиция обычными Церниками.

Для сравнения алгоритмов я делал следующее: волновой фронт "собирался" из полиномов с коэффициентами
double IdxsOri[] = {2., // смещение, 0
	1.1, -0.8, // наклон, 1-2
	5.5, -3.2, 0., // астигматизм, дефокус, аст., 3-5
	6.8, 5.5, 0., 0.,// трилистник, кома, 6-9
	0., 0., 3.3, 1.4, 8.}; // 10-14

В первых двух случаях "сбор" выполнялся по обычным полиномам Цернике, а в третьем — по кольцевым (т.к. преобразование коэффициентов кольцевых полиномов в обычные дело почти что невозможное).
Точки распределялись радиально, вот так:
	int Sz = 256;
	double dTh = D2R(360./32);
	polar *P = MALLOC(polar, Sz), *Pptr = P;
	for(i = 0; i < 8; i++){
		double RR = (double)i * 0.07 + 0.5;
		double Th = 0.;
		for(j = 0; j < 32; j++, Pptr++, Th += dTh){
			Pptr->r = RR;
			Pptr->theta = Th;
		}
	}

Декомпозицию я делал для nmax=7. Буду приводить полученные коэффициенты, погрешности восстановления волнового фронта и погрешности восстановления коэффициентов. И вот что вышло.
1. Декомпозиция обычными полиномами:
0.255, 1.410, -0.800, 5.500, -0.350, 0.063, 6.800, 5.482, 0.000, 0.000, 0.000, 0.000, 1.404, 1.397, 8.000, 0.000, 0.000, 0.009, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 1.209, -0.009, 0.000, 0.000, 0.000, 0.000, 0.000, -0.106, 
Std: 0.393473, max abs diff: 1.50205

(Индексы) Std: 0.98986, max abs diff: 2.84992


2. Подбор обычных полиномов методом наименьших квадратов:
0.639, 2.604, -0.890, 6.370, -0.035, 0.228, 7.954, 4.857, 0.094, 0.000, 0.000, -0.919, 1.709, 1.383, 8.601, 0.000, -1.184, -0.639, -0.046, 0.000, 0.000, 0.000, 0.000, 0.471, 0.000, -0.309, -1.267, 0.000, 0.000, 0.000, 0.570, 0.308, 0.027, 
Std: 5.11381, max abs diff: 6.52512

(Индексы) Std: 1.32304, max abs diff: 3.16545


3. Декомпозиция кольцевыми полиномами:
2.825, -0.889, -0.800, 5.500, -3.479, -0.613, 6.800, 5.039, 0.000, 0.000, 0.000, 0.000, 2.876, 1.311, 8.000, 0.000, 0.000, 0.338, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.140, 0.061, 0.000, 0.000, 0.000, 0.000, 0.000, 0.213, 
Std: 0.925624, max abs diff: 2.99611

(Индексы) Std: 0.325278, max abs diff: 1.98926


По набору единичных коэффициентов кольцевые полиномы давали еще более худший результат по сравнению с обычными.

ИТОГ. Или я — идиот… Немного еще посижу завтра над кольцевыми (вдруг я что-то напутал). Если все верно, то получается, я зря потратил время. Но, как говорится, хреновый результат — тоже результат.

Надо будет до отпуска статейку написать в какой-нибудь журнал по моей тематике.
Tags: аппроксимация, волновой фронт, гартманнограмма, рукожопие, цернике
Subscribe

  • Опять Подорванка смыла мост

    В четверг лило настолько, что, похоже, опять на подорванке забилась стремнина бревнами, а потом внезапно это все прорвало. МЧСовсцы перетаскивали…

  • Аж коробит…

    Уже который раз вижу (даже в прессе) выражение: "ставить прививку". Это что за странное такое словоблудие? Либо эпохи царской России, либо даже…

  • Упаковочка

    Получил сегодня пару посылок с алиэкспресса. Одна из них была с новым для меня способом доставки (на посылке не указывался адрес, а лишь "до…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 0 comments