當前位置:首頁 » 操作系統 » 比表面能演算法

比表面能演算法

發布時間: 2024-03-26 02:36:42

『壹』 什麼是marching cubes演算法具體怎麼講的

Marching Cubes演算法(醫學圖像三維繪制中的面繪制)2007-08-16 00:50建議要看的資料
[1] Lorensen W E, Cline H E .Marching cubes: a high-resoulution 3D suface construction algorithm [J], Computer Graphics,1987, 21(4):163~169
[2]集成化醫學影像演算法平台理論與實踐田捷,趙明昌,何暉光 清華大學出版社2004年10月
[3]Polygonising a scalar field Also known as: "3D Contouring", "Marching Cubes", "Surface Reconstruction"
http://local.wasp.uwa.e.au/~pbourke/geometry/polygonise/Marching Cubes;
[4]www.3dmed.net

Marching Cubes演算法工作原理
Marching Cubes演算法是三維數據場等值面生成的經典演算法,是體素單元內等值面抽取技術的代表。
等值面是空間中所有具有某個相同值的點的集合。它可以表示為, ,c是常數。則稱F(f)為體數據f中的等值面。
在MC演算法中,假定原始數據是離散的三維空間規則數據場。用於醫療診斷的斷層掃描(CT)及核磁共振成像(MRI) 等產生的圖像均屬於這一類型。MC演算法的基本思想是逐個處理數據場中的體素,分類出與等值面相交的體素,採用插值計算出等值面與體素棱邊的交點。根據體素中每一頂點與等值面的相對位置,將等值面與立方體邊的交點按一定方式連接生成等值面,作為等值面在該立方體內的一個逼近表示。在計算出關於體數據場內等值面的有關參數後山常用的圖形軟體包或硬體提供的面繪制功能繪制出等值面。

圖2.1 離散的三維空間規則數據場中的一個體素
2.1.1 MC演算法的主要步驟
1. 確定包含等值面的體素
離散的三維空間規則數據場中的一個體素可以用圖2.1表示。8個數據點分別位於該體素的8個角點上。MC演算法的基本假設是:沿著體素的邊其數據場呈局部連續線性變化,根據這個假設,可認為,如果兩個相鄰采樣點一個為正點,一個為負點,則它們連成的邊上一定存在且僅有一個等值點 (設等值面值為c)。如果得到了體素各條邊上的等值點,就可以以這些點為頂點,用一系列的三角形擬合出該體素中的等值面。因此確定立方體體素中等值面的分布是該演算法的基礎。
首先對體素的8個頂點進行分類,以判斷其頂點是位於等值面之外,還是位於等值面之內。再根據8個頂點的狀態,確定等值面的剖分模式。頂點分類規則為:
1. 如體素頂點的數據值大於或等於等值面的值,則定義該頂點位於等值面之外, 記為正點,即「1「
2. 如體素頂點的數據值小於等值面的值,則定義該頂點位於等值面之內,記為負點, 即「0"
由於每個體素共有8個頂點,且每個頂點有正負兩種狀態,所以等值面可能以 =256種方式與一個體素相交。通過列舉出這256種情況,就能創建一張表格,利用它可以查出任意體素中的等值面的三角面片表示。如果考慮互補對稱性,將等值面的值和8個角點的函數值的大小關系顛倒過來,即將體素的頂點標記置反(0變為1, 1變為0),這樣做不會影響該體素的8個角點和等值面之間的拓撲結構,可將256種方式簡化成128種。其次,再利用旋轉對稱性,可將這128種構型進一步簡化成15種。圖3.2給出了這15種基本構型[131其中黑點標記為「1」的角點。

圖2.2 分布狀態表

圖2.3 體素角點分布不同情況
基於上面的分析,MC演算法中用一個位元組的空間構造了一個體素狀態表,如圖2.2所示,該狀態表中的每一位可表示出該體元中的一個角點的0或1的狀態。根據這一狀態表,就可知道當前體素屬於圖2.3中哪一種情況,以及等值面將與哪一條邊相交。
2.求等值面與體元邊界的交點
在確定體素內三角剖分模式後,就要計算三角片頂點位置。當三維離散數據場的密度較高時,即當體素很小時,可以假定函數值沿體素邊界呈線性變化,這就是MC演算法的基本假設。因此,根據這一基本假設,可以直接用線性插值計算等值面與體素邊的交點。
對於當前被處理體素的某一條邊,如果其兩頂點 , 的標記值不同,那麼等值面一定與此邊相交,且僅有一個交點。交點為 其中P代表等值點坐標, , 代表兩個端點的坐標, , 代表兩個端點的灰度值,v代表域值。求出等值面與體素棱邊的交點以後,就可以將這些交點連接成三角形或多邊形,形成等值面的一部分。
3.等值面的法向量計算
為了利用圖形硬體顯示等值面圖象,必須給出形成等值面的各三角面片的法向分量,選擇適當的局部面光照模型進行光照計算,以生成真實感圖形。
對於等值面上的每一點,其沿面的切線方向的梯度分量應該是零,因此,該點的梯度矢量的方向也就代表了等值面在該點的法向量,當梯度值非零。所幸的是等值面往往是由兩種具有不同密度的物質的分解面,因此其上的每點的梯度矢量均不為零,即
Mc演算法採用中心差分方法求采樣點p〔m ,n, k ) 處的梯度矢量,公式如下:

Gx=〔g(i+1,j,k)-g(i-1,j,k)〕/2dx
Gy=〔g(i,j+1,k)-g(i,j-1,k)〕/2dy
Gz=〔g(i,j,k+1)-g(i,j,k-1)〕/2dz
其中D(i,j ,k)是切片k在像素(i,j)的密度, , , 是立方體邊的長度。對g進行歸一化,得到(gx/|g|,gy/|g|,gz/|g|)作為(i,j,k)上的單位法向量。然後,對體素八個頂點上法向量進行線性插值就可得到位於體素棱邊上的三角片的各個頂點上的法向量。設計算得到的某個三角片的三個頂點上的單位法向量分別為( , 和 ),這個三角片的幾何重心為 ,則該三角片的法向量起始於 ,終止於 。代入Gourand光照模型公式,就可計算出小三角片表面的光強(灰度)。將其投影在某個特定的二維平面上進行顯示,從而顯示出物體富有光感的整個表面形態。其中我們在內存中保留四個切片來計算立方體中所有頂點梯度。
2.1.2 MC演算法流程
1、將三維離散規則數據場分層讀入內存;
2、掃描兩層數據,逐個構造體素,每個體素中的8個角點取自相鄰的兩層;
3、將體素每個角點的函數值與給定的等值面值c做比較,根據比較結果,構造
該體素的狀態表;
4、根據狀態表,得出將與等值面有交點的邊界體素;
5、通過線性插值方法計算出體素棱邊與等值面的交點;
6、利用中心差分方法,求出體素各角點處的法向量,再通過線性插值方法,求出三角面片各頂點處的法向;
7,根據各三角面片上各頂點的坐標及法向量繪制等值面圖像。
========================================================
MC代碼
MarchingCubes(float lowThreshold,float highThreshold,float XSpace,float YSpace,float ZSpace)
{
//記錄生成的頂點數和面數初始時應該為0
m_vNumber=0;
m_fNumber=0;
//當前Cube中生成的頂點和面數
int vertPos,facePos;
//包圍盒的尺寸 用於繪製程序計算整個場景的包圍盒,用於調整觀察位置,以使整個場景盡可能占滿整個窗口。
float min[3],max[3];
min[0]=min[1]=min[2]=max[0]=max[1]=max[2]=0;//初始化
//當前掃描層的切片數據和一個臨時的切片數據
short *pSliceA,*pSliceB,*pSliceC,*pSliceD,*tempSlice;

pSliceA=pSliceB=pSliceC=tempSlice=NULL;
int imageWidth,imageHeight,imageSize,sliceNumber;
imageWidth=imageHeight=512;//我們是512×512的數據
imageSize=imageWidth*imageHeight;
sliceNumber=m_FileCount-1;
if((highThreshold*lowThreshold)==0)
{
return 0;
}
pSliceD =new short [imageSize];
//因為等值面是每相鄰兩層切片為單位進行提取的,所以在處理後兩層切片時難免生成前兩層切片已經生成的頂點,這時候就用下面的數組記錄哪些邊上的頂點已經生成了,如果遇到已經生成的頂點就不再重復計算而是直接使用記錄的索引,否則就生成新的頂點。
long *bottomXEdge=new long[imageSize];
long *bottomYEdge=new long[imageSize];
long *topXEdge=new long[imageSize];
long *topYEdge=new long[imageSize];
long *zEdge=new long[imageSize];

tempSlice=new short [imageSize];

if(bottomXEdge==NULL||bottomYEdge==NULL||
topXEdge==NULL||topYEdge==NULL||
zEdge==NULL||tempSlice==NULL)
{
return 0;//錯誤
}
//初始化數據
memset(bottomXEdge,-1,sizeof(long)*imageSize);
memset(bottomYEdge,-1,sizeof(long)*imageSize);
memset(topXEdge,-1,sizeof(long)*imageSize);
memset(topYEdge,-1,sizeof(long)*imageSize);
memset(zEdge,-1,sizeof(long)*imageSize);
memset(tempSlice,0,sizeof(short)*imageSize);

//計算某一層頂點和三角時所需要的一些變數
//一些循環變數
int i,j,k,w,r;
//cube類型
unsigned char cubeType(0);
//計演算法向量
float dx[8],dy[8],dz[8],squaroot;
//記錄某個Cube生成
float vertPoint[12][6];
int cellVerts[12]; //what use
int triIndex[5][3]; //每個cube最多生成5條邊

//用於記錄已生成頂點索引的臨時變數
int offset;
//當前cube8個頂點的灰度值
short cubegrid[8];
long *edgeGroup;
//得到數據

pSliceD=m_volumeData;
pSliceB=tempSlice;
pSliceA=tempSlice;

int tt,tt1;

//掃描4層切片的順序
/*
-----------------------D |
-----------------------B |
-----------------------C |
-----------------------A |
V
*/
//marching cubes 演算法開始實行 ?第一次循環時,只讀入一個切片?
for(i=0;i<=(sliceNumber);i++)
{
pSliceC=pSliceA;
pSliceA=pSliceB;
pSliceB=pSliceD;
if(i>=sliceNumber-2)
{
pSliceD=tempSlice;
}
else
{

pSliceD+=imageSize;
}
for(j=0;j<imageHeight-1;++j)
for(k=0;k<imageWidth-1;++k)
/* for(j=10;j<imageHeight-5;j++)//調試用
for(k=10;k<imageWidth-5;k++)*/
{
//得到八個頂點的灰度值step0
cubegrid[0]=pSliceA[j*imageWidth+k];
cubegrid[1]=pSliceA[j*imageWidth+k+1];
cubegrid[2]=pSliceA[(j+1)*imageWidth+k+1];
cubegrid[3]=pSliceA[(j+1)*imageWidth+k];
cubegrid[4]=pSliceB[j*imageWidth+k];
cubegrid[5]=pSliceB[j*imageWidth+k+1];
cubegrid[6]=pSliceB[(j+1)*imageWidth+k+1];
cubegrid[7]=pSliceB[(j+1)*imageWidth+k];
//計算cube的類型
cubeType=0;
for(w=0;w<8;w++)
{

if((cubegrid[w]>lowThreshold)&&(cubegrid[w]<highThreshold))//需要畫的點

{
cubeType|=(1<<w);
}
}//end for計算cube的類型
if(cubeType==0||cubeType==255)
{
continue;
}
for(w=0;w<12;w++) //初始化cellVerts表到零
{
cellVerts[w]=-1;
}
//計算6個方向相鄰點的象素差值(用於計演算法向量)
if(k==0)
{
dx[0]=pSliceA[j*imageWidth+1];
dx[3]=pSliceA[(j+1)*imageWidth+1];
dx[4]=pSliceB[j*imageWidth+1];
dx[7]=pSliceB[(j+1)*imageWidth+1];
}
else
{
dx[0]=pSliceA[j*imageWidth+k+1]
-pSliceA[j*imageWidth+k-1];
dx[3]=pSliceA[(j+1)*imageWidth+k+1]
-pSliceA[(j+1)*imageWidth+k-1];
dx[4]=pSliceB[j*imageWidth+k+1]
-pSliceB[j*imageWidth+k-1];
dx[7]=pSliceB[(j+1)*imageWidth+k+1]
-pSliceB[(j+1)*imageWidth+k-1];
}
if(k==imageWidth-2)
{
dx[1]=-pSliceA[j*imageWidth+imageWidth-2];
dx[2]=-pSliceA[(j+1)*imageWidth+imageWidth-2];
dx[5]=-pSliceB[j*imageWidth+imageWidth-2];
dx[6]=-pSliceB[(j+1)*imageWidth+imageWidth-2];
}
else
{
dx[1]=pSliceA[j*imageWidth+k+2]
-pSliceA[j*imageWidth+k];
dx[2]=pSliceA[(j+1)*imageWidth+k+2]
-pSliceA[(j+1)*imageWidth+k];
dx[5]=pSliceB[j*imageWidth+k+2]
-pSliceB[j*imageWidth+k];
dx[6]=pSliceB[(j+1)*imageWidth+k+2]
-pSliceB[(j+1)*imageWidth+k];
}
if(j==0)
{
dy[0]=pSliceA[imageWidth+k];
dy[1]=pSliceA[imageWidth+k+1];
dy[4]=pSliceB[imageWidth+k];
dy[5]=pSliceB[imageWidth+k+1];
}
else
{
dy[0]=pSliceA[(j+1)*imageWidth+k]
-pSliceA[(j-1)*imageWidth+k];
dy[1]=pSliceA[(j+1)*imageWidth+k+1]
-pSliceA[(j-1)*imageWidth+k+1];
dy[4]=pSliceB[(j+1)*imageWidth+k]
-pSliceB[(j-1)*imageWidth+k];
dy[5]=pSliceB[(j+1)*imageWidth+k+1]
-pSliceB[(j-1)*imageWidth+k+1];
}
if(j==imageHeight-2)
{
dy[2]=-pSliceA[(imageHeight-2)*imageWidth+k+1];
dy[3]=-pSliceA[(imageHeight-2)*imageWidth+k];
dy[6]=-pSliceB[(imageHeight-2)*imageWidth+k+1];
dy[7]=-pSliceB[(imageHeight-2)*imageWidth+k];
}
else
{
dy[2]=pSliceA[(j+2)*imageWidth+k+1]-pSliceA[j*imageWidth+k+1];
dy[3]=pSliceA[(j+2)*imageWidth+k]-pSliceA[j*imageWidth+k];
dy[6]=pSliceB[(j+2)*imageWidth+k+1]-pSliceB[j*imageWidth+k+1];
dy[7]=pSliceB[(j+2)*imageWidth+k]-pSliceB[j*imageWidth+k];
}
dz[0]=pSliceB[j*imageWidth+k]
-pSliceC[j*imageWidth+k];
dz[1]=pSliceB[j*imageWidth+k+1]
-pSliceC[j*imageWidth+k+1];
dz[2]=pSliceB[(j+1)*imageWidth+k+1]
-pSliceC[(j+1)*imageWidth+k+1];
dz[3]=pSliceB[(j+1)*imageWidth+k]
-pSliceC[(j+1)*imageWidth+k];
dz[4]=pSliceD[j*imageWidth+k]
-pSliceA[j*imageWidth+k];
dz[5]=pSliceD[j*imageWidth+k+1]
-pSliceA[j*imageWidth+k+1];
dz[6]=pSliceD[(j+1)*imageWidth+k+1]
-pSliceA[(j+1)*imageWidth+k+1];
dz[7]=pSliceD[(j+1)*imageWidth+k]
-pSliceA[(j+1)*imageWidth+k];

//計算三角形頂點的坐標和梯度
vertPos=0;
facePos=0;
for(w=0;w<12;w++)
{
if(g_EdgeTable[cubeType]&(1<<w)) //what …..
{
//根據g_edgeTable[256]對應值判斷cube的那一條邊與等值面有交點
switch(w)
{
case 0:
offset=j*imageWidth+k;
edgeGroup=bottomXEdge;
break;
case 1:
offset=j*imageWidth+k+1;
edgeGroup=bottomYEdge;
break;
case 2:
offset=(j+1)*imageWidth+k;
edgeGroup=bottomXEdge;
break;
case 3:
offset=j*imageWidth+k;
edgeGroup=bottomYEdge;
break;
case 4:
offset=j*imageWidth+k;
edgeGroup=topXEdge;
break;
case 5:
offset=j*imageWidth+k+1;
edgeGroup=topYEdge;
break;
case 6:
offset=(j+1)*imageWidth+k;
edgeGroup=topXEdge;
break;
case 7:
offset=j*imageWidth+k;
edgeGroup=topYEdge;
break;
case 8:
offset=j*imageWidth+k;
edgeGroup=zEdge;
break;
case 9:
offset=j*imageWidth+k+1;
edgeGroup=zEdge;
break;
case 10:
offset=(j+1)*imageWidth+k+1;
edgeGroup=zEdge;
break;
case 11:
offset=(j+1)*imageWidth+k;
edgeGroup=zEdge;
break;

}//對應switch的{。。。end for//根據g_EdgeTable對應值判斷cube的那一條邊與等值面有交點
//該邊上的頂點是否已經在上一層中生成
if(edgeGroup[offset]==-1)
{
int index1,index2;
short s1,s2,s;
float x1,y1,z1,nx1,ny1,nz1;
float x2,y2,z2,nx2,ny2,nz2;
//得到該邊兩端點的索引進而得到兩點的灰度值
index1=g_CoordTable[w][3];
index2=g_CoordTable[w][4];
s1=cubegrid[index1];
s2=cubegrid[index2];
if(s1<highThreshold&&s1>lowThreshold)
{
if(s2>=highThreshold)
{
s=highThreshold;
}
else if(s2<=lowThreshold)
{
s=lowThreshold;
}
}
else if(s2<highThreshold&&s2>lowThreshold)
{
if(s1>=highThreshold)
{
s=highThreshold;
}
else if(s1<=lowThreshold)
{
s=lowThreshold;
}
}
//計算兩端點實際坐標
x1=(k+g_CoordVertex[index1][0])*XSpace;
y1=(j+g_CoordVertex[index1][1])*YSpace;
z1=(i+g_CoordVertex[index1][2])*ZSpace;
x2=(k+g_CoordVertex[index2][0])*XSpace;
y2=(j+g_CoordVertex[index2][1])*YSpace;
z2=(i+g_CoordVertex[index2][2])*ZSpace;
//計算兩端點的法向量

nx1=dx[index1]/XSpace;
ny1=dy[index1]/YSpace;
nz1=dz[index1]/ZSpace;
nx2=dx[index2]/XSpace;
ny2=dy[index2]/YSpace;
nz2=dz[index2]/ZSpace;
float factor=((float)(s-s1))/((float)(s2-s1));

//插值計算交點坐標
vertPoint[vertPos][0]=factor*(x2-x1)+x1;
vertPoint[vertPos][1]=factor*(y2-y1)+y1;
vertPoint[vertPos][2]=factor*(z2-z1)+z1;
//計演算法向量
vertPoint[vertPos][3]=factor*(nx1-nx2)-nx1;
vertPoint[vertPos][4]=factor*(ny1-ny2)-ny1;
vertPoint[vertPos][5]=factor*(nz1-nz2)-nz1;
//法向量歸一化
squaroot=sqrt(vertPoint[vertPos][3]*vertPoint[vertPos][3]+vertPoint[vertPos][4]*vertPoint[vertPos][4]
+vertPoint[vertPos][5]*vertPoint[vertPos][5]);
if(squaroot<=0)squaroot=1.0;
vertPoint[vertPos][3]/=squaroot;
vertPoint[vertPos][4]/=squaroot;
vertPoint[vertPos][5]/=squaroot;
//更新包圍盒數據
if(min[0]>vertPoint[vertPos][0])
{
min[0]=vertPoint[vertPos][0];
}
if(min[1]>vertPoint[vertPos][1])
{
min[1]=vertPoint[vertPos][1];
}
if(min[2]>vertPoint[vertPos][2])
{
min[2]=vertPoint[vertPos][2];
}
if(max[0]<vertPoint[vertPos][0])
{
max[0]=vertPoint[vertPos][0];
}
if(max[1]<vertPoint[vertPos][1])
{
max[1]=vertPoint[vertPos][1];
}
if(max[2]<vertPoint[vertPos][2])
{
max[2]=vertPoint[vertPos][2];
}
//記錄新生成的頂點索引
cellVerts[w]=m_vNumber;
edgeGroup[offset]=cellVerts[w];
m_vNumber++;
vertPos++;
} //end if(edgeGroup[offset]==-1) ////
else
{
//若該點已經在上一層生成,則直接得到其索引
cellVerts[w]=edgeGroup[offset];
}
} // end對應if(g_EdgeTable[cubeType]&(1<<w)) //

} //對應for(w=0;w<12;w++)
//保存當前cubes 頂點和法向量
tt1=m_vNumber-vertPos;
for(tt=0;tt<vertPos;tt++)
{
vPointNomal[tt1+tt][0]=vertPoint[tt][0];
vPointNomal[tt1+tt][1]=vertPoint[tt][1];
vPointNomal[tt1+tt][2]=vertPoint[tt][2];
vPointNomal[tt1+tt][3]=vertPoint[tt][3];
vPointNomal[tt1+tt][4]=vertPoint[tt][4];
vPointNomal[tt1+tt][5]=vertPoint[tt][5];
}
// memcpy(vPointNomal+6*(m_vNumber-vertPos) ,vertPoint,sizeof(float)*6*vertPos);
//記錄新生成的三角面片數據
w=0;
while (g_TriTable[cubeType][w]!=-1)
{
for(r=0;r<3;r++)
{
triIndex[facePos][r]=cellVerts[g_TriTable[cubeType][w++]];
if(triIndex[facePos][r]<0)
{
AfxMessageBox("有問題",MB_OK,0);
}
}
facePos++;
m_fNumber++;

} //end 對應while (g_TriTable[cubeType][w]!=-1)
//保存面數據
tt1=m_fNumber-facePos;
for(tt=0;tt<facePos;tt++)
{
pFace[tt1+tt][0]=triIndex[tt][0];
pFace[tt1+tt][1]=triIndex[tt][1];
pFace[tt1+tt][2]=triIndex[tt][2];
}
// memcpy(pFace+3*(m_fNumber-facePos)*sizeof(long),triIndex,sizeof(int)*3*facePos);
} memcpy(bottomXEdge,topXEdge,sizeof(short)*imageSize);
memcpy(bottomYEdge,topYEdge,sizeof(short)*imageSize);
memset(topXEdge,-1,sizeof(short)*imageSize);
memset(topYEdge,-1,sizeof(short)*imageSize);
memset(zEdge,-1,sizeof(short)*imageSize);
}
delete []tempSlice;
delete []bottomXEdge;
delete []bottomYEdge;
delete []topXEdge;
delete []topYEdge;
delete []zEdge;

return 1;
}
在OnDraw
glBegin(GL_TRIANGLES);
for(i=0;i<pDoc->m_fNumber;i++)
{
glNormal3fv(&(pDoc->vPointNomal[pDoc->pFace[ i][0]][3]));
glVertex3fv(&(pDoc->vPointNomal[pDoc->pFace[ i][0]][0]));

glNormal3fv(&(pDoc->vPointNomal[pDoc->pFace[ i ][1]][3]));
glVertex3fv(&(pDoc->vPointNomal[pDoc->pFace[ i ][1]][0]));

glNormal3fv(&(pDoc->vPointNomal[pDoc->pFace[ i ][2]][3]));
glVertex3fv(&(pDoc->vPointNomal[pDoc->pFace[ i ][2]][0]));
}

