这里使用随机生成的方法在多边形布里渊区生成k点坐标,优点是程序好写,缺点是计算量很大

下面这段代码是生成六边形内的点,是用数学方法生成的

function Kpos=GetKPoints(N)
a = 4.18879028;
%theta = linspace(0,2*pi,7);
%plot(a*cos(theta),a*sin(theta),'r-');
i = 0;
%N = 2000;
Kpos = [];
%hold on
while i < Nx = 2*rand(1,2)-1;if (abs(x(1)) + abs(x(2))/sqrt(3) ) <= 1 && abs(x(2)) <= sqrt(3)/2x =a*x;Kpos = [Kpos;x];%plot(x(1),x(2),'b.');i = i+1;end
end

这里计算nesting完全按照标准公式,就是两重循环,  时间复杂度O(N^2)

delta = 0.001;
T = 0.026;
sus = [];
N = 2000;
k=GetKPoints(N);
n = length(k);
for i=1:nx = 0;                     for j=1:nHk1=Hamiltonian_TaS2_k(k(j,1),k(j,2));[~,Ek1]=eig(Hk1);E1 = Ek1(1,1);f1 = (exp(E1/T)+1)^-1;Hk2=Hamiltonian_TaS2_k(k(j,1)+k(i,1),k(j,2)+k(i,2));[~,Ek2]=eig(Hk2);E2 = Ek2(1,1);f2 = (exp(E2/T)+1)^-1;x = x+ f1*(1-f2)/(E2 - E1 + 1i*delta);endsus =[sus,x];
end
a = 4.18879028;
theta = linspace(0,2*pi,7);
plot(a*cos(theta),a*sin(theta),'r-');
hold on
x = k(:,1);
y = k(:,2);
z = real(sus);
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值
% pcolor(X,Y,Z);shading interp
% figure,contourf(X,Y,Z) %等高线图
figure,surf(X,Y,Z);%三维曲面
% plot(a*cos(theta),a*sin(theta),zeros(1,7),'r-');

最后根据二维不规则离散点mesh实际有一步插值动作

与下面的矩形均匀采用对比

dk = 0.1;
Es =[];
for kx=-2*pi:dk:2*pifor ky = -2*pi:dk:2*piHk=Hamiltonian_TaS2_k(kx,ky);[~,Ek]=eig(Hk);Es = [Es, diag(Ek)];end
end
kx=-2*pi:dk:2*pi;
ky=-2*pi:dk:2*pi;
[kX,kY]=meshgrid(kx,ky);
dim = size(Es);
for i = 1:1En = reshape(Es(i,:),length(kx),length(kx));
%     mesh(kX,kY,En)
%     hold on;
end
[C,h] = contour(kX,kY,En,[0,-0.5,0.5]);
set(h, 'ShowText', 'on', 'TextStep', get(h,'LevelStep')*2);
hold on
a = 4.18879028;
theta = linspace(0,2*pi,7);
plot(a*cos(theta),a*sin(theta),'r-');

计算二维紧束缚模型费米面和nesting程序新思路相关推荐

  1. 数学建模——一维、二维插值模型详解Python代码

    数学建模--一维.二维插值模型详解Python代码 一.一维插值 # -*-coding:utf-8 -*- import numpy as np from scipy import interpol ...

  2. 乔利斯基三角分解_二维二相模型的不完全乔利斯基——共轭斜量解法

    前健罗厂刀二维二相模型是我国目前油田开发中使用最广泛的一种数值模型.这不仅因为它比较经济实用,对电子计算机的容量和速度要求不高,适宜于大规模普及推广应用,而且也因为现在我国油田的开发多采取注水保持压力 ...

  3. C语言:编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递

    /*编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递*/ #include<stdio.h> #define N 4 #define M 3 int findmax(int ( ...

  4. 梯度下降计实例计算(二维)

    梯度下降计实例计算(二维) 文章目录 内容简介 示例说明 绘制曲线 进一步讨论 参考资料 内容简介 梯度下降是在机器学习中重要的计算内容.本文就一个具体的示例,展示如何在梯度下降中. 示例说明 设损失 ...

  5. 分别计算二维数组主对角线元素与辅对角线元素的和。

    知识点:理解对角线与熟悉二维数组的下标. 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等 ...

  6. cad计算机面积和周长,CAD怎么计算二维图形的面积和周长

    CAD怎么计算二维图形的面积和周长 CAD是一款实用的绘图软件,在工程设计的各个领域里应用十分广泛,具有强大的二维绘图功能,那么我们用CAD怎么计算二维图形的面积和周长呢? 下面来看看具体的实例: ( ...

  7. MATLAB对autumn.tif文件计算二维DCT变换

    %对autumn.tif文件计算二维DCT变换 RGB = imread('autumn.tif'); I = rgb2gray(RGB); %真彩色图像转换成灰度图像 J = dct2(I); %计 ...

  8. opencv 计算二维矢量的幅值—magnitude()函数

    计算二维矢量的幅值:magnitude()函数 该函数用来计算二维矢量的幅值 void magnitude(InputArray x,InputArray y,OutputArray magnitud ...

  9. 扫描普通二维码,进入微信小程序

    登陆微信公众平台 1.点击[开发]-[开发管理]-[开发设置]开启扫普通二维码链接打开小程序,点击添加配置: 打开添加配置: 二维码规则 根据二维码跳转规则,开发者需要填写需要跳转小程序的二维码规则. ...

最新文章

  1. 百胜软件2016年双十一项目正式启动
  2. 渣男劈腿,两个女生逼他做出选择,结果......
  3. jquery获取select选择的文本与值
  4. CImage类的用法(转帖)
  5. 物联网IoT接入技术分类以及华为OC平台特性
  6. MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)
  7. linux df -h指令,Linux df 命令使用参数详解
  8. php 多城市,thinkphp3.2 一站多城市配置
  9. 阶段3 1.Mybatis_11.Mybatis的缓存_1 今日课程安排
  10. 算法竞赛入门经典(第2版)—索引
  11. i510300h和i78750h参数对比哪个好
  12. python is not defined是什么意思_is not defined 问题?报错
  13. Liunx官网下载步骤
  14. 自然语言处理----常用函数简析
  15. python计算2的平方代码_Python练习实例46 | 求输入数字的平方,如果平方运算后小于 50 则退出。...
  16. iphone 通知声音_如何在iPhone上掌握通知
  17. 方正浩:智能制造和工业互联网的投资新视角
  18. 会跳动的爱心代码-简单易学的HTML网页(速成)
  19. Higgs全球区块链投融资交流会(香港站)成功举办,路演项目备受瞩目
  20. 美团html页面代码,html+css+js制作美团官网

热门文章

  1. Matplotlib 多个子图使用一个图例
  2. 查看树莓派3 WiFi连接速度
  3. JavaCV音视频开发宝典:JavaCV使用gdigrab方式实现windows录屏(windows屏幕画面抓取/采集,可实现高帧率屏幕截屏、录屏功能)
  4. Linux网络驱动架构
  5. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,2009年10月全国自考计算机应用基础历年真题...
  6. 华为路由器配置命令汇总
  7. 软件测试英语单词词汇
  8. Oracle 分组数据
  9. BigDL:分布式开放源码Apache SCAP深度学习库
  10. 米家蓝牙温湿度计2接入树莓派并通过homeassistant显示