成像實驗代碼
- 宣告
- 代碼初始化部分
- BUG:
宣告
由于實驗的老師特有的查重方式以及計算成績的方法,所以請不要直接照抄本文的代碼,
這里的代碼可能會有一些BUG,請大家注意
注:我這里的使用的是C++,VS2019 ,Graph2019,可能之后的版本會不同這里說明一下,說不定等我啥時間閑了,我寫個C#版本的,(笑)
代碼初始化部分
這里我默認你是已經將資料進行了完整的讀入,
首先 計算行列的大小;
這里我先定義一下:
左到右-》0到行
軸上到外殼-》0到列
列 = 電極內半徑網格數+電極內孔邊沿到邊界處的徑向網格數
lin = M1+M2;
//
行 row= 相鄰電極之間劃分的步數之和+電極個數(老師檔案上寫的總網格數N1+N2+....+Nn+n-1,我感覺這個是行數,不想是總網格數)
//之后是開空間
電場的空間大小= row*lin;
//由于電極孔徑內是空的,所以這里初始化時將他們都設為0
for (int i=0;i<lin;i++){
if (i<電極內孔徑半徑){
for (int j=0;j<row;j++)
E[j,i]=0;
}
if (電極內孔徑半徑<i<電極內孔到邊緣的半徑){
//這里遇到了電極,所以將電極之間的部分設定為0,
for (int j=前一個電極的位置;j<后一個電極的位置;j++){
E[j,i]=0;
}
這里再加一個將電極的電位賦予的部分,
這里寫一個電極跳轉,把j的引數更新,
}
//注:這里要注意一下熒光屏的位置
if(i==最外面的一行){
將電極定位
for(int k = 上一個電極的位置;k<后一個電極的位置;k++){
for (int x =1;x<N;x++){
E[k,i]=后一個電極的電位V2-前一個電極的電位V1)/這兩個之間的步長N *x
}
}//大致意思就是最外面電極之間的電位是逐漸改變的,有一定的梯度,
注意熒光螢屏
記得電極要跳轉,k的引數記得改變
}
}
BUG:
上面這個邏輯,大概率是有一些問題,有些細節沒有太注意,大家留心,
這里其實也可以寫一些關于Z,R軸的坐標問題,我感覺這里其實不算是初始化就沒寫,
這里我說一下我的思路
loop{
Z軸的步長 = 每個電極之間的距離/電極之間對應的步長
}
R軸步長 = 對應的半徑/對應的步長
loop{
Z軸坐標 =Z軸每次疊加對應步長之和的結果
}
loop{
R軸坐標 = R軸每次疊加對應步長之和的結果
}
同樣記得關閉空間,記得注意;
大家加油!(這里如此麻煩就2分,不知該說啥,哭)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287384.html
標籤:其他
上一篇:干貨來襲!3天0基礎Python實戰專案快速學會人工智能必學數學基礎全套(含原始碼)(第2天)微積分篇:極限與導數、梯度下降與積分
