k0 = 2 * pi ./ (lambda0);
term2 = - exp(1i * pi/3) * xl * (k1*a)^(1/3);
term4 = - ((xl^3 + 10) / 1400) ...
term5 = - exp(1i * pi/3) ...
* (281*xl^4 + 10440*xl) / 4536000 ...
term6 = - exp(1i * 2*pi/3) ...
* (73769*xl^5 + 6624900*xl^2) / 10478160000 ...
term7 = ( (93617*xl^6 + 16495400*xl^3 - 1744600) / 100900800000 ) ...
nu_k1a = term1 + term2 + term3+term4+term5+term6+term7+term8;
log( ( nu_k1a + sqrt(nu_k1a^2 - k1a^2 ) ) / k1a ) ...
- sqrt( (nu_k1a^2 - k1a^2) / (nu_k1a^2) );
zeta_k1a = ( (3/2)^(2/3) ) * ( bracketTerm )^(2/3);
B0_zeta_k1a = -5/(48 * zeta_k1a^2) ...
+ (1 / (24 * sqrt(zeta_k1a))) * ...
( (5 * nu_k1a^3) / ((nu_k1a^2 - (k1*a)^2)^(3/2)) ...
- (3 * nu_k1a) / ((nu_k1a^2 - (k1*a)^2)^(1/2)) );
zArg = exp(1i * (2*pi/3)) * (nu_k1a^(2/3)) * zeta_k1a;
AiPrimeVal = airy(1, zArg);
prefactor = 2*sqrt(2) * ...
( (nu_k1a^2 * zeta_k1a) / (nu_k1a^2 - (k1a)^2 ) )^(1/4);
term1 = exp(-1i * pi/3) ...
term2 = exp(1i * pi/3) ...
Term3 = 1 + 1/(nu_k1a^2);
H_nu_k1a_approx = prefactor * bracket * Term3;
disp('Asymptotic Hankel H_nu^(1)(k1*a) = ');
Asymptotic Hankel H_nu^(1)(k1*a) =
Term3 = 1 + 1/(nu_k1a^2);
* ( (nu_k1a^2 * zeta_k1a) ./ (nu_k1a^2 - (k1.*a).^2 ) ).^(1/4) ) ...
exp(-1i*pi/3)*AiVal * nu_k1a^(-1/3) ...
+ exp( 1i*pi/3)*AiPrimeVal * nu_k1a^(-5/3) * B0_zeta_k1a ...
H_prime_approx = (H_plus - H_minus) / (2*da);
disp('Approx derivative d/da [H_nu^(1)(k1*a)] at a :');
Approx derivative d/da [H_nu^(1)(k1*a)] at a :