導航:首頁 > 源碼編譯 > matlab經典演算法

matlab經典演算法

發布時間:2022-07-20 18:27:33

『壹』 matlab中求特徵值和特徵向量的具體演算法是什麼啊

eig(A)主要用QR演算法,如果A對稱則使用對稱QR演算法(如果要特徵向量的話有可能會用divide and conquer);
eig(A,B)用QZ演算法,如果探測到A對稱,B對稱正定,則對B做Cholesky分解後再用對稱QR演算法;
svd的演算法和對稱QR演算法類似。

這些不是幾句話就能明白的,要學習一下矩陣計算(數值線性代數)的課程才能知道幾十年前最簡單的演算法,軟體中的演算法在此基礎上還增加了很多新技術,但基本方法是差不多的。

『貳』 matlab中聚類演算法

聚類分析的概念主要是來自多元統計分析,例如,考慮二維坐標繫上有散落的許多點,這時,需要對散點進行合理的分類,就需要聚類方面的知識。模糊聚類分析方法主要針對的是這樣的問題:對於樣本空間P中的元素含有多個屬性,要求對其中的元素進行合理的分類。最終可以以聚類圖的形式加以呈現,而聚類圖可以以手式和自動生成兩種方式進行,這里採用自動生成方式,亦是本文的程序實現過程中的一個關鍵環節。 這里所實現的基本的模糊聚類的主要過程是一些成文的方法,在此簡述如下: 對於待分類的一個樣本集U=,設其中的每個元素有m項指標,則可以用m維向量描述樣本,即:ui=(i=1,2,...,n)。則其相應的模糊聚類按下列步驟進行:1) 標准化處理,將數據壓縮至(0-1)區間上,這部分內容相對簡單,介紹略。(參[1])2) 建立模糊關系:這里比較重要的環節之一,首先是根據逗距離地或其它進行比較的觀點及方法建立模糊相似矩陣,主要的逗距離地有:Hamming 距離: d(i,j)=sum(abs(x(i,k)-x(j,k))) | k from 1 to m (| k from 1 to m表示求和式中的系數k由1增至m,下同)Euclid 距離: d(i,j)=sum((x(i,k)-x(j,k))^2) | k from 1 to m 非距離方法中,最經典的就是一個夾角餘弦法: 最終進行模糊聚類分析的是要求對一個模糊等價矩陣進行聚類分析,而由相似矩陣變換到等價矩陣,由於相似矩陣已滿足對稱性及自反性,並不一定滿足傳遞性,則變換過程主要進行對相似矩陣進行滿足傳遞性的操作。使關系滿足傳遞性的演算法中,最出名的,就是Washall演算法了,又稱傳遞閉包法(它的思想在最短路的Floyd演算法中亦被使用了)。 演算法相當簡潔明了,復雜度稍大:O(log2(n)*n^3),其實就是把一個方陣的自乘操作,只不過這里用集合操作的交和並取代了原先矩陣操作中的*和+操作,如下:(matlab代碼)%--washall enclosure algorithm--%unchanged=0;while unchanged==0 unchanged=1; %--sigma:i=1:n(combine(conj(cArr(i,k),cArr(k,j)))) for i=1:cArrSize for j=1:cArrSize mergeVal=0; for k=1:cArrSize if(cArr(i,k)<=cArr(k,j)&&cArr(i,k)>mergeVal) mergeVal=cArr(i,k); elseif(cArr(i,k)>cArr(k,j)&&cArr(k,j)>mergeVal) mergeVal=cArr(k,j); end end if(mergeVal>cArr(i,j)) CArr(i,j)=mergeVal; unchanged=0; else CArr(i,j)=cArr(i,j); end end end %-- back--% for i=1:cArrSize for j=1:cArrSize cArr(i,j)=CArr(i,j); end endend

『叄』 matlab 遺傳演算法

function m_main()
clear
clc
Max_gen=100;% 運行代數
pop_size=100;%種群大小
chromsome=10;%染色體的長度
pc=0.9;%交叉概率
pm=0.25;%變異概率
gen=0;%統計代數
%初始化
init=40*rand(pop_size,chromsome)-20;
pop=init;
fit=obj_fitness(pop);
[max_fit,index_max]=max(fit);maxfit=max_fit;
[min_fit,index_min]=min(fit);best_indiv=pop(index_max,:);
%迭代操作
while gen<Max_gen
gen=gen+1; bt(gen)=max_fit;
if maxfit<max_fit;maxfit=max_fit;pop(index_min,:)=pop(index_max,:);best_indiv=pop(index_max,:);end
best_indiv_tmp(gen)=pop(index_max);
newpop=ga(pop,pc,pm,chromsome,fit);
fit=obj_fitness(newpop);
[max_fit,index_max]=max(fit);
[min_fit,index_min]=min(fit);
pop=newpop;
trace(1,gen)=max_fit;
trace(2,gen)=sum(fit)./length(fit);
end
%運行結果
[f_max gen_ct]=max(bt)%求的最大值以及代數
maxfit
best_indiv
%畫圖
% bt
hold on
plot(trace(1,:),'.g:');
plot( trace(2,:),'.r-');
title('實驗結果圖')
xlabel('迭代次數/代'),ylabel('最佳適應度(最大值)');%坐標標注
plot(gen_ct-1,0:0.1:f_max+1,'c-');%畫出最大值
text(gen_ct,f_max+1, '最大值')
hold off

