日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

基于HASM模型的土壤高精度建模matlab仿真

發布時間:2023/12/20 循环神经网络 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于HASM模型的土壤高精度建模matlab仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎訂閱《FPGA學習入門100例教程》、《MATLAB學習入門100例教程》

目錄

一、理論基礎

二、核心程序

三、測試結果


一、理論基礎

? ? ? 土壤有機碳庫是陸地生態系統中最豐富的碳庫,其動態變化和存儲分布在土壤質量評估、農田生態管理和氣候變化適應與減緩等領域起著至關重要的作用。土壤有機碳儲量的準確評估通常取決于土壤有機碳密度,其微小變化會顯著影響大氣中二氧化碳的濃度,從而進一步影響全球碳循環和生態平衡。因此對土壤有機碳密度進行精細預測對于更好的評估區域甚至全球土壤有機碳儲量和理解生態系統碳循環至關重要。此外,土壤有機碳是景觀中的三維實體,應更注意其垂直分布。其空間預測不僅應停留在表層,深層同樣擁有大量的碳儲量,且與評估總土壤有機碳儲量相比,各層儲量更為重要。表層土壤有機碳對地表徑流、水分滲透、侵蝕控制和土壤耕作起著顯著作用;而亞表層土壤碳動態比表層慢7倍。因此,更好地表述不同層土壤有機碳密度和儲量的空間分布很有必要。此外,明確不同地表類型上土壤有機碳儲量在不同土壤深度的差異,可以更好理解土壤有機碳的垂直分布,從而有助于理解深層碳如何轉化為碳源或碳匯。

? ? ? ?基于數字化土壤制圖,結合多種環境信息可實現土壤有機碳相關屬性的三維制圖。研究人員通常擬合土壤有機碳密度與土壤深度的函數以實現土壤有機碳密度和儲量的三維預測;此外,結合土壤深度作為協變量的地統計一步法模型也得到了廣泛應用。然而,現有的土壤有機碳儲量估算方法存在以下缺陷。第一,對于函數擬合方法來說,各層獨立建模忽略了不同深度之間的關系及其相互作用;第二,建模過程中,若將不同的環境協變量應用于不同的深度區間,會使模型解釋更加困難;第三,并非所有采樣點都隨深度遵循同一衰減模式,且任一層的屬性值都會影響總體擬合效果;第四,對于使用土壤深度作為協變量的三維建模方法,存在不確定性較大、精度較低、無法生成現實預測的問題。因此,建立充分利用土壤深度信息,并考慮各層之間的非線性關系以及地表分類信息的融合方法,有助于解決上述問題,進一步提高土壤有機碳儲量估算精度。

? ? ? ?高精度曲面建模(highaccuracysurfacemodeling,hasm)方法是近年來發展起來的用于地理信息系統和生態建模的一種基于微分幾何學曲面理論的曲面建模方法。

? ? ? ?HASM原始的模型,其差分迭代公式如下所示:

式中:

? ? ? ?上面的公式非常復雜,會導致計算量非常大,且運算速度慢,所以,我們在實際中,會簡化這個HASM模型,下面重點介紹我們是如何簡化這個模型的。

·首先簡化第一類參數:

這里設hxi = hyi = h,那么上面的式子可以等效為:

?

·然后簡化第二類參數:

上面的式子,同樣道理,可以簡化為:

?

?·最后簡化第三類參數:

上面的式子,同樣道理,可以簡化為:

?最后,我們得到的差分迭代公式為:

二、核心程序