glEnd();
以上代碼只用於理解,未測試

『貳』  三維Delaunay演算法

將Delaunay剖分演算法推廣到三維具有重要意義。三維Delaunay剖分構成的Delaunay四面體是進一步構成任意塊體的中間工具。三維空間的四面體對於三維射線追蹤非常方便。三維Delaunay演算法基本原理與二維Delaunay演算法十分相似,但編制起來更為復雜。它也要用一個n×8維數組記錄四面體構成點和相鄰四面體信息,它大致也分為以下幾步:

(1)判斷哪些四面體的外接球包含新加入的點;

(2)將這些四面體匯總到一塊,形成一個凸多面體;

(3)找到這多面體外表面,用一個二維三角形相鄰關系數組記錄下來;

(4)由多面體表面的三角形與新加入的點構制新四面體,用一個三維四面體數據結構數組,存貯新形成的四面體信息;

(5)用新四面體信息去更新原來總的四面體數據結構信息。

其中第(3)步是比二維Delaunay剖分復雜。待修改的四面體的外表面不再能夠用環表示,而要用一個二維Delaunay三角形數據結構來表示。這種三角形的相鄰關系要從原四面體的數據結構關系中去尋找。A、C面是多面體的外表面。B是其內表面須尋找A的一個棱的相鄰三角形B,從B找到下一個四面體,再從四面體上找到與B三角形棱相鄰的面C。

在三維Delaunay演算法中,在通過外接球找到所有待修改的四面體後,將其排成一個待修改四面體數據結構數組,將待修改四面體的所有面全部排列起來,其中包含各個四面體的相互公共面和這些四面體組成的多面體的外表面,構成一個關於面的數據結構數組。從這個數據結構中刪去相互相鄰的三角形面,這樣就構成了外表面的數據結構數組。

三維Delaunay剖分時,我們總利用三角形網格中的數量關系,來檢查所形成的四面體的正確性。如果待刪四面體數目為T,外表面三角形的數目為F,則

地質模型計算機輔助設計原理與應用

『叄』 高一化學常用計算方法,比如說十字交叉法,差量法等等,都幫我詳細講解一下

一、差量法
在一定量溶劑的飽和溶液中,由於溫度改變(升高或降低),使溶質的溶解度發生變化,從而造成溶質(或飽和溶液)質量的差量;每個物質均有固定的化學組成,任意兩個物質的物理量之間均存在差量;同樣,在一個封閉體系中進行的化學反應,盡管反應前後質量守恆,但物質的量、固液氣各態物質質量、氣體體積等會發生變化,形成差量。差量法就是根據這些差量值,列出比例式來求解的一種化學計算方法。該方法運用的數學知識為等比定律及其衍生式:或。差量法是簡化化學計算的一種主要手段,在中學階段運用相當普遍。常見的類型有:溶解度差、組成差、質量差、體積差、物質的量差等。在運用時要注意物質的狀態相相同,差量物質的物理量單位要一致。
1.將碳酸鈉和碳酸氫鈉的混合物21.0g,加熱至質量不再變化時,稱得固體質量為14.8g。求混合物中碳酸鈉的質量分數。

2.實驗室用冷卻結晶法提純KNO3,先在100℃時將KNO3配成飽和溶液,再冷卻到30℃,析出KNO3。現欲制備500g較純的KNO3,問在100℃時應將多少克KNO3溶解於多少克水中。(KNO3的溶解度100℃時為246g,30℃時為46g)

3.某金屬元素R的氧化物相對分子質量為m,相同價態氯化物的相對分子質量為n,則金屬元素R的化合價為多少?

4.將鎂、鋁、鐵分別投入質量相等、足量的稀硫酸中,反應結束後所得各溶液的質量相等,則投入的鎂、鋁、鐵三種金屬的質量大小關系為( )
(A)Al>Mg>Fe (B)Fe>Mg>Al (C)Mg>Al>Fe (D)Mg=Fe=Al

二、十字交叉法
凡能列出一個二元一次方程組來求解的命題,即二組分的平均值,均可用十字交叉法,此法把乘除運算轉化為加減運算,給計算帶來很大的方便。
十字交叉法的表達式推導如下:設A、B表示十字交叉的兩個分量,表示兩個分量合成的平均量,xA、xB分別表示A和B佔平均量的百分數,且xA+xB=1,則有:
A•xA+B•xB= (xA+xB) 化簡得:
若把 放在十字交叉的中心,用A、B與其交叉相減,用二者差的絕對值相比即可得到上式。

十字交叉法應用非常廣,但不是萬能的,其適用范圍如表4—2:

含 化學
義 量
類型 A、B
xA、xB

1 溶液中溶質
質量分數 混合溶液中溶質質量質量分數 質量分數

2 物質中某元素
質量分數 混合物中某
元素質量分數 質量分數
3 同位素相對
原子質量 元素相對
原子質量 同位素原子
百分組成
4 某物質相對
分子質量 混合物平均相對分子質量 物質的量分數
或體積分數
5 某物質分子
組成 混合物的平均
分子組成 物質的量分數
6 用於某些綜合計算:如十字交叉法確定某些鹽的組成、有機物的組成等
正確使用十字交叉法解題的關鍵在於:(1)正確選擇兩個分量和平均量;(2)明確所得比為誰與誰之比;(3)兩種物質以什麼為單位在比。尤其要注意在知道質量平均值求體積或物質的量的比時,用此法並不簡單。
1. 現有50g 5%的CuSO4溶液,把其濃度增大一倍,可採用的方法有:(1)可將原溶液蒸發掉 g水;(2)可向原溶液中加入12.5% CuSO4溶液 g;(3)可向原溶液中加入膽礬 g;(4)可向原溶液中加入CuSO4白色粉末 g。