function [fitness]=obj_fitness(pop)
%適應度計算函數
[r c]=size(pop);
x=pop;
fitness=zeros(r,1);
for i=1:r
for j=1:c
fitness(i,1)=fitness(i,1)+sin(sqrt(abs(40*x(i))))+1-abs(x(i))/20.0;
end
end

function newpop=ga(pop,pc,pm,chromsome,fit);
pop_size=size(pop,1);
%輪盤賭選擇
ps=fit/sum(fit);
pscum=cumsum(ps);%size(pscum)
r=rand(1,pop_size);qw=pscum*ones(1,pop_size);
selected=sum(pscum*ones(1,pop_size)<ones(pop_size,1)*r)+1;
newpop=pop(selected,:);
%交叉
if pop_size/2~=0
pop_size=pop_size-1;
end

for i=1:2:pop_size-1
while pc>rand
c_pt=round(8*rand+1);
pop_tp1=newpop(i,:);pop_tp2=newpop(i+1,:);
newpop(i+1,1:c_pt)=pop_tp1(1,1:c_pt);
newpop(i,c_pt+1:chromsome)=pop_tp2(1,c_pt+1:chromsome);
end

end
% 變異
for i=1:pop_size
if pm>rand
m_pt=1+round(9*rand);
newpop(i,m_pt)=40*rand-20;
end
end

『肆』 有誰用matlab做過聚類演算法

熱心網友
聚類分析的概念主要是來自多元統計分析,例如,考慮二維坐標繫上有散落的許多點,這時,需要對散點進行合理的分類,就需要聚類方面的知識。模糊聚類分析方法主要針對的是這樣的問題:對於樣本空間P中的元素含有多個屬性,要求對其中的元素進行合理的分類。最終可以以聚類圖的形式加以呈現,而聚類圖可以以手式和自動生成兩種方式進行,這里採用自動生成方式,亦是本文的程序實現過程中的一個關鍵環節。
這里所實現的基本的模糊聚類的主要過程是一些成文的方法,在此簡述如下:
對於待分類的一個樣本集U=,設其中的每個元素有m項指標,則可以用m維向量描述樣本,即:ui=(i=1,2,...,n)。則其相應的模糊聚類按下列步驟進行:1)
標准化處理,將數據壓縮至(0-1)區間上,這部分內容相對簡單,介紹略。(參[1])2)
建立模糊關系:這里比較重要的環節之一,首先是根據「距離」或其它進行比較的觀點及方法建立模糊相似矩陣,主要的「距離」有:Hamming
距離:
d(i,j)=sum(abs(x(i,k)-x(j,k)))
|
k
from
1
to
m
(|
k
from
1
to
m表示求和式中的系數k由1增至m,下同)Euclid
距離:
d(i,j)=sum((x(i,k)-x(j,k))^2)
|
k
from
1
to
m
非距離方法中,最經典的就是一個夾角餘弦法:
最終進

『伍』 求解答以下Matlab Floyd演算法代碼的含義

暴力循環搜索。如果i,j之間存在k,使得i到j的距離大於i到k的距離加上k到j的距離,說明i-->k--j距離短,並把最短距離賦值給dij。很經典的最短路程序,只需要把距離矩陣套進去就行。

『陸』 基於matlab的圖像壓縮演算法有哪些

基於Matlab實現的經典的圖像壓縮演算法,包括哈夫曼編碼,算術編碼、字典編碼、行程編碼-Lempel-zev
編碼正交變換編碼如DCT、子帶編碼
粒子、子采樣、比特分配、矢量量化。

『柒』 最短哈密頓路徑的matlab演算法

給定圖G,求點對s->t之間的最短路徑,該問題使用經典的dijkstra演算法即可解決,時間復雜度O(V^2)。基本思想:兩個集合S,T,S表示已經訪問的點集合,T表示未訪問的點集合,S初始為空,T包括所有點;每次從T集合中選取從s到該點距離最小的點cur,然後將點cur加入到S中(保證從s到S集合中的點之間的路徑長度最小),並且基於cur點為跳板,做鬆弛操作,更新s到T集合中其他點的距離,鬆弛操作即,如果dist[j] > dist[cur] + G[cur,j],更新dist[j] = dist[cur]+G[cur,j],其中j屬於T集合;當cur==t時演算法結束。

『捌』 matlab實現如下演算法,需要全部程序,編譯通過200分奉送

gfbg

『玖』 求經典MATLAB分水嶺演算法源代碼

