如何调整Gnuplot复变函数绘图代码查看(7,0)即7+0i处函数行为
你当前使用的代码用于绘制复变函数 $f(z)=\frac{1}{z-7}$ 的相位彩色图,该函数的奇点就是你需要观测的 $7+0i$ 点,属于一阶极点,只需要调整坐标轴范围到包含该点即可查看对应行为特征,具体修改方案如下:
核心修改点
- 替换原代码中的x轴范围配置:将
set xrange [-6:6] noreverse nowriteback修改为覆盖7的区间,如果要局部放大奇点看细节可设置为set xrange [6:8] noreverse nowriteback,如果要兼顾原有观测区域同时覆盖奇点可设置为set xrange [-3:10] noreverse nowriteback - 同步调整y轴范围:如果选择局部放大奇点,建议同步将
set yrange [-6:6] noreverse nowriteback修改为set yrange [-1:1] noreverse nowriteback,可以更清晰看到极点附近的相位旋转特征 - (可选优化)局部放大后如果觉得绘制精度不够,可以将
set isosamples 500, 500的数值调高到700~1000,获得更平滑的图像 - (可选优化)极点附近函数模值会趋向无穷大,为了避免数值溢出导致的调色异常,可以将
color(x,y)的定义修改为color(x,y) = hsv2rgb( Hue( rp(x,y), ip(x,y) ), log(1+abs(f(x,y))), 1),让饱和度变化更平缓
修改后完整代码(局部放大奇点版本)
set encoding utf8 set zlabel 'Im(z)' set ylabel 'Re(z)' unset key set view map scale 1.2 set isosamples 700, 700 set samples 700 set size ratio 1 1,1 set style data lines set title "Phase angle" set cblabel "Angulo de fase" set cblabel offset character -2, 0, 0 font "" textcolor lt -1 rotate by -270 set cbrange [ -pi : pi ] noreverse nowriteback set cbtics ("0" -pi, "2π" pi) set palette defined ( 0 0 1 1, 1 1 1 1 ) set xrange [6:8] noreverse nowriteback set yrange [-1:1] noreverse nowriteback set palette positive nops_allcF maxcolors 0 gamma 1.5 color model HSV Hue(x,y) = (pi + atan2(y,x)) / (2*pi) phase(x,y) = hsv2rgb( Hue(x,y), sqrt(x**2+y**2) ) f(x,y) = 1/((x+y*{0,1})-7) rp(x,y) = real(f(x,y)) ip(x,y) = imag(f(x,y)) color(x,y) = hsv2rgb( Hue( rp(x,y), ip(x,y) ), log(1+abs(f(x,y))), 1) splot '++' using 1:2:(color($1,$2)) with pm3d lc rgb variable
观测特征说明
运行修改后的代码可以看到,在(7,0)点附近相位会绕该点旋转一周,符合一阶极点的相位特征,同时越靠近该点图像饱和度越高,对应函数模值趋向无穷大的特性。
内容的提问来源于stack exchange,提问作者Manami Okuda
相关产品推荐
相关产品推荐

