給你推薦個網站:數學中國http://www.madio.net
不過要簡單注冊一下,發發評論,就有積分了,這樣就可以下載東西,與他人交流,挺權威的數學建模網站,希望能幫到你。
演算法裡面有,給你個網址http://www.madio.net/forum.php?mod=viewthread&tid=198727
這個演算法我下載了,可以傳給你
Ⅱ 數學建模各種演算法MATLAB的編程代碼
具體問題具體分析。首先,matlab只是工具;建模還得靠你自己,比如具體的數學公式。一個模型面對實際的數據可能有無數種實現方式。
Ⅲ 請教matlab中eig函數的源碼或演算法名
據我所知eig會分析矩陣的結構選用相應的演算法。
如果是eig(A)的形式,取決於A是否是Hermite陣:
如果A是Hermite陣則選用對稱QR演算法(對小矩陣)和divide and conquer演算法(對大矩陣);
如果A不是Hermite陣則使用非對稱QR演算法。
如果是eig(A,B)的形式,也取決於對稱性:
如果A和B都是Hermite陣且至少有一個半正定,那麼應該會利用Cholesky分解歸約到普通的對稱特徵值問題;
如果上述結構不滿足,那麼會使用QZ演算法。
Jacobi演算法雖然精度很高,但是速度相對慢一些,所以不作為默認的演算法。
Ⅳ 分步驟寫下列matlab程序的演算法,function d=det3(A)n=length(A);
摘要 d=det3(A)
Ⅳ 求利用matlab求從A到O的最短路徑的程序代碼~~~
functionR=main_Dj()
clc;clear
G=[125;141;231;246;255.8;265.7;275.6;372;3111.5;3124;...
450.5;483;561;593;670.6;6102.5;7112.7;891;8126;...
9101.5;9125;10110.5;10124;11123];
opt=0;
route=sroute(G,opt);
R=[];
r=route(3,end);
R=[r,R];
whiler~=1
r=route(3,r);
R=[r,R];
end
R=char(R+64);
R=[R,'O'];
end
functionroute=sroute(G,opt)
%求圖的最短路的Dijkstra演算法,規定1是起點
%G是給定圖的鄰接矩陣或弧表矩陣,程序能夠自動識別
%當opt=0(或預設)時求無向圖的最短路,opt=1時求有向圖的最短路
%d——標記最短距離
%route是一個矩陣,第一行標記頂點,第2行標記1到該點的最短距離,
%第3行標記最短路上該點的先驅頂點
if(nargin==1)opt=0;end
while1%此循環自動識別或由弧表矩陣生成鄰接矩陣
ifG(1,1)==0
A=G;
n=size(A,1);
M=sum(sum(A));break
else
e=G;
n=max([e(:,1);e(:,2)]);%頂點數
m=size(e,1);%邊數
M=sum(e(:,3));%代表無窮大
A=M*ones(n,n);
fork=1:m
A(e(k,1),e(k,2))=e(k,3);
ifopt==0
A(e(k,2),e(k,1))=e(k,3);%形成無向圖的鄰接矩陣
end
end
A=A-M*eye(n);%形成圖的鄰接矩陣
end
break
end
pb(1:length(A))=0;pb(1)=1;%永久標號點記為1
index1=1;%依次記錄永久標號頂點
index2=ones(1,length(A));%標記最短路上各點的先驅頂點
d(1:length(A))=M;d(1)=0;%標記距離
temp=1;%標記最近一個永久標號點
whilesum(pb)<length(A)
tb=find(pb==0);%找出臨時標號點
d(tb)=min(d(tb),d(temp)+A(temp,tb));%更新距離
tmpb=find(d(tb)==min(d(tb)));%確定新最小距離點
temp=tb(tmpb(1));%其中之一記為新永久標號點
pb(temp)=1;%增加新永久標號點
index1=[index1,temp];%記錄新永久標號點
index=index1(find(d(index1)==d(temp)-A(index1,temp)'));%確定前驅頂點
iflength(index)>=2%前驅頂點多於1個時取第一個
index=index(1);
end
index2(temp)=index;%記錄前驅頂點
end
route=[1:n;d;index2];
end
運行結果
R=
ADEFJKO
代碼自己看,不解釋,也別叫我解釋了,很麻煩的。
Ⅵ 用Astar演算法求最短路徑 如何用matlab怎麼模擬Astar演算法,例如演算法代碼 一些流程操作啥的,能具體點最好 。
http://wenku..com/view/eaa14f11f18583d049645992.html這里有演算法介紹,實現偽代碼過程!
http://www.mathworks.com/matlabcentral/fileexchange/17648這里有其matlab代碼實現,樓主參考下!
Ⅶ 求matlab程序代碼
1.32X32映射到8X8的函數是什麼?
2.a是怎麼生成的?
3.b1到b100映射到8X8矩陣的函數是什麼?
4.差值和是什麼?是差值絕對值求和還是什麼?
5.為什麼前邊說的是「差值和」,後一句話又說把差值從大到小排?到底是差值還是差值和?
6.隨機數和Ci相差多少的時候算是被選擇?如果要求相等才是被選擇,那概率太小了,因為matlab默認的隨機數可以超過1e-15精度,Ci中有一個能和取得的隨機數相等的概率就十分渺茫,更別說什麼次數最多了。
7.根據你的意思,C始終是一個100個元素的矩陣,他怎麼才算穩定?你所謂的水平是什麼?
你先把上邊這些問題說清楚再來問問題吧,否則你給100000分也沒人幫得了你
Ⅷ matlab如何實現蒙特卡洛演算法
1、打開MATLAB軟體,如圖所示,輸入一下指令。
Ⅸ 在MATLAB中求矩陣特徵值和特徵向量的代碼
>>clc;clear;close;
>>A=[3,-1,-2;2,0,-2;2,-1,-1];
>>[X,B]=eig(A) %求矩陣A的特徵值和特徵向量,其中B的對角線元素是特徵值,
%X的列是相應的特徵向量
最後的結果是:
X =
0.7276 -0.5774 0.6230
0.4851 -0.5774 -0.2417
0.4851 -0.5774 0.7439
B =
1.0000 0 0
0 0.0000 0
0 0 1.0000
特徵值和特徵向量的求解根據項目的需求或者是矩陣的具體形式,主要可以分成如下三種形式:
1、只需要獲得矩陣的最大特徵值和特徵值所對應的特徵向量。
2、需要求取矩陣的所有特徵值。
3、需要求取特徵值和特徵向量的矩陣為實對稱矩陣,則可以通過另一種方法進行求解。
這三種形式特徵值和特徵向量的求取:
1.如果自己僅僅要求最大特徵值的話肯定採用形式1的演算法,該演算法的優點是時間復雜度較低,計算量相對較小,該方法不但能夠求取特徵值和特徵向量,而且只要特徵值不全為0,該方法都能獲得想要的結果。
2.如果需要獲得一個矩陣的所有特徵值,則通過形式2可以很好的解決該問題,但是該方法的缺點是僅僅能夠獲得特徵值,獲得特徵值之後利用其它方法進行求解,這樣做自然而然計算量就大了起來。
3.如果矩陣為實對稱矩陣,那麼可以通過形式3對其進行特徵值和特徵向量的求取,該方法相對於形式2的好處就是能夠一次性將特徵值和特徵向量求取出來,缺點就是矩陣必須是實對稱矩陣,至於演算法復雜度方面我沒有進行測試。