2 . 今有NH4NO3和CO(NH2)2混合化肥,現測得含氮質量分數為40%,則混合物中NH4NO3和CO(NH2)2的物質的量之比為( )
(A)4∶3 (B)1∶1 (C)3∶4 (D)2∶3
三、平均法
對於含有平均含義的定量或半定量習題,利用平均原理這一技巧性方法,可省去復雜的計算,迅速地作出判斷,巧妙地得出答案,對提高解題能力大有益處。平均法實際上是對十字交叉所含原理的進一步運用。解題時,常與十字交叉結合使用,達到速解之目的。原理如下:
若A>B,且符合 ,則必有A> >B,其中是A、B的相應平均值或式。xA•xB分別是A、B的份數。
常見的類型有:元素質量分數、相對原子質量、摩爾電子質量、雙鍵數、化學組成等平均法。有時運用平均法也可討論范圍問題。
1. 某硝酸銨樣品中氮的質量分數25%,則該樣品中混有的一組雜質一定不是( )
(A)CO(NH2)2和NH4HCO3 (B)NH4Cl和NH4HCO3
(C)NH4Cl和(NH4)2SO4 (D)(NH4)2SO4和NH4HCO3
2. 把含有某一種氯化物雜質的氯化鎂粉末95mg溶於水後,與足量的硝酸銀溶液反應,生成氯化銀沉澱300mg,則該氯化鎂中的雜質可能是( )
(A)氯化鈉 (B)氯化鋁 (C)氯化鉀 (D)氯化鈣
3. 某含雜質的CaCO3樣品只可能含有下列括弧中四種雜質中的兩種。取10g該樣品和足量鹽酸反應,產生了2.24L標准狀況下的CO2氣體。則該樣品中一定含有 雜質,可能含有 雜質。(雜質:KHCO3、MgCO3、K2CO3、SiO2)

4 .(1)碳酸氫銨在170℃時完全分解,生成的混和氣體平均相對分子質量是 。
(2)某爆鳴氣中H2和O2的質量分數分別為75%和25%,則該爆鳴氣對氫氣的相對密度是 。
(3)體積為1 L的乾燥容器充入HCl氣體後,測得容器中氣體對氧氣相對密度為1.082,用此氣體進行噴泉實驗,當噴泉停止後,進入容器中液體的體積是 。

附:平均摩爾質量( )的求法:
① m總—混和物叫質量 n總—混和物總物質的量
② =M1•n1%+M2•n2%+… M1、M2……各組分的摩爾質量,n1%、n2%……各組分的物質的量分數。(註: 如是元素的摩爾質量,則M1、M2……是各同位素的摩爾質量,n1%、n2%……是各同位素的原子分數(豐度)。)
③ 如是氣體混合物的摩爾質量,則有 =M1•V1%+M2•V2%+…(註:V1%、V2%……氣體體積分數。)
④ 如是氣體混合物的摩爾質量,則有 =d•MA (註:MA為參照氣體的摩爾質量,d為相對密度)
四、 守恆法
在化學反應中存在一系列守恆現象,如:質量守恆(含原子守恆、元素守恆)、電荷守恆、電子得失守恆、能量守恆等,利用這些守恆關系解題的方法叫做守恆法。電荷守恆即對任一電中性的體系,如化合物、混和物、溶液、膠體等,電荷的代數和為零,即正電荷總數和負電荷總數相等。電子得失守恆是指在發生氧化-還原反應時,氧化劑得到的電子數一定等於還原劑失去的電子數,無論是自發進行的氧化-還原反應還是以後將要學習的原電池或電解池均如此。
a. 質量守恆
1 . 有0.4g鐵的氧化物, 用足量的CO 在高溫下將其還原,把生成的全部CO2通入到足量的澄清的石灰水中得到0.75g固體沉澱物,這種鐵的氧化物的化學式為( )
A. FeO B. Fe2O3 C. Fe3O4 D. Fe4O5
2. 將幾種鐵的氧化物的混合物加入100mL、7mol•L―1的鹽酸中。氧化物恰好完全溶解,在所得的溶液中通入0.56L(標況)氯氣時,恰好使溶液中的Fe2+完全轉化為Fe3+,則該混合物中鐵元素的質量分數為 ( )
A. 72.4% B. 71.4% C. 79.0% D. 63.6%
b. 電荷守恆法
3. 將8g Fe2O3投入150mL某濃度的稀硫酸中,再投入7g鐵粉收集到1.68L H2(標准狀況),同時,Fe和Fe2O3均無剩餘,為了中和過量的硫酸,且使溶液中鐵元素完全沉澱,共消耗4mol/L的NaOH溶液150mL。則原硫酸的物質的量濃度為( )
A. 1.5mol/L B. 0.5mol/L C. 2mol/L D. 1.2mol/L

4. 鎂帶在空氣中燃燒生成氧化鎂和氮化鎂,將燃燒後的產物全部溶解在50mL 1.8 mol•L-1鹽酸溶液中,以20mL 0.9 mol•L-1的氫氧化鈉溶液中和多餘的酸,然後在此溶液中加入過量鹼把氨全部釋放出來,用足量鹽酸吸收,經測定氨為0.006 mol,求鎂帶的質量。

c. 得失電子守恆法
5 . 某稀硝酸溶液中,加入5.6g鐵粉充分反應後,鐵粉全部溶解,生成NO,溶液質量增加3.2g,所得溶液中Fe2+和Fe3+物質的量之比為( )
A. 4∶1 B. 2∶1 C. 1∶1 D. 3∶2

6. (1)0.5mol銅片與足量的濃HNO3反應,收集到的氣體經乾燥後(不考慮損耗),測知其密度在標准狀況下為2.5 g•L-1,其體積為 L。
(2)0.5mol銅片與一定量的濃HNO3反應,收集到的氣體經乾燥後(不考慮損耗)在標准狀況下的體積為17.92L,則參加反應的硝酸物質的量為 ;若將這些氣體完全被水吸收,則應補充標准狀況下的氧氣體積為 L。(不考慮2NO2 N2O4反應)

7. 已知:2 Fe2++Br2 = 2 Fe3++2Br-,若向100mLFeBr2溶液中緩緩通入2.24L標准狀況下的氯氣,結果有三分之一的Br-離子被氧化成Br¬2單質,試求原FeBr2溶液的物質的量濃度。

五、極值法
「極值法」即 「極端假設法」,是用數學方法解決化學問題的常用方法,一般解答有關混合物計算時採用。可分別假設原混合物是某一純凈物,進行計算,確定最大值、最小值,再進行分析、討論、得出結論。
1. 常溫下,向20L真空容器中通a mol H2S和b mol SO2(a、b都是正整數,且a≤5,b≤5),反應完全後,容器內可能達到的最大密度約是( )
(A)25.5 g•L-1 (B)14.4 g•L-1 (C)8 g•L-1 (D)5.1 g•L-1

2. 在標准狀況下,將盛滿NO、NO2、O2混合氣的集氣瓶,倒置於水槽中,完全溶解,無氣體剩餘,其產物不擴散,則所得溶液的物質的量濃度(C)數值大小范圍為( )
(A) (B)
(C) (D)
3. 當用m mol Cu與一定量的濃HNO3反應,在標准狀況下可生成nL的氣體,則m與n的數值最可能的關系是( )
(A) (B) (C) (D)無法判斷
4. 將一定質量的Mg、Zn、Al混合物與足量稀H2SO4反應,生成H2 2.8 L(標准狀況),原混合物的質量可能是( )
A. 2g B. 4g C. 8g D. 10g

計算方法》詳細答案:
一、1. 解析 混合物質量減輕是由於碳酸氫鈉分解所致,固體質量差21.0g-14.8g=6.2g,也就是生成的CO2和H2O的質量,混合物中m(NaHCO3)=168×6.2g÷62=16.8g,m(Na2CO3)=21.0g-16.8g=4.2g,所以混合物中碳酸鈉的質量分數為20%。
2.分析 本例是涉及溶解度的一道計算題。解答本題應具備理解透徹的概念、找准實際的差量、完成簡單的計算等三方面的能力。題中告知,在100℃和30℃時,100g水中分別最多溶解KNO3246g和46g,由於冷卻時溶劑的質量未變,所以溫度從100℃下降到30℃時,應析出晶體246g-46g=200g(溶解度之差)。由題意又知,在溫度下降過程中溶質的析出量,據此可得到比例式,求解出溶劑水的質量。再根據水的質量從而求出配製成100℃飽和溶液時溶質KNO3的質量。
解 設所用水的質量為x,根據題意,可列下式:
解得:x=250g
又設100℃時飽和溶液用KNO3的質量為y,根據溶質與溶劑的對應關系,列式如下:
解得:y=615g
答 將615KNO3溶解於250g水中。
3. 解 若金屬元素R的化合價為偶數x,則其相同價態的氧化物、氯化物的化學式分別為、RClx。根據關系式 ~RClx,相對分子質量差值為 ,所以n-m=27.5x,。若金屬元素R的化合價為奇數x,則其相同價態的氧化物、氯化物的化學式分別為R2Ox、RClx。由關系式R2Ox~2RClx可知,相對分子質量的差值為2×35.5x-16x=55x,所以2n-m=55x,x= 。
答 金屬元素R的化合價為 或 。
二、1.分析 本例是將稀溶液濃縮的一道填空題。若按通常方法,根據溶質守恆,列方程進行求解,則解題繁。若運用十字交叉法,運算簡潔,思路流暢。但應處理好蒸發掉水,或加入CuSO4粉末時CuSO4的質量分數,前者可視為0,後者視為100%。
解 (1) (負號代表蒸發) 說明水蒸發掉的質量為原溶液質量的,即25g。
(2) 說明加入12.5% CuSO4溶液的質量為原溶液質量的2倍,即100g。
(3)膽礬中CuSO4的質量分數為
說明加入膽礬的質量為原溶液質量的 ,即 。
(4) 說明加入CuSO4的質量為原溶液質量的,即 。
答 25 100 4.63 2.78
2. 解 方法1:NH4NO3中N%= =35%,CO(NH2)2中N%= =46.7%
說明NH4NO3與CO(NH2)2的物質的量之比為。
方法2:設混合物中NH4NO3的物質的量為1 mol,CO(NH2)2的物質的量為x。
根據題意,列式如下:

解得:x=1 mol
方法3:由於NH4NO3和CO(NH2)2分子中均含有2個N原子,根據混合物中N%=40%,可知該混合物的平均相對分子質量為。
說明NH4NO3與CO(NH2)2的物質的量之比為1∶1。
答 本題正確選項為(B)。
三、1. 解 NH4NO3中氮的質量分數是,而CO(NH2)2、NH4Cl、NH4HCO3和(NH4)2SO4中氮的質量分數分別是46.7%、26.2%、17.7%和21.1%,其中只有(NH4)2SO4和NH4HCO3一組氮的質量分數都小於25%。
因此,該樣品中混有的一組雜質一定不是(NH4)2SO4和NH4HCO3。
答 本題正確選項為(D)。
2. 解 若95mg全是MgCl2,則其反應後產生AgCl的質量為 g•mol-1
=287mg<300mg。
根據平均含義可推知:95mg雜質與足量AgNO3溶液反應生成AgCl的質量應大於300mg。這就要求雜質中Cl元素的質量分數比MgCl2中高才有可能。因此本題轉換成比較Cl元素含量的高低。現將每種的化學式作如下變形:MgCl2、Na2Cl2、Al Cl2、K2Cl2、CaCl2。顯然,金屬式量低的,Cl元素含量高,因此,只有AlCl3才有可能成為雜質。
答 本題正確選項為(B)。
3.略
4. 解 (1)NH4HCO3 NH3↑+H2O↑+CO2↑
根據質量守恆可知:n(NH4HCO3)•M(NH4HCO3)=n(混)• (混),故 (混)= 79
g•mol-1,即混和氣體的平均相對分子質量為26.3。
(2)設爆鳴氣100g,則H2的物質的量為100g×75%÷2g•mol-1=37.5mol,O2物質的量為100g×25%÷32g•mol-1=0.78mol。
故爆鳴氣的平均摩爾質量為100g÷(37.5+0.78)mol=2.619g•mol-1,即對氫氣的相對密度為2.619 g•mol-1÷2 g•mol-1=1.31。
(3)乾燥容器中氣體的平均相對分子質量為1.082×32=34.62,由34.62<36.5,故該氣體應為HCl和空氣的混和氣體。
說明HCl與空氣的體積比為5.62∶1.88=3∶1,即混和氣體中HCl的體積為1L =0.75L。由於HCl氣體極易溶於水,所以當噴泉結束後,進入容器中液體的體積即為HCl氣體的體積0.75L。
答 (1)26.3 (2)1.31 (3)0.75L
四、1. 解析 由題意得知,鐵的氧化物中的氧原子最後轉移到沉澱物CaCO3中。且n(O)=n(CaCO3)=0.0075mol, m(O)=0.0075mol×16g/mol=0.12g。m(Fe)=0.4g-0.12g=0.28g,n(Fe)=0.005mol。n(Fe)∶n(O)=2:3,選B
2. 解析 鐵的氧化物中含Fe和O兩種元素,由題意,反應後,HCl中的H全在水中,O元素全部轉化為水中的O,由關系式:2HCl~H2O~O,得:n(O)= ,m(O)=0.35mol×16g•mol―1=5.6 g;
而鐵最終全部轉化為FeCl3,n(Cl)=0.56L ÷22.4L/mol×2+0.7mol=0.75mol,n(Fe)= ,m(Fe)=0.25mol×56g•mol―1=14 g,則 ,選B。
3. 解析 粗看題目,這是一利用關系式進行多步計算的題目,操作起來相當繁瑣,但如能仔細閱讀題目,挖掘出隱蔽條件,不難發現,反應後只有Na2SO4存在於溶液中,且反應過程中SO42―並無損耗,根據電中性原則:n(SO42―)= n(Na+),則原硫酸的濃度為:2mol/L,故選C。
4. 分析 本例是鎂及其化合物有關性質應用的一道計算題。本題涉及的反應較多,有2Mg+O2 2MgO,3Mg+N2 Mg3N2,MgO+2HCl = MgCl2+H2O,Mg3N2+8HCl = 3MgCl2+2NH4Cl,NaOH+HCl = NH4Cl等反應。若用常規方法審題和解題,則分析要求高,計算難度大,思維易混亂,很難正確解答本題。現運用圖示法審題如下:

發現:MgCl2、NH4Cl、NaCl溶液中,陰陽離子電荷濃度(或物質的量)相等即電荷守恆,再根據相關微粒的物質的量守恆,列出等式,從而一舉突破,從容解答本題。
解 根據圖示,對MgCl2、NH4Cl、NaCl溶液分析,由電荷守恆得知:

式中:

解得: ,即
5. 解析 設Fe2+為xmol,Fe3+為ymol,則:
x+y= =0.1(Fe元素守恆)
2x+3y= (得失電子守恆)
得:x=0.06mol,y=0.04mol。則x∶y=3∶2。故選D。
6. 解 (1)Cu與濃HNO3反應的化學方程式為:Cu+4HNO3(濃) = Cu(NO3)2+2NO2↑+2H2O,因是足量的濃硝酸,故還原產物只是NO2。理論上講,0.5mol Cu可得1mol NO2氣體。由於氣體的密度在標准狀況下為2.5g•L-1,即摩爾質量M= g•L-1 22.4 L•mol-1=56g•mol-1。顯然,56g•mol-1大於M(NO2)(46 g•mol-1),因此,不能認為收集到的氣體全是NO2,應考慮平衡2NO2 N2O4的存在。所以收集到的氣體是NO2和N2O4的混合氣體。根據質量守恆,混合氣體的質量應等於1 mol NO2氣體的質量即為46g,所以混和氣體的體積為46g 2.5g•L-1=18.4L。
(2)Cu與濃HNO3反應的化學方程式為:Cu+4HNO3(濃) = Cu(NO3)2+2NO2↑+2H2O,因是一定量的濃HNO3,隨著反應的進行,濃HNO3逐漸變成了稀HNO3,此時反應的化學方程式為:3Cu+8HNO3(稀)=3Cu(NO3)2+2NO↑+4H2O,故收集到的氣體應是NO和NO2的混合氣體。無法得知NO和NO2各自的物質的量,但它們物質的量之和為17.92L 22.4 L•mol-1=0 .8mol。根據N元素守恆,參加反應的硝酸的物質的量為2n[Cu(NO3)2]+n(NO)+
n(NO2)=2 0.5mol+0.8mol=1.8mol。
補充O2,NO和NO2被水吸收的化學方程式為:4NO+3O2+2H2O=4HNO3,4NO2+O2+2H2O = 4HNO3,從整個氧化還原過程來看,HNO3並沒有參加反應,參加的只是Cu與O2。因此,根據電子守恆,可列下式:
解得:V=5.6L
答 (1)18.4L;(2)1.8mol,5.6L
7. 分析 本例是有關氧化還原反應的一道計算題,涉及氧化還原的選擇性(即反應的先後順序)、進程性(即氧化劑或還原劑的量控制著反應的進程)和整體性(即無論有幾個氧化還原反應發生,始終存在氧化劑所得電子數等於還原劑所失電子數,或稱電子守恆)。根據題意分析,可知Fe2+與Br-還原能力大小為Fe2+ >Br-。因此,在FeBr2溶液中通入Cl2時,首先發生:Cl2+2Fe2+ = 2Fe3++2Cl -,然後再發生:Cl2+2 Br- = Br2+2Cl -。根據Cl2用量控制反應進程,所以Fe2+和Br-失去電子數目應等於Cl2得到電子數目。據此守恆關系,列出等式,很易求解。
解 設FeBr2物質的量濃度為C,由電子守恆可知:

解得:C=1.2 mol•L-1
答 原FeBr2溶液的物質的量濃度為1.2mol•L-1。
五、1. 本題提供的思路是運用極限法來分析求解。因為M(SO2)>M(H2S),要達到最大密度,必然剩餘SO2氣體,且物質的量為最多,因此極端考慮,起始時,SO2物質的量取最大(5mol),H2S物質的量取最小(1 mol),故反應後剩餘SO2為 ,密度為 。所以(B)選項為本題正確答案。
答 本題正確選項為(B)。
2. (B) 3.略
4. 解析本題給出的數據不足,故不能求出每一種金屬的質量,只能確定取值范圍。三種金屬中產生等量的氫氣質量最大的為鋅,質量最小的為鋁。故假設金屬全部為鋅可求的金屬質量為8.125g,假設金屬全部為鋁可求的金屬質量為2.25g,金屬實際質量應在2.25g ~8.125g之間。故答案為B、C。
六、1. 解析 根據化學方程式,可以找出下列關系:FeS2~2SO2~2SO3~2H2SO4,本題從FeS2制H2SO4,是同種元素轉化的多步反應,即理論上FeS2中的S全部轉變成H2SO4中的S。得關系式FeS2~2H2SO4。過程中的損耗認作第一步反應中的損耗,得可製得98%硫酸的質量是 =3.36 。
七、1. 解析 CO和H2都有兩步反應方程式,量也沒有確定,因此逐步計算比較繁。Na2O2足量,兩種氣體完全反應,所以將每一種氣體的兩步反應合並可得H2+Na2O2=2NaOH,CO+ Na2O2=Na2CO3,可以看出最初的氣體完全轉移到最後的固體中,固體質量當然增加2.1g。選A。此題由於CO和H2的量沒有確定,兩個合並反應不能再合並!
八、1. 解析 變化主要過程為:

由題意得:Fe2O3與合金的質量相等,而鐵全部轉化為Fe2O3,故合金中Al的質量即為Fe2O3中氧元素的質量,則可得合金中鋁的質量分數即為Fe2O3中氧的質量分數,O%= ×100%=30%,選B。
九、1. 解析 。由題意,生成0.5mol H2,金屬失去的電子即為1mol,即合金的平均摩爾電子質量為10g/mol,鎂、鋁、鐵、鋅的摩爾電子質量分別為:12、9、28、32.5(單位:g/mol),由平均值可知,混合物中一種金屬的摩爾電子質量小於10g/mol,另一種大於10g/mol。故選A、C
十、1. 分析 本例是一道結合討論分析的天平平衡題,考查了在化學解題過程中的有序思維和問題解決的完整性。反應後天平仍然平衡,說明天平左右兩端加入金屬的質量與放出氫氣的質量數差值應相等。但不知鎂粉、鋁粉與鹽酸的量相對大小,所以必須通過討論判斷誰過量,從而以另一方計算產生H2的質量。因此如何判斷誰過量是解決本題的關鍵,另外,還需時刻注意調整a的取值范圍(由b的取值范圍及a和b的關系確定),才能得到本題完整解答,這一點在解題過程中是被常疏忽的。
解 根據題意,題中發生的兩個反應為:
Mg+2HCl = MgCl2+H2↑ 2Al+6HCl = 2AlCl3+3H2↑
若鹽酸完全反應,所需Mg粉質量為 ,所需鋁粉質量為 。
(1)當a≥12g,b≥9g,即鹽酸適量或不足,產生H2的質量應以HCl的量計算,因HCl的量是一定的,故產生H2的質量相等,要使天平平衡,即要求金屬的質量相等,所以a=b,此時b的范圍必須調整為b≥12g。
(2)當a<12g,b<9g,即Mg、Al不足,應以其計算產生H2的量。要使天平平衡,即要有:,解得: ,此時a的范圍必須調整為a<8.7g。
(3)當a<12g,b≥9g,即Mg不足,應以Mg算;Al過量或適量,以HCl算。要使天平平衡,必須滿足:
,解得: ,據(1)、(2)調整a的范圍為8.7g≤a<12g。
答 (1)當a≥12g時,a=b;(2)當8.7g<a<12g時,;(3)當0<a<8.7g時, 。

《常見化學計算方法》答案
一、1. 20% 2. 將615KNO3溶解於250g水中 3. R的化合價為 或。
4. 解:設Mg、Al、Fe的質量分別為x、y、z,故三者反應結束後,溶液質量增加為 x、 y、 z且相等,故有:,所以y>x>z。
5. 解 (1)水參加反應的質量為0.9g,則Na2CO3的質量為,NaHCO3的質量為9.5-5.3g=4.2g。(2)鹼石灰中CaO的質量為,NaOH的質量為9.6g-5.6g=4.0g。 6. 原混和物中CuSO4和Fe的質量分別為8.0g,4.8g。
二、1. 答 25 100 4.63 2.78 2. B
3.(1)等體積混和後,所得溶液質量分數應大於10x%。
(2) %的氨水物質的量濃度應大於 mol•L-1。
4. 該產物中Na2O的物質的量分數為20%。
5. n(Na2CO3)= 0.8 mol=0.2 mol,n(NaHCO3)= 0.8 mol=0.6 mol。
三、1. D 2.B 3.略
4. (1)26.3 (2)1.31 (3)0.75L
四、1. B 2. B 3. C
4. ,即 5. D
6. (1)18.4L;(2)1.8mol,5.6L
7. 原FeBr2溶液的物質的量濃度為1.2mol•L-1。
五、1. B 2. B 3.略 4. B C

『肆』 HFSS演算法及應用場景介紹

安氏

前言

相信每一位使用過HFSS的工程師都有一個疑問或者曾經有一個疑問:我怎麼才能使用HFSS計算的又快又准?對使用者而言,每個工程師遇到的工程問題不一樣,工程經驗不能夠直接復制;對軟體而言,隨著HFSS版本的更新,HFSS演算法越來越多,針對不同的應用場景對應不同的演算法。因此,只有實際工程問題切合合適的演算法,才能做到速度和精度的平衡。工程師在了解軟體演算法的基礎上,便能夠針對自己的需求進行很好的演算法選擇。

由於當今世界計算機的飛速發展,讓計算電磁學這門學科也有了很大的發展,如圖1所示,從大的方面來看,我們將計算電磁學分為精確的全波演算法和高頻近似演算法,在每一類下面又分了很多種演算法,結合到HFSS軟體,通過ANSYS公司40餘年來堅持不懈的研發和戰略性的收購,到目前為止,HFSS有FEM、IE(MoM)、DGTD、PO、SBR+等演算法,本文會針對每種演算法和應用場景逐一介紹,相信你看完這篇文章應該對HFSS演算法和應用場景會有更深的認識。

演算法介紹

全波演算法-有限元演算法( FEM)

有限元演算法是ANSYS HFSS的核心演算法,已有二十多年的商用歷史,也是目前業界最成熟穩定的三維電磁場求解器,有限元演算法的優點是具有極好的結構適應性和材料適應性,充分考慮材料特性:趨膚效應、介質損耗、頻變材料;是精確求解復雜材料復雜結構問題的最佳利器,有限元演算法採用四面體網格,對模擬物體能夠很好的進行還原。

FEM演算法的支配方程見下圖:

HFSS有限元演算法在網格劃分方面能夠支持自適應網格剖分、網格加密、曲線型網格,在求解時支持切向矢量基函數、混合階基函數和直接法、迭代法、區域分解法的強大的矩陣求解技術。

在應用領域,HFSS主要針對復雜結構進行求解,尤其是對於一些內部問題的求解,比高速信號完整性分析,陣列天線設計,腔體問題及電磁兼容等應用場景,非常適合有限元演算法求解。

有限元演算法結合ANSYS公司的HPC模塊,ANSYS HFSS有限元演算法可以進行電大尺寸物體的計算,大幅度提升模擬工程師的工作效率。針對寬頻問題,FEM推出了寬頻自適應網格剖分,大大提升了模擬精度。

全波演算法-積分方程演算法( IE)

積分方程演算法基於麥克斯維方程的積分形式,同時也基於格林函數,所以可自動滿足輻射邊界條件,對於簡單模型及材料的輻射問題,具有很大的優勢,但原始的積分方程法計算量太大,很難用於實際的數值計算中,針對此問題, HFSS 中的 IE演算法提供了兩種加速演算法,一種是 ACA 加速,一種是 MLFMM,分布針對不同的應用類型。 ACA 方法基於數值層面的加速技術,具有更好的普適性,但效率相比 MLFMM 稍差, MLFMM 演算法基於網格層面的加速,對金屬材料,鬆散結構,具有更高的效率。

IE演算法的支配方程見下圖:

IE演算法是三維矩量法積分方程技術,支持三角形網格剖分。IE演算法不需要像FEM演算法一樣定義輻射邊界條件,在HFSS中主要用於高效求解電大尺寸、開放結構問題。與HFSS FEM演算法一樣,支持自適應網格技術,也可以高精度、高效率解決客戶問題,同時支持將FEM的場源鏈接到IE中進行求解。HFSS-IE演算法對金屬結構具有很高的適應性,其主要應用領域天線設計、天線布局、 RCS、 EMI/EMC模擬等方向。

高頻近似演算法-PO演算法

FEM演算法和IE演算法是精確的全波演算法,在超大電尺寸問題上,使用精確全波演算法會造成效率的降低。針對超大電尺寸問題,ANSYS推出PO(物理光學法)演算法,PO 演算法屬於高頻演算法,非常適合求解此類問題,在適合其求解的問題中,具有非常好的效率優勢。

PO演算法主要原理為射線照射區域產生感應電流,而且在陰影區域設置為零電流,不考慮射線追跡或多次反射,以入射波作為激勵源,將平面波或鏈接FEM(IE)的場數據作為饋源。但由於不考慮射線的多次反射和繞射等現象,一般針對物理尺寸超大,結構均勻的物體電磁場計算,在滿足精度的要求,相比全波演算法效率明顯提高。比如大平台上的天線布局,大型反射面天線等等。

高頻近似演算法-SBR+演算法

PO演算法可以解決超大電尺寸問題的計算,但由於未考慮到多次反射等物理物體,主要用於結構均勻物理的電磁場計算。針對復雜結構且超大電尺寸問題,ANSYS通過收購Delcross公司(Savant軟體)引入了SBR+演算法, SBR+是在SBR演算法(天線發射出射線,在表面「繪制」 PO電流)的基礎上考慮了爬行波射線(沿著表面追跡射線)、物理繞射理論PTD(修正邊緣處的PO電流)、一致性繞射理論UTD(沿著邊緣發射衍射射線,繪制陰影區域的電流),因此SBR+演算法是高頻射線方法,具有非常高效的速度,同時具有非常好的精度,在大型平台的天線布局中效果非常好。

SBR+支持從FEM、IE中導入遠場輻射方向圖或者電流源,也支持導入相應的測試數據,SBR+演算法主要用於天線安裝分析,支持多核、GPU等並行求解方式並且大多數任務可在低於8 GB內存下完成。

混合演算法( FEBI, IE-Region,PO-Region,SBR+ Region)

前面對頻率內的各種演算法做了介紹並說明了各種演算法應用的場景,很多時候碰到的工程問題既包括復雜結構物理也包括超大尺寸物理,如新能源汽車上的天線布局問題,對模擬而言,最好的精度是用全波演算法求解,最快的速度是採用近似算求解,針對該問題,ANSYS公司將FEM演算法、 IE 演算法、PO 演算法、SBR+演算法等融合起來,推出混合演算法。在一個應用案例中,採用不同演算法的優點而迴避不同演算法的缺點,可極大限度的提高演算法的效率,以及成為頻域內解決大型復雜問題的必備演算法。