%%都不知道你是啥樣的分割 什麼圖片
clear, close all;
clc;
PathName='d:\';%t為自填內容,下面p類似
FileName=[PathName 'test.jpg'];
Image=imread(FileName);
subplot(2,2,1);subimage(Image);title('原圖');;pixval on;
B=[1,1,1;1,1,1;1,1,1];%方形結構元
E8=[-1,0;-1,1;0,1;1,1;1,0;1,-1;0,-1;-1,-1]; % 8-連通結構元坐標
maskLenth=length(E8); % 結構元點的個數
[X,Y]=size(Image);
%原始圖像image 賦值給A1
n=1;
A(:,:,n)=Image;
M=zeros(X,Y);
Mark_Image=zeros(X,Y);
%產生距離圖
while sum(sum(A(:,:,n)))~=0
A(:,:,n+1)= imerode(A(:,:,n),B);
U(:,:,n)= (A(:,:,n)-A(:,:,n+1))*n;
M=M+U(:,:,n);
n=n+1;
end
n=n-1;
subplot(2,2,2);imagesc(M,[0,n]);title('距離圖');
% 搜尋局部最大值,將其放入Deal_Image
Deal_Image=zeros(X,Y);
while n>0
for high=1:X
for width=1:Y
%********************************************************************
Mark_Bool=0;
if M(high,width)==n
%______________________________________________________________
for dot=1:maskLenth
i=E8(dot,1); j=E8(dot,2);
if high+i>=1 & width+j>=1 & high+i<=X & width+j<=Y & M(high+i,width+j)>M(high,width);
Mark_Bool=1;break;
end % if_end
end % for dot_end
%______________________________________________________________
if Mark_Bool==0;
Deal_Image(high,width)=M(high,width);
end %if end
%______________________________________________________________
end %if end
%********************************************************************
end %for-end
end %for-end
n=n-1;
end % while n=0 end
Deal_Image =[Deal_Image>=1]
subplot(2,2,3);subimage(Deal_Image);title('輸出圖像');

Mark_Number=1;

while n>0
for high=1:X
for width=1:Y
Mark_Bool=0;
%********************************************************************
if M(high,width)==n
%______________________________________________________________
for dot=1:maskLenth
i=E8(dot,1); j=E8(dot,2);
if high+i>=1 & width+j>=1 & high+i<=X & width+j<=Y & Mark_Image(high+i,width+j)>0;
Mark_Image(high,width)=Mark_Image(high+i,width+j);
Mark_Bool=1;break;
end % if_end
end % for dot_end
%______________________________________________________________
if Mark_Bool==0;
Mark_Image(high,width)=Mark_Number;
Mark_Number=Mark_Number+1;
end %if end
%______________________________________________________________
pause;
subplot(2,2,2);imagesc(Mark_Image,[0,Mark_Number]);title('輸出圖像');
end %if end
%********************************************************************
end %for-end
end %for-end
n=n-1;
end % while n=0 end

subplot(2,2,3);imagesc(Mark_Image,[0,Mark_Number]);title('分割後的圖像');

uicontrol('Style','edit','string',['分割出區域:',Num2str(Mark_Number-1),'個'],...
'Position', [400 0 150 18],'FontSize',12,'FontWeight','light');

『拾』 MATLAB建模方法有哪些

建模覆蓋的內容很廣,可以分為兩大塊:優化和統計,因此建模方法也可以由這兩大塊劃分。

一.優化:

  1. 智能演算法: 遺傳演算法,粒子群演算法,模擬退火演算法,蟻群演算法...

  2. 基礎優化演算法: 目標規劃,整數規劃...

  3. 排隊論

二.統計:

  1. 分類/聚類演算法: k-means...

  2. 預測: 時間序列演算法,灰色預測演算法,指數平滑演算法,

  3. 評價: 模糊綜合評價,信息熵評價,粗糙集,數據包絡分析,層次分析,

  4. 智能演算法:神經網路,svm...

  5. 回歸/擬合:多元線性擬合,最小二乘法

  6. 數據處理:小波變換


閱讀全文

與matlab經典演算法相關的資料

熱點內容
哈夫曼編碼數據壓縮 瀏覽:414
鎖定伺服器是什麼意思 瀏覽:375
場景檢測演算法 瀏覽:607
解壓手機軟體觸屏 瀏覽:338
方舟pv怎麼轉伺服器 瀏覽:99
數據挖掘中誤差值演算法函數 瀏覽:118
php開發套件 瀏覽:190
伺服器的spi板是什麼 瀏覽:896
解壓縮全能王中文密碼是什麼 瀏覽:80
javaftp伺服器上傳文件 瀏覽:103
演算法設計中文版pdf 瀏覽:81
視頻壓縮形式怎麼改 瀏覽:368
perl程序員 瀏覽:789
電子表格對比命令 瀏覽:610
php循環輸出數組內容 瀏覽:750
電腦加密能不能強制關掉 瀏覽:616
趣味單人解壓桌游 瀏覽:212
oppo手機谷歌伺服器無法核實什麼 瀏覽:320
軟體怎麼加密華為 瀏覽:222
掃地機怎麼安裝app 瀏覽:319