提高绘图的速度
mathematica吧
全部回复
仅看楼主
level 2
🔥李蜀黍 楼主
为什么绘图这么慢,是哪个环节出问题了?
Clear["Global`*"]
s0 = PauliMatrix[1];
s1 = PauliMatrix[2];
s2 = PauliMatrix[3];
s3 = PauliMatrix[4];
Ham = kx s1 + ky s2 ;
DD = Eigenvalues[Ham];
VV = Eigenvectors[Ham];
region = RegionUnion[Disk[{0, 0}, 0.1],
RegionDifference[Disk[{0, 0}, 0.3], Disk[{0, 0}, 0.2]],
RegionDifference[Disk[{0, 0}, 0.5], Disk[{0, 0}, 0.4]],
RegionDifference[Disk[{0, 0}, 0.7], Disk[{0, 0}, 0.6]],
RegionDifference[Disk[{0, 0}, 0.9], Disk[{0, 0}, 0.8]],
RegionDifference[Disk[{0, 0}, 1.1], Disk[{0, 0}, 1]],
RegionDifference[Disk[{0, 0}, 1.3], Disk[{0, 0}, 1.2]],
RegionDifference[Disk[{0, 0}, 1.5], Disk[{0, 0}, 1.4]],
RegionDifference[Disk[{0, 0}, 1.7], Disk[{0, 0}, 1.6]],
RegionDifference[Disk[{0, 0}, 1.9], Disk[{0, 0}, 1.8]]];
region2 = RegionDifference[Disk[{0, 0}, 2], region];
P1 = Plot3D[DD[[1]], {kx, ky} \[Element] region,
PlotRange -> {-1.5, 1.5}, BoxRatios -> {1, 1, 1.1},
ClippingStyle -> None,
ColorFunction -> (ColorData[{"SunsetColors", "Reverse"}][#3] &),
Mesh -> None, Axes -> True, Boxed -> False, MaxRecursion -> 2,
PlotPoints -> 20];
P2 = Plot3D[DD[[2]], {kx, ky} \[Element] region2,
PlotRange -> {-1.5, 1.5}, BoxRatios -> {1, 1, 1.1},
ClippingStyle -> None,
ColorFunction -> (ColorData["SunsetColors"][#3] &), Mesh -> None,
Axes -> True, Boxed -> False, MaxRecursion -> 2, PlotPoints -> 20];
2023年10月02日 09点10分 1
吧务
level 15
你用DiscretizeRegion或者NDSolve`FEM`ToElementMesh离散化后再画。不用降图像精度也会秒出:
2023年10月07日 03点10分 2
1