Read opd data from file:
>> opd = textread('doublet_opd.txt'); >> y = linspace(1,0,11);
opd = c1 y2 + c2 y4 + c3 y6 + c4 y8 + c5 y10 + c6 y12
>> taylorfit(y,opd) ans = 10.3373 0 0 0 0 0 6.3176 5.1472 0 0 0 0 -1.3602 30.8652 -18.7387 0 0 0 0.2181 20.9325 -1.2146 -9.2130 0 0 -0.0298 23.4728 -9.2283 0.6461 -4.1397 0 0.0034 22.9609 -6.6810 -4.8325 1.1568 -1.8864
function table = taylorfit(y,opd) yfit = [ y.^2 y.^4 y.^6 y.^8 y.^10 y.^12]; sz=size(yfit); for k=1:sz(2) c = yfit(:,1:k)\opd; table(k,1:k)=c'; end
>> zernfit(y,opd) ans = 3.2729 0 0 0 0 0 0 4.9916 5.7289 0 0 0 0 0 4.8605 5.8772 0.6230 0 0 0 0 4.9265 6.3179 0.4769 -0.9602 0 0 0 4.9403 6.3441 0.5526 -0.9805 -0.1337 0 0 4.9416 6.3488 0.5577 -0.9718 -0.1385 -0.0166 0 4.9419 6.3495 0.5587 -0.9710 -0.1380 -0.0179 -0.0021
function table = zernfit(y,opd) yfit = zern(y); for k=1:7 c = yfit(:,1:k)\opd; table(k,1:k)=c'; end
>> chebyfit(y,opd); ans = 3.2729 0 0 0 0 0 0 4.9916 5.7289 0 0 0 0 0 5.0163 5.8772 0.4673 0 0 0 0 5.0457 5.9579 0.3576 -0.6001 0 0 0 5.0596 5.9764 0.3727 -0.6128 -0.0731 0 0 5.0616 5.9805 0.3750 -0.6119 -0.0757 -0.0082 0 5.0620 5.9812 0.3755 -0.6118 -0.0760 -0.0088 -0.0009
function table = chebyfit(y,opd) cf = cheb(y); yfit = cf(:,1:2:13); for k=1:7 c = yfit(:,1:k)\opd; table(k,1:k)=c'; end
Maintained by John Loomis, last updated 22 Jan 2003