HFSS中FEM與IE可以通過IE Region與FEBI邊界進行混合求解,FEM與PO、SBR+演算法可以通過添加PO Region及SBR+ Region進行混合,混合演算法的使用擴大了HFSS的使用范圍。

時域演算法-transient演算法

HFSS時域求解是基於間斷伽略金法(discontinuous Galerkin method, DGTD)的三維全波電磁場模擬求解器,採用基於四面體有限元技術,能得到和HFSS頻域求解器一樣的自適應網格剖分精度,該技術使得HFSS的求精精度成為電磁場行業標准。這項技術完善了HFSS的頻域求解器技術,幫助工程師對更加深入詳細了解其所設計器件的電磁性能。

Transient演算法支配方程見下圖:

採用HFSS-Transient演算法,工程師可利用短脈沖激勵對靜電放電、電磁干擾、雷擊和等應用問題開展研究,還包括時域反射阻抗以及短時激勵下的瞬態場顯示也可以藉助它來完成。

諧振分析-Eigenmode演算法

諧振特性是每個結構都存在固有的電磁諧振,諧振的模式、頻率和品質因子,與其結構尺寸相關,這些諧振既可能是干擾源的放大器,也可能是敏感電路的雜訊接收器。諧振會導致信號完整性、電源完整性和電磁兼容問題,因而了解諧振對加強設計可靠性很有幫助。

Eigenmode演算法支配方程見下圖:

在HFSS中,使用eigenmode演算法可計算三維結構諧振模式,並可呈現圖形化空間的諧振電壓波動,分析結構的固有諧振特性。依據諧振分析的結果,指導機箱內設備布局和PCB層疊布局,改善電磁兼容特性。

總結

HFSS裡面有各種不同的演算法,有全波演算法、近似演算法以及時域演算法,工程師可以格局需要選擇不同演算法(最高的精度和最高的效率)。首先針對頻域演算法,使用范圍見圖14,通常FEM演算法和IE演算法非常適合於中小尺寸問題,對大型問題,FEM/IE運行時間/內存需求非常巨大; PO方法適合解決超大電尺寸問題,但對問題復雜度有限制,通常通常不能提供客戶所期望的精度,但對於均勻物體是一個很好的選擇;SBR+演算法適合解決超大電尺寸問題,對復雜結構也能夠提供很好的精度和速度;針對既有電小尺寸復雜結構計算問題,又有電大尺寸布局計算問題,混合演算法是一個很好的選擇。Transient演算法適合解決與時間相關的電磁場問題,如ESD、TDR等;Eigenmode演算法專門針對諧振模擬。

想要更多,點擊此處,關注技術鄰官網

『伍』 不銹鋼板的計算方法

Steel GradeDensity(g/cm3)鋼 號密 度304,304L,305,321

201,202,301,3027.93316,316L,347

309S,310S7.98405,410,4207.75409,430,4347.7

以下用實例來解析不銹鋼板重量計算方法

例如要計算一塊2mm厚度,規格為1220mm*2440mm,材質是304不銹鋼板的重量是多少?可以這樣計算

重量=2mmx1220mmx2440mm,2x1.22x2.44x7.93=47.21公斤

鋼板是用鋼水澆注,冷卻後壓制而成的平板狀鋼材。鋼板是平板狀,矩形的,可直接軋制或由寬鋼帶剪切而成。那麼,你知道不銹鋼板重量計算公式是什麼嗎?不了解的朋友可以看看下面的介紹。

不銹鋼板重量計算公式大全

鋼板重量計算公式:

鋼板重量(公斤)=7.85×厚度×長×寬(表示法:δ厚度×寬×長=幾件)

鋼管重量(公斤)=0.00617×直徑×直徑×長度

方鋼重量(公斤)=0.00785×邊寬×邊寬×長度

六角鋼重量(公斤)=0.0068×對邊寬×對邊寬×長度

八角鋼重量(公斤)=0.0065×對邊寬×對邊寬×長度

螺紋鋼重量(公斤)=0.00617×計算直徑×計算直徑×長度

角鋼重量(公斤)=0.00785×(邊寬+邊寬-邊厚)×邊厚×長度

扁鋼重量(公斤)=0.00785×厚度×邊寬×長度

鋼管重量(公斤)=0.02466×壁厚×(外徑-壁厚)×長度

不銹鋼板重量計算公式大全

園紫銅棒重量(公斤)=0.00698×直徑×直徑×長度

園黃銅棒重量(公斤)=0.00668×直徑×直徑×長度

園鋁棒重量(公斤)=0.0022×直徑×直徑×長度

方紫銅棒重量(公斤)=0.0089×邊寬×邊寬×長度

方黃銅棒重量(公斤)=0.0085×邊寬×邊寬×長度

方鋁棒重量(公斤)=0.0028×邊寬1×邊寬×長度

六角紫銅棒重量(公斤)=0.0077×對邊寬×對邊寬×長度

六角黃銅棒重量(公斤)=0.00736×邊寬×對邊寬×長度

六角鋁棒重量(公斤)=0.00242×對邊寬×對邊寬×長度

紫銅板重量(公斤)=0.0089×厚×寬×長度

不銹鋼板重量計算公式大全

黃銅板重量(公斤)=0.0085×厚×寬×長度

鋁板重量(公斤)=0.00171×厚×寬×長度

園紫銅管重量(公斤)=0.028×壁厚×(外徑-壁厚)×長度

園黃銅管重量(公斤)=0.0267×壁厚×(外徑-壁厚)×長度

園鋁管重量(公斤)=0.00879×壁厚×(外徑-壁厚)×長度

園鋼重量(公斤)=0.00617×直徑×直徑×長度

註:公式中長度單位為米,面積單位為平方米,其餘單位均為毫米

長方形的面積=長×寬 正方形的面積=邊長×邊長 三角形的面積=底×高÷2 圓的面積=圓周率×半徑×半徑 三角形的面積=底×高÷2

1噸(t)=1000千克(kg) 1米=100厘米 1 米=1000毫米

鋼板理論重量表及規格表

簡單而言,鋼板就是厚度與寬度、長度比相差較大的平板鋼材。它可直接軋制或由寬鋼帶剪切而成,在建築中用途廣泛。這里,我們將以表格的形式給出鋼板的理論重量表和規格表

『陸』 excel求和公式

在EXCEL工作表中可以用SUM函數或「+」符號進行求和運算。

如:=A1+A2+A3+B1+B2+B3用SUM函數可以寫成:=SUM(A1:B3)

操作方法如下:

1、首先點擊excl

功能簡介:

SUM函數是一個數學和三角函數,可將值相加。 可以將單個值、單元格引用或是區域相加,或者將三者的組合相加。

(1)語法:SUM(number1,[number2],...)

number1 (必需參數)要相加的第一個數字。 該數字可以是 數字,或Excel中A1 之類的單元格引用或 A2:A8 之類的單元格範圍。

number2,這是要相加的第二個數字。

(2) 說明

1、邏輯值及數字的文本表達式將被計算;

2、如果參數為數組或引用,只有其中的數字將被計算。數組或引用中的空白單元格、邏輯值、文本將被忽略;

3、如果參數中有錯誤值或為不能轉換成數字的文本,將會導致錯誤。

以上內容參考:網路--sum

『柒』 想問一下有沒有比較方便的人臉識別演算法,求推薦

