В данной заметке, мы, забавы ради, построим в системе Sage полиномы Цернике, которые даны в виде функций в полярных координатах.
Форма и порядок полиномов Цернике (взято из книги Л.И. Балашевича Клиническая корнеотопография и аберрометрия):
По данной таблице можно определить номер полинома:
И формулы разных полиномов в полярной системе координат:
Использовать мы будем облачную версию Sage, создаем аккаунт, заходим и создаем новый проект.
Для начала декларируем переменные (просто копируйте в Ваш проект строка за строкой):
r, theta, z = var('r theta z')
Затем создаем трансформацию для полярных координат:
T = Cylindrical('height', ['radius', 'azimuth'])
T.transform(radius=r, azimuth=theta, height=z)
Строим 1й наш график:
plot3d(2 * r * sin (theta), (r, 0, 1), (theta, 0, 2*pi), transformation=T)
Нажимаем на Run, смотрим что получилось:
Построим полином №3 (астигматизм), чтобы график был менее растянутым, r возьмем от 0 до 0.5:
plot3d(sqrt(6) * r^2 * sin (2*theta), (r, 0, 0.5), (theta, 0, 2*pi), transformation=T)
И, например, полином №7 (кома):
plot3d(sqrt( 8 ) * (3 * r^3 - 2 * r) * sin (theta), (r, 0, 1), (theta, 0, 2*pi), transformation=T)
В целом, ничего сложного. Самое главное, что ничего для этого устанавливать не нужно, все можно делать онлайн.