||
考虑整函数 f(z) = -exp(4iz) + (2iaz-1)^2,其中a为常数。可以证明,其存在无数个零点。利用非常粗糙的数值积分,结合幅角原理,我们可以确定其在以原点为中心半径为R的圆内的零点的数目。
右边N为零点数,P为极点数。对整函数,P=0。
这个问题在量子力学里确定一个系统所支持的共振态的数目时会遇到。
% determining the number of zeros of an entire function in a circle
% by the argument principle.
clear all; close all; clc;
a = 0.1 ;
R = 129;
N = 3000;
theta = 2*pi*(0:N)/N;
z = R*exp(i*theta);
I = 0;
for s = 0:(N-1)
dz = z(s+2) - z(s+1);
zz = (z(s+2) + z(s+1))/2;
I = I + dz * (-4*i*exp(4*i*zz) + 4*i*a*(2*i*a*zz - 1))/ (-exp(4*i*zz)+ (2*i*a*zz - 1)^2);
end
num_zeros = I/ (2*pi*i)
最后结果为
num_zeros =
1.650000616150656e+02 - 1.894735385435221e-15i
所以我们知道在半径为129的圆内,存在165个零点。
思考题:有没有同学能够给一个算法,把这些零点一个个找出来?目前我们只知道它们的数目,不知道它们 位置。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 09:27
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社