function slpAy = slope36y(scancor,znknum); num=size(scancor); for i=1:num(1) x=scancor(i,1); y=scancor(i,2); [dzdx,dzdy] =zernslopestandard36(znknum,x,y); slpAy(i,:) = dzdy; end return function [dzdx,dzdy] = zernslopestandard36(zNum,x,y) % computes zernikes and their slopes % x and y are normalized % for real values: % if z and D are in m % dzdy/(D/2) will be radians % these coefficients have same dimension as D r2 = x*x + y*y; % z = 0; dzdx = 0; dzdy = 0; % piston % z = z + ZC(1,1)*1; dzdx(1) = 0; dzdy(1) = 0; % tilt in x dzdx(2) = sqrt(4)*1; dzdy(2) = 0; % tilt in y dzdx(3) = 0; dzdy(3) = sqrt(4)*1; % Power dzdx(4) = sqrt(3)*4*x; dzdy(4) = sqrt(3)*4*y; % sin Astig % z = z + ZC(1,5)*(x*x - y*y); dzdx(5)=sqrt(6)*(2*y); dzdy(5)=sqrt(6)*(2*x); % cos Astig % z = z + ZC(1,6)*(2*x*y); dzdx(6)= sqrt(6)*(2*x); dzdy(6)= sqrt(6)*(-2*y); % sin Coma dzdx(8)= sqrt(8)*(6*x*y); dzdy(8)= sqrt(8)*(9*y*y + 3*x*x - 2); % cos Coma dzdx(7)=sqrt(8)*(9*x*x + 3*y*y - 2); dzdy(7)=sqrt(8)*(6*x*y); % Sin 3 Theta % z = z + ZC(1,11)*(3*x*x*y - y*y*y); dzdx(9)=sqrt(8)*(6*x*y); dzdy(9)=sqrt(8)*(3*x*x - 3*y*y); % Cos 3 Theta % z = z + ZC(1,10)*(x*x*x - 3*x*y*y); dzdx(10)= sqrt(8)*(3*x*x - 3*y*y); dzdy(10)= sqrt(8)*(-6*x*y); % Spherical % z = z + ZC(1,9)*(6*r2*r2 - 6*r2 +1); dzdx(11)= sqrt(5)*(24*r2*x - 12*x); dzdy(11)= sqrt(5)*(24*r2*y - 12*y); %z=sqrt(10)*(4x^4-4y^4-3x^2+3y^2) dzdx(12)= sqrt(10)*(16*x^3 - 6*x); dzdy(12)= sqrt(10)*(-16*y^3+6*y); %z=sqrt(10)*(8x^3y+8xy^3-6xy) dzdx(13)= sqrt(10)*(24*x^2*y + 8*y^3-6*y); dzdy(13)= sqrt(10)*(8*x^3+24*x*y^2-6*x); % z = z + ZC(1,12)*(x^4-y^4-4x^4y^2-4x^2y^4); dzdx(14)= sqrt(10)*(4*x^3 - 12*x*y^2); dzdy(14)= sqrt(10)*(4*y^3 - 12*x^2*y); %z=sqrt(10)*(4x^3y-4xy^3) dzdx(15)= sqrt(10)*(12*x^2*y -4*y^3); dzdy(15)= sqrt(10)*(4*x^3-12*x*y^2); %z=sqrt(12)*(10*x^5+10*y^4*x+20*x^3*y^2-12*x^3-12*y^2*x+3*x) dzdx(16)=sqrt(12)*(50*x^4+10*y^4+60*x^2*y^2-36*x^2-12*y^2+3); dzdy(16)=sqrt(12)*(40*y^3*x+40*x^3*y-24*y*x); %z=sqrt(12)*(10*x^4*y+10*y^5+20*x^2*y^3-12*x^2*y-12*y^3+3*y) dzdx(17)=sqrt(12)*(40*x^3*y+40*x*y^3-24*x*y); dzdy(17)=sqrt(12)*(10*x^4+50*y^4+60*x^2*y^2-12*x^2-36*y^2+3); dzdx(18)=sqrt(12)*(-12*x^2 + 25*x^4 + 12*y^2 - 30*x^2*y^2 - 15*y^4); dzdy(18)=sqrt(12)*(24*x*y - 20*x^3*y - 60*x*y^3); dzdx(19)=sqrt(12)*(-24*x*y + 60*x^3*y + 20*x*y^3); dzdy(19)=sqrt(12)*(-12*x^2 + 15*x^4 + 12*y^2 + 30*x^2*y^2 - 25*y^4); dzdx(20)=sqrt(12)*(5*x^4 - 30*x^2*y^2 + 5*y^4); dzdy(20)=sqrt(12)*(-20*x^3*y + 20*x*y^3); dzdx(21)=sqrt(12)*(20*x^3*y - 20*x*y^3); dzdy(21)=sqrt(12)*(5*x^4 - 30*x^2*y^2 + 5*y^4); dzdx(22)=sqrt(7)*(24*x - 120*x^3 + 120*x^5 - 120*x*y^2 + 240*x^3*y^2 + 120*x*y^4); dzdy(22)=sqrt(7)*(24*y - 120*x^2*y + 120*x^4*y - 120*y^3 +240*x^2*y^3 + 120*y^5); dzdx(23)=sqrt(14)*(12*y - 120*x^2*y + 150*x^4*y - 40*y^3 +180*x^2*y^3 + 30*y^5); dzdy(23)=sqrt(14)*(12*x - 40*x^3 + 30*x^5 - 120*x*y^2 + 180*x^3*y^2 +150*x*y^4); dzdx(24)=sqrt(14)*(12*x - 80*x^3 + 90*x^5 + 60*x^3*y^2 - 30*x*y^4); dzdy(24)=sqrt(14)*(-12*y + 30*x^4*y + 80*y^3 - 60*x^2*y^3 - 90*y^5); dzdx(25)=sqrt(14)*(-60*x^2*y + 120*x^4*y + 20*y^3 - 24*y^5); dzdy(25)=sqrt(14)*(-20*x^3 + 24*x^5 + 60*x*y^2 - 120*x*y^4); dzdx(26)=sqrt(14)*(-20*x^3 + 36*x^5 + 60*x*y^2 - 120*x^3*y^2 - 60*x*y^4); dzdy(26)=sqrt(14)*(60*x^2*y - 60*x^4*y - 20*y^3 - 120*x^2*y^3 + 36*y^5); dzdx(27)=sqrt(14)*(30*x^4*y - 60*x^2*y^3 + 6*y^5);; dzdy(27)=sqrt(14)*(6*x^5 - 60*x^3*y^2 + 30*x*y^4); dzdx(28)=sqrt(14)*(6*x^5 - 60*x^3*y^2 + 30*x*y^4); dzdy(28)=sqrt(14)*(-30*x^4*y + 60*x^2*y^3 - 6*y^5); dzdx(29)=sqrt(16)*(60*x*y - 240*x^3*y + 210*x^5*y - 240*x*y^3 +420*x^3*y^3 + 210*x*y^5); dzdy(29)=sqrt(16)*(-4+30*x^2 - 60*x^4 + 35*x^6 + 90*y^2 - 360*x^2*y^2+315*x^4*y^2 - 300*y^4 + 525*x^2*y^4 + 245*y^6); dzdx(30)=sqrt(16)*(-4+90*x^2 -300*x^4 + 245*x^6+30*y^2-360*x^2*y^2+525*x^4*y^2-60*y^4+315*x^2*y^4+35*y^6); dzdy(30)=sqrt(16)*(60*x*y-240*x^3*y+210*x^5*y-240*x*y^3+420*x^3*y^3+210*x*y^5); dzdx(31)=sqrt(16)*(60*x*y-360*x^3*y+378*x^5*y-120*x*y^3+420*x^3*y^3+42*x*y^5); dzdy(31)=sqrt(16)*(30*x^2-90*x^4+63*x^6-30*y^2-180*x^2*y^2+315*x^4*y^2+150*y^4+105*x^2*y^4-147*y^6); dzdx(32)=sqrt(16)*(30*x^2-150*x^4+147*x^6-30*y^2+180*x^2*y^2-105*x^4*y^2+90*y^4-315*x^2*y^4-63*y^6); dzdy(32)=sqrt(16)*(-60*x*y+120*x^3*y-42*x^5*y+360*x*y^3-420*x^3*y^3-378*x*y^5); dzdx(33)=sqrt(16)*(-120*x^3*y+210*x^5*y+120*x*y^3-140*x^3*y^3-126*x*y^5); dzdy(33)=sqrt(16)*(-30*x^4+35*x^6+180*x^2*y^2-105*x^4*y^2-30*y^4-315*x^2*y^4+49*y^6); dzdx(34)=sqrt(16)*(-30*x^4+49*x^6+180*x^2*y^2-315*x^4*y^2-30*y^4-105*x^2*y^4+35*y^6); dzdy(34)=sqrt(16)*(120*x^3*y-126*x^5*y-120*x*y^3-140*x^3*y^3+210*x*y^5); dzdx(35)=sqrt(16)*(42*x^5*y-140*x^3*y^3+42*x*y^5); dzdy(35)=sqrt(16)*(7*x^6-105*x^4*y^2+105*x^2*y^4-7*y^6); dzdx(36)=sqrt(16)*(7*x^6-105*x^4*y^2+105*x^2*y^4-7*y^6); dzdy(36)=sqrt(16)*(-42*x^5*y+140*x^3*y^3-42*x*y^5); dzdx(37)=sqrt(9)*(-40*x+360*x^3- 840*x^5+560*x^7+360*x*y^2-1680*x^3*y^2+1680*x^5*y^2-840*x*y^4+1680*x^3*y^4+560*x*y^6); dzdy(37)=sqrt(9)*(-40*y+360*x^2*y-840*x^4*y+560*x^6*y+360*y^3-1680*x^2*y^3+1680*x^4*y^3-840*y^5+1680*x^2*y^5 + 560*y^7); % %z56 % dzdx(38)=sqrt(11)*(60*x-840*x^3+3360*x^5-5040*x^7+2520*x^9-840*x*y^2+6720*x^3*y^2-15120*x^5*y^2+10080*x^7*y^2+3360*x*y^4-15120*x^3*y^4+15120*x^5*y^4-... % 5040*x*y^6+10080*x^3*y^6+2520*x*y^8); % dzdy(38)=sqrt(11)*(60*y-840*x^2*y+3360*x^4*y-5040*x^6*y+2520*x^8*y-840*y^3+6720*x^2*y^3-15120*x^4*y^3+... % 10080*x^6*y^3+3360*y^5-15120*x^2*y^5+15120*x^4*y^5-5040*y^7+10080*x^2*y^7+2520*y^9); % %79 % dzdx(39)=sqrt(13)*(-84*x+1680*x^3-10080*x^5+25200*x^7-27720*x^9+11088*x^11+... % 1680*x*y^2-20160*x^3*y^2+75600*x^5*y^2-110880*x^7*y^2+55440*x^9*y^2-10080*x*y^4+75600*x^3*y^4-... % 166320*x^5*y^4+110880*x^7*y^4+25200*x*y^6-110880*x^3*y^6+110880*x^5*y^6-27720*x*y^8+... % 55440*x^3*y^8+11088*x*y^10); % dzdy(39)=sqrt(13)*(-84*y+1680*x^2*y-10080*x^4*y+25200*x^6*y-27720*x^8*y+11088*x^10*y+1680*y^3-... % 20160*x^2*y^3+75600*x^4*y^3-110880*x^6*y^3+55440*x^8*y^3-10080*y^5+75600*x^2*y^5-... % 166320*x^4*y^5+110880*x^6*y^5+25200*y^7-110880*x^2*y^7+110880*x^4*y^7-... % 27720*y^9+55440*x^2*y^9+11088*y^11); % % %106 % dzdx(40)=sqrt(15)*(112*x-3024*x^3+25200*x^5-92400*x^7+166320*x^9-144144*x^11+48048*x^13-3024*x*y^2+... % 50400*x^3*y^2-277200*x^5*y^2+665280*x^7*y^2-720720*x^9*y^2+288288*x^11*y^2+25200*x*y^4-... % 277200*x^3*y^4+997920*x^5*y^4-1441440*x^7*y^4+720720*x^9*y^4-92400*x*y^6+665280*x^3*y^6-... % 1441440*x^5*y^6+960960*x^7*y^6+166320*x*y^8-720720*x^3*y^8+720720*x^5*y^8-144144*x*y^10+... % 288288*x^3*y^10+48048*x*y^12); % dzdy(40)=sqrt(15)*(112*y-3024*x^2*y + 25200*x^4*y - 92400*x^6*y + 166320*x^8*y -... % 144144*x^10*y + 48048*x^12*y - 3024*y^3 + 50400*x^2*y^3 - 277200*x^4*y^3 + 665280*x^6*y^3 -... % 720720*x^8*y^3 + 288288*x^10*y^3 + 25200*y^5 - 277200*x^2*y^5 + 997920*x^4*y^5 -... % 1441440*x^6*y^5 + 720720*x^8*y^5 - 92400*y^7 + 665280*x^2*y^7 - 1441440*x^4*y^7 + 960960*x^6*y^7 +... % 166320*y^9 -720720*x^2*y^9 + 720720*x^4*y^9 - 144144*y^11 + 288288*x^2*y^11 + 48048*y^13); % % %137 % dzdx(41)=sqrt(17)*(-144*x+5040*x^3-55440*x^5+277200*x^7-720720*x^9+1009008*x^11-720720*x^13+... % 205920*x^15+5040*x*y^2-110880*x^3*y^2+831600*x^5*y^2-2882880*x^7*y^2+5045040*x^9*y^2-... % 4324320*x^11*y^2+1441440*x^13*y^2-55440*x*y^4+831600*x^3*y^4-4324320*x^5*y^4+10090080*x^7*y^4-... % 10810800*x^9*y^4+4324320*x^11*y^4+277200*x*y^6-2882880*x^3*y^6+10090080*x^5*y^6-... % 14414400*x^7*y^6+7207200*x^9*y^6-720720*x*y^8+5045040*x^3*y^8-10810800*x^5*y^8+7207200*x^7*y^8+... % 1009008*x*y^10-4324320*x^3*y^10+4324320*x^5*y^10-720720*x*y^12+1441440*x^3*y^12+205920*x*y^14); % dzdy(41)=sqrt(17)*(-144*y+5040*x^2*y-55440*x^4*y+277200*x^6*y-720720*x^8*y+1009008*x^10*y-... % 720720*x^12*y+205920*x^14*y+5040*y^3-110880*x^2*y^3+831600*x^4*y^3-2882880*x^6*y^3+... % 5045040*x^8*y^3-4324320*x^10*y^3+1441440*x^12*y^3-55440*y^5+831600*x^2*y^5-4324320*x^4*y^5+... % 10090080*x^6*y^5-10810800*x^8*y^5+4324320*x^10*y^5+277200*y^7-2882880*x^2*y^7+... % 10090080*x^4*y^7-14414400*x^6*y^7+7207200*x^8*y^7-720720*y^9+5045040*x^2*y^9-10810800*x^4*y^9+... % 7207200*x^6*y^9+1009008*y^11-4324320*x^2*y^11+4324320*x^4*y^11-720720*y^13+1441440*x^2*y^13+... % 205920*y^15); % %172 % dzdx(42)=sqrt(19)*(180*x-7920*x^3+110880*x^5-720720*x^7+2522520*x^9-5045040*x^11+... % 5765760*x^13-3500640*x^15+875160*x^17-7920*x*y^2+221760*x^3*y^2-2162160*x^5*y^2+... % 10090080*x^7*y^2-25225200*x^9*y^2+34594560*x^11*y^2-24504480*x^13*y^2+7001280*x^15*y^2+... % 110880*x*y^4-2162160*x^3*y^4+15135120*x^5*y^4-50450400*x^7*y^4+86486400*x^9*y^4-... % 73513440*x^11*y^4+24504480*x^13*y^4-720720*x*y^6+10090080*x^3*y^6-50450400*x^5*y^6+... % 115315200*x^7*y^6-122522400*x^9*y^6+49008960*x^11*y^6+2522520*x*y^8-25225200*x^3*y^8+... % 86486400*x^5*y^8-122522400*x^7*y^8+61261200*x^9*y^8-5045040*x*y^10+34594560*x^3*y^10-... % 73513440*x^5*y^10+49008960*x^7*y^10+5765760*x*y^12-24504480*x^3*y^12+24504480*x^5*y^12-... % 3500640*x*y^14+7001280*x^3*y^14+875160*x*y^16); % % dzdy(42)=sqrt(19)*(180*y-7920*x^2*y + 110880*x^4*y - 720720*x^6*y + 2522520*x^8*y -... % 5045040*x^10*y + 5765760*x^12*y - 3500640*x^14*y + 875160*x^16*y - 7920*y^3 +... % 221760*x^2*y^3 - 2162160*x^4*y^3 + 10090080*x^6*y^3- 25225200*x^8*y^3 + 34594560*x^10*y^3 -... % 24504480*x^12*y^3 + 7001280*x^14*y^3 + 110880*y^5 -2162160*x^2*y^5 + 15135120*x^4*y^5 -... % 50450400*x^6*y^5 + 86486400*x^8*y^5 - 73513440*x^10*y^5 + 24504480*x^12*y^5 - 720720*y^7 +... % 10090080*x^2*y^7 - 50450400*x^4*y^7 + 115315200*x^6*y^7 - 122522400*x^8*y^7 + 49008960*x^10*y^7 +... % 2522520*y^9 - 25225200*x^2*y^9 + 86486400*x^4*y^9 - 122522400*x^6*y^9 + 61261200*x^8*y^9 -... % 5045040*y^11 + 34594560*x^2*y^11 - 73513440*x^4*y^11 + 49008960*x^6*y^11 + 5765760*y^13 -... % 24504480*x^2*y^13 + 24504480*x^4*y^13 - 3500640*y^15 + 7001280*x^2*y^15 + 875160*y^17); % %211 % dzdx(43)=sqrt(21)*(-220*x + 11880*x^3 - 205920*x^5 + 1681680*x^7 -7567560*x^9 +... % 20180160*x^11 - 32672640*x^13 + 31505760*x^15 - 16628040*x^17 + 3695120*x^19 + 11880*x*y^2 -... % 411840*x^3*y^2 + 5045040*x^5*y^2 - 30270240*x^7*y^2 + 100900800*x^9*y^2 - 196035840*x^11*y^2 +... % 220540320*x^13*y^2 - 133024320*x^15*y^2 + 33256080*x^17*y^2 - 205920*x*y^4 + 5045040*x^3*y^4 -... % 45405360*x^5*y^4 + 201801600*x^7*y^4 - 490089600*x^9*y^4 + 661620960*x^11*y^4 - 465585120*x^13*y^4 +... % 133024320*x^15*y^4 + 1681680*x*y^6 - 30270240*x^3*y^6 + 201801600*x^5*y^6 - 653452800*x^7*y^6 +... % 1102701600*x^9*y^6 - 931170240*x^11*y^6 +310390080*x^13*y^6 - 7567560*x*y^8 +100900800*x^3*y^8 -... % 490089600*x^5*y^8 + 1102701600*x^7*y^8 - 1163962800*x^9*y^8 + 465585120*x^11*y^8 + 20180160*x*y^10 -... % 196035840*x^3*y^10 + 661620960*x^5*y^10 - 931170240*x^7*y^10 + 465585120*x^9*y^10 - 32672640*x*y^12 +... % 220540320*x^3*y^12 - 465585120*x^5*y^12 + 310390080*x^7*y^12 + 31505760*x*y^14 - 133024320*x^3*y^14 +... % 133024320*x^5*y^14 - 16628040*x*y^16 + 33256080*x^3*y^16 + 3695120*x*y^18); % % dzdy(43)=sqrt(21)*(-220*y + 11880*x^2*y - 205920*x^4*y + 1681680*x^6*y - 7567560*x^8*y +... % 20180160*x^10*y - 32672640*x^12*y + 31505760*x^14*y - 16628040*x^16*y + 3695120*x^18*y +... % 11880*y^3 - 411840*x^2*y^3 + 5045040*x^4*y^3 - 30270240*x^6*y^3 + 100900800*x^8*y^3 -... % 196035840*x^10*y^3 + 220540320*x^12*y^3 - 133024320*x^14*y^3 + 33256080*x^16*y^3 -... % 205920*y^5 +5045040*x^2*y^5 - 45405360*x^4*y^5 + 201801600*x^6*y^5 -490089600*x^8*y^5 +... % 661620960*x^10*y^5 - 465585120*x^12*y^5 + 133024320*x^14*y^5 + 1681680*y^7 -... % 30270240*x^2*y^7 + 201801600*x^4*y^7 -653452800*x^6*y^7 + 1102701600*x^8*y^7 -... % 931170240*x^10*y^7 + 310390080*x^12*y^7 - 7567560*y^9 + 100900800*x^2*y^9 -... % 490089600*x^4*y^9 + 1102701600*x^6*y^9 - 1163962800*x^8*y^9 + 465585120*x^10*y^9 +... % 20180160*y^11 - 196035840*x^2*y^11 + 661620960*x^4*y^11 - 931170240*x^6*y^11 +... % 465585120*x^8*y^11 - 32672640*y^13 + 220540320*x^2*y^13 - 465585120*x^4*y^13 +... % 310390080*x^6*y^13 + 31505760*y^15 -133024320*x^2*y^15 + 133024320*x^4*y^15 -... % 16628040*y^17 + 33256080*x^2*y^17 + 3695120*y^19); % % % % % dzdx=dzdx(1:zNum); dzdy=dzdy(1:zNum); return