clc; clear; close all; warning off;sel2 = 2; %1: 全采樣,2:1/4的采樣率,3:1/9的采樣率,4:1/16的采樣率......... Interation = 10; %迭代次數%調用數據文件 load datas.mat %ncols 2268 %nrows 3105 %xllcorner 395510.20315996 %yllcorner 3279918.3520021 %cellsize 25 %NODATA_value -9999 %將數據中的NAN轉換為-9999,因為-9999表示的是非數據 %下面的代碼是將你原始數據中的NAN類型的數據轉換為非值數據-9999 [r,c] = size(data); for i = 1:rfor j = 1:cif isnan(data(i,j)) == 1data(i,j) = -9999;endend end %-9999不參與其中的運算,將其直接替換為0 for i = 1:rfor j = 1:cif data(i,j) == -9999data(i,j) = 0;endend end %由于原始的數據太大了,MATLAB會報錯,內存不夠,而且HASM的計算計算量非常巨大,所以需要降低原始數據的維度 %這個代碼就是降維功能 data2 = func_samples(data,sel2); clear data; data = data2; [r,c] = size(data);%利用HASM進行曲面建模,并進行迭代從而逼近最后的真實值 %分辨率 h = 0.5; alpha = 0.07; %HASM建模結果變量 f = zeros(r,c,Interation); %第一類基本變量 E = zeros(r,c); F = zeros(r,c); G = zeros(r,c); %第二類基本變量 L = zeros(r,c); N = zeros(r,c); %第三類基本變量 T1_11 = zeros(r,c); T1_22 = zeros(r,c); T2_11 = zeros(r,c); T2_22 = zeros(r,c);%開始迭代循環 if Interation > 15disp('There will be out of memory'); break; else for n = 1:Interationdisp('iteration ');nfor i = 2:r-1for j = 2:c-1if n == 1%以下就是HASM的迭代公式,具體的公式,將在設計說明中介紹f(i,j,n) = data(i,j);%第一類基本變量E(i,j) = 1 + (( f(i,j+1,n) - f(i,j-1,n) )/( 2*h ))^2;F(i,j) = (( f(i,j+1,n) - f(i,j-1,n) )/( 2*h )) * (( f(i+1,j,n) - f(i-1,j,n) )/( 2*h ));G(i,j) = 1 + (( f(i,j+1,n) - f(i,j-1,n) )/( 2*h ))^2;%第二類基本變量L(i,j) = ( f(i+1,j,n) - 2*f(i,j,n) + f(i-1,j,n) )/(sqrt( 1 + (( f(i,j+1,n) - f(i,j-1,n) )/( 2*h ))^2 + (( f(i+1,j,n) - f(i-1,j,n) )/( 2*h ))^2));N(i,j) = ( f(i,j+1,n) - 2*f(i,j,n) + f(i,j-1,n) )/(sqrt( 1 + (( f(i,j+1,n) - f(i,j-1,n) )/( 2*h ))^2 + (( f(i+1,j,n) - f(i-1,j,n) )/( 2*h ))^2));%第三類基本變量 T1_11(i,j) = ( G(i,j) * ( E(i+1,j) - E(i-1,j) ) - 2*F(i,j)*( F(i+1,j) - F(i-1,j) ) + F(i,j)*( E(i,j+1) - E(i,j-1) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T2_11(i,j) =(2*E(i,j) * ( F(i+1,j) - F(i-1,j) ) - E(i,j)*( E(i,j+1) - E(i,j-1) ) - F(i,j)*( E(i+1,j) - E(i-1,j) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T1_22(i,j) =(2*G(i,j) * ( F(i,j+1) - F(i,j-1) ) - G(i,j)*( G(i+1,j) - G(i-1,j) ) - F(i,j)*( G(i,j+1) - G(i,j-1) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T2_22(i,j) =( E(i,j) * ( G(i,j+1) - G(i,j-1) ) - 2*F(i,j)*( F(i,j+1) - F(i,j-1) ) + F(i,j)*( G(i+1,j) - G(i-1,j) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );endif n >= 2%以下就是HASM的迭代公式,具體的公式,將在設計說明中介紹%第一類基本變量E(i,j) = 1 + (( f(i,j+1,n-1) - f(i,j-1,n-1) )/( 2*h ))^2;F(i,j) = (( f(i,j+1,n-1) - f(i,j-1,n-1) )/( 2*h )) * (( f(i+1,j,n-1) - f(i-1,j,n-1) )/( 2*h ));G(i,j) = 1 + (( f(i,j+1,n-1) - f(i,j-1,n-1) )/( 2*h ))^2;%第二類基本變量L(i,j) = ( f(i+1,j,n-1) - 2*f(i,j,n-1) + f(i-1,j,n-1) )/(sqrt( 1 + (( f(i,j+1,n-1) - f(i,j-1,n-1) )/( 2*h ))^2 + (( f(i+1,j,n-1) - f(i-1,j,n-1) )/( 2*h ))^2));N(i,j) = ( f(i,j+1,n-1) - 2*f(i,j,n-1) + f(i,j-1,n-1) )/(sqrt( 1 + (( f(i,j+1,n-1) - f(i,j-1,n-1) )/( 2*h ))^2 + (( f(i+1,j,n-1) - f(i-1,j,n-1) )/( 2*h ))^2));%第三類基本變量 T1_11(i,j) = ( G(i,j) * ( E(i+1,j) - E(i-1,j) ) - 2*F(i,j)*( F(i+1,j) - F(i-1,j) ) + F(i,j)*( E(i,j+1) - E(i,j-1) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T2_11(i,j) =(2*E(i,j) * ( F(i+1,j) - F(i-1,j) ) - E(i,j)*( E(i,j+1) - E(i,j-1) ) - F(i,j)*( E(i+1,j) - E(i-1,j) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T1_22(i,j) =(2*G(i,j) * ( F(i,j+1) - F(i,j-1) ) - G(i,j)*( G(i+1,j) - G(i-1,j) ) - F(i,j)*( G(i,j+1) - G(i,j-1) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h );T2_22(i,j) =( E(i,j) * ( G(i,j+1) - G(i,j-1) ) - 2*F(i,j)*( F(i,j+1) - F(i,j-1) ) + F(i,j)*( G(i+1,j) - G(i-1,j) ) )/( 4*( E(i,j)*G(i,j) - F(i,j)^2 )*h ); %差分方程的迭代%TMP1 = f(i+1,j,n) - 2*f(i,j,n) + f(i-1,j,n)TMP1(i,j) = (h^2) * ( T1_11(i,j) * (f(i+1,j,n) - f(i-1,j,n))/(2*h) + T2_11(i,j) * (f(i,j+1,n) - f(i,j-1,n))/(2*h) + L(i,j)/(sqrt(E(i,j) + G(i,j) -1)) );%刪除異常點if TMP1(i,j) > 8TMP1(i,j) = 8;endif TMP1(i,j) < -6TMP1(i,j) = -6;end%TMP2 = f(i,j+1,n) - 2*f(i,j,n) + f(i,j-1,n)TMP2(i,j) = (h^2) * ( T1_22(i,j) * (f(i+1,j,n) - f(i-1,j,n))/(2*h) + T2_22(i,j) * (f(i,j+1,n) - f(i,j-1,n))/(2*h) + N(i,j)/(sqrt(E(i,j) + G(i,j) -1)) ); %刪除異常點if TMP2(i,j) > 8TMP2(i,j) = 8;end if TMP2(i,j) < -6TMP2(i,j) = -6;end%下面是上面的迭代結果,計算f(i,j,n)%TMP1 = f(i+1,j,n) - 2*f(i,j,n) + f(i-1,j,n)%TMP2 = f(i,j+1,n) - 2*f(i,j,n) + f(i,j-1,n)f(i,j,n) = f(i,j,n-1) + alpha*(TMP1(i,j) - TMP2(i,j))/2;endendendend endfigure; Fmin = max(min(min(f(:,:,Interation))),0); Fmax = max(max(f(:,:,Interation)))/3; clims = [Fmin,Fmax]; data3 = f(:,:,Interation); imagesc(data3,clims); title('HASM迭代后的結果'); axis square;%保存最后的計算結果 save result.mat data3%將數據保存到txt文件中 fid = fopen('savedat.txt','wt'); for i = 1:rfor j = 1:cfprintf(fid,'%d ',data3(i,j)); endfprintf(fid,'\n'); end fclose(fid);

三、測試結果

A16-16?

?

總結

以上是生活随笔為你收集整理的基于HASM模型的土壤高精度建模matlab仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。