主流的人臉識別技術基本上可以歸結為三類,即:基於幾何特徵的方法、基於模板的方法和基於模型的方法。
1. 基於幾何特徵的方法是最早、最傳統的方法,通常需要和其他演算法結合才能有比較好的效果;
2. 基於模板的方法可以分為基於相關匹配的方法、特徵臉方法、線性判別分析方法、奇異值分解方法、神經網路方法、動態連接匹配方法等。
3. 基於模型的方法則有基於隱馬爾柯夫模型,主動形狀模型和主動外觀模型的方法等。
1. 基於幾何特徵的方法
人臉由眼睛、鼻子、嘴巴、下巴等部件構成,正因為這些部件的形狀、大小和結構上的各種差異才使得世界上每個人臉千差萬別,因此對這些部件的形狀和結構關系的幾何描述,可以做為人臉識別的重要特徵。幾何特徵最早是用於人臉側面輪廓的描述與識別,首先根據側面輪廓曲線確定若干顯著點,並由這些顯著點導出一組用於識別的特徵度量如距離、角度等。Jia 等由正麵灰度圖中線附近的積分投影模擬側面輪廓圖是一種很有新意的方法。
採用幾何特徵進行正面人臉識別一般是通過提取人眼、口、鼻等重要特徵點的位置和眼睛等重要器官的幾何形狀作為分類特徵,但Roder對幾何特徵提取的精確性進行了實驗性的研究,結果不容樂觀。
可變形模板法可以視為幾何特徵方法的一種改進,其基本思想是 :設計一個參數可調的器官模型 (即可變形模板),定義一個能量函數,通過調整模型參數使能量函數最小化,此時的模型參數即做為該器官的幾何特徵。
這種方法思想很好,但是存在兩個問題,一是能量函數中各種代價的加權系數只能由經驗確定,難以推廣,二是能量函數優化過程十分耗時,難以實際應用。 基於參數的人臉表示可以實現對人臉顯著特徵的一個高效描述,但它需要大量的前處理和精細的參數選擇。同時,採用一般幾何特徵只描述了部件的基本形狀與結構關系,忽略了局部細微特徵,造成部分信息的丟失,更適合於做粗分類,而且目前已有的特徵點檢測技術在精確率上還遠不能滿足要求,計算量也較大。
2. 局部特徵分析方法(Local Face Analysis)
主元子空間的表示是緊湊的,特徵維數大大降低,但它是非局部化的,其核函數的支集擴展在整個坐標空間中,同時它是非拓撲的,某個軸投影後臨近的點與原圖像空間中點的臨近性沒有任何關系,而局部性和拓撲性對模式分析和分割是理想的特性,似乎這更符合神經信息處理的機制,因此尋找具有這種特性的表達十分重要。基於這種考慮,Atick提出基於局部特徵的人臉特徵提取與識別方法。這種方法在實際應用取得了很好的效果,它構成了FaceIt人臉識別軟體的基礎。
3. 特徵臉方法(Eigenface或PCA)
特徵臉方法是90年代初期由Turk和Pentland提出的目前最流行的演算法之一,具有簡單有效的特點, 也稱為基於主成分分析(principal component analysis,簡稱PCA)的人臉識別方法。
特徵子臉技術的基本思想是:從統計的觀點,尋找人臉圖像分布的基本元素,即人臉圖像樣本集協方差矩陣的特徵向量,以此近似地表徵人臉圖像。這些特徵向量稱為特徵臉(Eigenface)。
實際上,特徵臉反映了隱含在人臉樣本集合內部的信息和人臉的結構關系。將眼睛、面頰、下頜的樣本集協方差矩陣的特徵向量稱為特徵眼、特徵頜和特徵唇,統稱特徵子臉。特徵子臉在相應的圖像空間中生成子空間,稱為子臉空間。計算出測試圖像窗口在子臉空間的投影距離,若窗口圖像滿足閾值比較條件,則判斷其為人臉。
基於特徵分析的方法,也就是將人臉基準點的相對比率和其它描述人臉臉部特徵的形狀參數或類別參數等一起構成識別特徵向量,這種基於整體臉的識別不僅保留了人臉部件之間的拓撲關系,而且也保留了各部件本身的信息,而基於部件的識別則是通過提取出局部輪廓信息及灰度信息來設計具體識別演算法。現在Eigenface(PCA)演算法已經與經典的模板匹配演算法一起成為測試人臉識別系統性能的基準演算法;而自1991年特徵臉技術誕生以來,研究者對其進行了各種各樣的實驗和理論分析,FERET'96測試結果也表明,改進的特徵臉演算法是主流的人臉識別技術,也是具有最好性能的識別方法之一。
該方法是先確定眼虹膜、鼻翼、嘴角等面像五官輪廓的大小、位置、距離等屬性,然後再計算出它們的幾何特徵量,而這些特徵量形成一描述該面像的特徵向量。其技術的核心實際為「局部人體特徵分析」和「圖形/神經識別演算法。」這種演算法是利用人體面部各器官及特徵部位的方法。如對應幾何關系多數據形成識別參數與資料庫中所有的原始參數進行比較、判斷與確認。Turk和Pentland提出特徵臉的方法,它根據一組人臉訓練圖像構造主元子空間,由於主元具有臉的形狀,也稱為特徵臉 ,識別時將測試 圖像投影到主元子空間上,得到一組投影系數,和各個已知人的人臉圖像比較進行識別。Pentland等報告了相當好的結果,在 200個人的 3000幅圖像中得到 95%的正確識別率,在FERET資料庫上對 150幅正面人臉象只有一個誤識別。但系統在進行特徵臉方法之前需要作大量預處理工作如歸一化等。
在傳統特徵臉的基礎上,研究者注意到特徵值大的特徵向量 (即特徵臉 )並不一定是分類性能好的方向,據此發展了多種特徵 (子空間 )選擇方法,如Peng的雙子空間方法、Weng的線性歧義分析方法、Belhumeur的FisherFace方法等。事實上,特徵臉方法是一種顯式主元分析人臉建模,一些線性自聯想、線性壓縮型BP網則為隱式的主元分析方法,它們都是把人臉表示為一些向量的加權和,這些向量是訓練集叉積陣的主特徵向量,Valentin對此作了詳細討論。總之,特徵臉方法是一種簡單、快速、實用的基於變換系數特徵的演算法,但由於它在本質上依賴於訓練集和測試集圖像的灰度相關性,而且要求測試圖像與訓練集比較像,所以它有著很大的局限性。
基於KL 變換的特徵人臉識別方法
基本原理:
KL變換是圖象壓縮中的一種最優正交變換,人們將它用於統計特徵提取,從而形成了子空間法模式識別的基礎,若將KL變換用於人臉識別,則需假設人臉處於低維線性空間,且不同人臉具有可分性,由於高維圖象空間KL變換後可得到一組新的正交基,因此可通過保留部分正交基,以生成低維人臉空間,而低維空間的基則是通過分析人臉訓練樣本集的統計特性來獲得,KL變換的生成矩陣可以是訓練樣本集的總體散布矩陣,也可以是訓練樣本集的類間散布矩陣,即可採用同一人的數張圖象的平均來進行訓練,這樣可在一定程度上消除光線等的干擾,且計算量也得到減少,而識別率不會下降。
4. 基於彈性模型的方法
Lades等人針對畸變不變性的物體識別提出了動態鏈接模型 (DLA),將物體用稀疏圖形來描述 (見下圖),其頂點用局部能量譜的多尺度描述來標記,邊則表示拓撲連接關系並用幾何距離來標記,然後應用塑性圖形匹配技術來尋找最近的已知圖形。Wiscott等人在此基礎上作了改進,用FERET圖像庫做實驗,用 300幅人臉圖像和另外 300幅圖像作比較,准確率達到 97.3%。此方法的缺點是計算量非常巨大 。
Nastar將人臉圖像 (Ⅰ ) (x,y)建模為可變形的 3D網格表面 (x,y,I(x,y) ) (如下圖所示 ),從而將人臉匹配問題轉化為可變形曲面的彈性匹配問題。利用有限元分析的方法進行曲面變形,並根據變形的情況判斷兩張圖片是否為同一個人。這種方法的特點在於將空間 (x,y)和灰度I(x,y)放在了一個 3D空間中同時考慮,實驗表明識別結果明顯優於特徵臉方法。
Lanitis等提出靈活表現模型方法,通過自動定位人臉的顯著特徵點將人臉編碼為 83個模型參數,並利用辨別分析的方法進行基於形狀信息的人臉識別。彈性圖匹配技術是一種基於幾何特徵和對灰度分布信息進行小波紋理分析相結合的識別演算法,由於該演算法較好的利用了人臉的結構和灰度分布信息,而且還具有自動精確定位面部特徵點的功能,因而具有良好的識別效果,適應性強識別率較高,該技術在FERET測試中若干指標名列前茅,其缺點是時間復雜度高,速度較慢,實現復雜。
5. 神經網路方法(Neural Networks)
人工神經網路是一種非線性動力學系統,具有良好的自組織、自適應能力。目前神經網路方法在人臉識別中的研究方興未艾。Valentin提出一種方法,首先提取人臉的 50個主元,然後用自相關神經網路將它映射到 5維空間中,再用一個普通的多層感知器進行判別,對一些簡單的測試圖像效果較好;Intrator等提出了一種混合型神經網路來進行人臉識別,其中非監督神經網路用於特徵提取,而監督神經網路用於分類。Lee等將人臉的特點用六條規則描述,然後根據這六條規則進行五官的定位,將五官之間的幾何距離輸入模糊神經網路進行識別,效果較一般的基於歐氏距離的方法有較大改善,Laurence等採用卷積神經網路方法進行人臉識別,由於卷積神經網路中集成了相鄰像素之間的相關性知識,從而在一定程度上獲得了對圖像平移、旋轉和局部變形的不變性,因此得到非常理想的識別結果,Lin等提出了基於概率決策的神經網路方法 (PDBNN),其主要思想是採用虛擬 (正反例 )樣本進行強化和反強化學習,從而得到較為理想的概率估計結果,並採用模塊化的網路結構 (OCON)加快網路的學習。這種方法在人臉檢測、人臉定位和人臉識別的各個步驟上都得到了較好的應用,其它研究還有 :Dai等提出用Hopfield網路進行低解析度人臉聯想與識別,Gutta等提出將RBF與樹型分類器結合起來進行人臉識別的混合分類器模型,Phillips等人將MatchingPursuit濾波器用於人臉識別,國內則採用統計學習理論中的支撐向量機進行人臉分類。
神經網路方法在人臉識別上的應用比起前述幾類方法來有一定的優勢,因為對人臉識別的許多規律或規則進行顯性的描述是相當困難的,而神經網路方法則可以通過學習的過程獲得對這些規律和規則的隱性表達,它的適應性更強,一般也比較容易實現。因此人工神經網路識別速度快,但識別率低 。而神經網路方法通常需要將人臉作為一個一維向量輸入,因此輸入節點龐大,其識別重要的一個目標就是降維處理。
PCA的演算法描述:利用主元分析法 (即 Principle Component Analysis,簡稱 PCA)進行識別是由 Anderson和 Kohonen提出的。由於 PCA在將高維向量向低維向量轉化時,使低維向量各分量的方差最大,且各分量互不相關,因此可以達到最優的特徵抽取。

熱點內容
方舟編譯器廠家 發布:2024-11-28 04:13:15 瀏覽:979
android源碼編輯 發布:2024-11-28 04:12:38 瀏覽:596
兩路伺服器是什麼意思 發布:2024-11-28 03:39:39 瀏覽:937
sql精簡版64 發布:2024-11-28 03:36:28 瀏覽:73
金立怎麼加密圖片 發布:2024-11-28 03:31:43 瀏覽:664
2017玩dnf電腦什麼配置 發布:2024-11-28 03:30:56 瀏覽:520
ftp掛載存儲ip配置 發布:2024-11-28 03:28:51 瀏覽:963
山耐斯空壓機密碼多少 發布:2024-11-28 03:26:28 瀏覽:405
安卓拍照搖一搖是什麼軟體 發布:2024-11-28 03:26:27 瀏覽:257
小米2s存儲卡 發布:2024-11-28 03:15:49 瀏覽:649