matlab模擬演算法
1. matlab怎麼選模擬演算法
在畫完一張圖後,加一條hold on語句,再畫第二張圖,以此類推,
2. 已知演算法 怎麼用Matlab進行模擬
按運行快捷鍵F5即可實現模擬圖。 MATLAB是美國MathWorks公司出品的商業數學軟體,用於演算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和互動式環境,主要包括MATLAB和Simulink兩大部分。 MATLAB是matrix&laboratory兩個詞的組合.
3. 如何用Matlab實現演算法的模擬
可以去csdn下載
相關論壇應該也找得到啊,還可以找到相關資料
希望可以幫到你哈!
模擬、計算、研發、CAE、
廣州工|程模擬科|技有限公司
4. 如何用matlab對RFID中的防碰撞演算法模擬
所謂的模擬程序當然是演算法的開發人員(通常是您自己)寫的。。不知道您是要模擬什麼?
5. 怎麼使用Matlab進行電機控制演算法模擬
文章從非同步電動機在ABC坐標系下的數學模型出發,利用MATLAB語言的SIMULINK功能給出了非同步電動機的一個通用而簡單的動態模擬模型,並把該模型應用於非同步電動機的起動過程分析研究中,通過實例驗證了模型的正確性,並證明了該模型具有快捷、靈活、方便、直觀等一系列優點。使用時只需
6. 怎麼用matlab對IIR的濾波器演算法模擬
在MATLAB命令行中輸入fdatool打開濾波器設計工具箱,為了便於分析,我們先從設計一個簡單的2階低通濾波器。Design Method用於選擇IIR濾波器還是FIR濾波器,這里我們選擇IIR濾波器,類型選擇Chebyshev TypeII,當然也可以選擇其他類型,不同類型的頻率響應不同,選擇後默認的濾波器結構是直接II型。ResponseType用於選擇低通、高通、帶通、帶阻等類型,選擇低通濾波「Lowpass」。Frequency Specifications用於設置采樣頻率以及截止頻率,這里填入Fs = 10 Fpass = 1,Fstop = 4 即采樣率為10Hz,1Hz以上的頻率將被濾除掉。Fiter Order 選擇濾波器階數,為了簡單起見,先選擇一個2階濾波器做實驗。
參數設置好後點擊Design filter按鈕,將按要求設計濾波器。默認生成的IIR濾波器類型是Direct-Form II,Second-Order Sections(直接Ⅱ型,每個Section是一個二階濾波器),在工具欄上點擊Filter Coefficients圖標或菜單欄上選擇Analysis→Filter Coefficients可以查看生成的濾波器系數。菜單欄上選擇Edit->Convert Structure 可以查看濾波器結構類型 Direct-Form II SOS。
濾波器設計完成後還可以生成Simulink模型進行模擬: 第一步點擊左邊Realize Model圖標,第二步勾選「Build model using basic elements」這一項,右邊四個灰色的項將自動打鉤,最後點擊「Realize Model」,matlab將自動生成濾波器模型,在彈出的窗口中雙擊模型可以觀察該模型的內部結構。
7. matlab的演算法有哪些急用!謝謝啊!
MATLAB 產品族可以用來進行以下各種工作:
● 數值分析
● 數值和符號計算
● 工程與科學繪圖
● 控制系統的設計與模擬
● 數字圖像處理 技術
● 數字信號處理 技術
● 通訊系統設計與模擬
● 財務與金融工程
MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用 MATLAB 函數集)擴展了 MATLAB 環境,以解決這些應用領域內特定類型的問題。
matlab特點
●此高級語言可用於技術計算
●此開發環境可對代碼、文件和數據進行管理
●互動式工具可以按迭代的方式探查、設計及求解問題
●數學函數可用於線性代數、統計、傅立葉分析、篩選、優化以及數值積分等
●二維和三維圖形函數可用於可視化數據
●各種工具可用於構建自定義的圖形用戶界面
●各種函數可將基於MATLAB的演算法與外部應用程序和語言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成
MATLAB的優勢
(1)友好的工作平台和編程環境
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具採用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用於用戶瀏覽幫助、工作空間、文件的瀏覽器。隨著MATLAB的商業化以及軟體本身的不斷升級,MATLAB的用戶界面也越來越精緻,更加接近Windows的標准界面,人機交互性更強,操作更簡單。而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。
(2)簡單易用的程序語言
Matlab一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。用戶可以在命令窗口中將輸入語句與執行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)後再一起運行。新版本的MATLAB語言是基於最為流行的C++語言基礎上的,因此語法特徵與C++語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利於非計算機專業的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。
(3)強大的科學計算機數據處理能力
MATLAB是一個包含大量計算演算法的集合。其擁有600多個工程中要用到的數學運算函數,可以方便的實現用戶所需的各種計算功能。函數中所使用的演算法都是科研和工程計算中的最新研究成果,而前經過了各種優化和容錯處理。在通常情況下,可以用它來代替底層編程語言,如C和C++ 。在計算要求相同的情況下,使用MATLAB的編程工作量會大大減少。MATLAB的這些函數集包括從最簡單最基本的函數到諸如矩陣,特徵向量、快速傅立葉變換的復雜函數。函數所能解決的問題其大致包括矩陣運算和線性方程組的求解、微分方程及偏微分方程的組的求解、符號運算、傅立葉變換和數據的統計分析、工程中的優化問題、稀疏矩陣運算、復數的各種運算、三角函數和其他初等數學運算、多維數組操作以及建模動態模擬等。
(4)出色的圖形處理功能
圖形處理功能 MATLAB自產生之日起就具有方便的數據可視化功能,以將向量和矩陣用圖形表現出來,並且可以對圖形進行標注和列印。高層次的作圖包括二維和三維的可視化、圖象處理、動畫和表達式作圖。可用於科學計算和工程繪圖。新版本的MATLAB對整個圖形處理功能作了很大的改進和完善,使它不僅在一般數據可視化軟體都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對於一些其他軟體所沒有的功能(例如圖形的光照處理、色度處理以及四維數據的表現等),MATLAB同樣表現了出色的處理能力。同時對一些特殊的可視化要求,例如圖形對話等,MATLAB也有相應的功能函數,保證了用戶不同層次的要求。另外新版本的MATLAB還著重在圖形用戶界面(GUI)的製作上作了很大的改善,對這方面有特殊要求的用戶也可以得到滿足。
(5)應用廣泛的模塊集合工具箱
MATLAB對許多專門的領域都開發了功能強大的模塊集和工具箱。一般來說,它們都是由特定領域的專家開發的,用戶可以直接使用工具箱學習、應用和評估不同的方法而不需要自己編寫代碼。目前,MATLAB已經把工具箱延伸到了科學研究和工程應用的諸多領域,諸如數據採集、資料庫介面、概率統計、樣條擬合、優化演算法、偏微分方程求解、神經網路、小波分析、信號處理、圖像處理、系統辨識、控制系統設計、LMI控制、魯棒控制、模型預測、模糊邏輯、金融分析、地圖工具、非線性控制設計、實時快速原型及半物理模擬、嵌入式系統開發、定點模擬、DSP與通訊、電力系統模擬等,都在工具箱(Toolbox)家族中有了自己的一席之地。
(6)實用的程序介面和發布平台
新版本的MATLAB可以利用MATLAB編譯器和C/C++數學庫和圖形庫,將自己的MATLAB程序自動轉換為獨立於MATLAB運行的C和C++代碼。允許用戶編寫可以和MATLAB進行交互的C或C++語言程序。另外,MATLAB網頁服務程序還容許在Web應用中使用自己的MATLAB數學和圖形程序。MATLAB的一個重要特色就是具有一套程序擴展系統和一組稱之為工具箱的特殊應用子程序。工具箱是MATLAB函數的子程序庫,每一個工具箱都是為某一類學科專業和應用而定製的,主要包括信號處理、控制系統、神經網路、模糊邏輯、小波分析和系統模擬等方面的應用。
(7)應用軟體開發(包括用戶界面)
在開發環境中,使用戶更方便地控制多個文件和圖形窗口;在編程方面支持了函數嵌套,有條件中斷等;在圖形化方面,有了更強大的圖形標注和處理功能,包括對性對起連接注釋等;在輸入輸出方面,可以直接向Excel和HDF5進行連接。
8. 我想用matlab進行CHAN演算法模擬,求程序
function X = Chan_3BS(MSP,R,Noise)
% Chan 演算法,利用3BS對MS進行定位;
% CHAN_3BS:
% 參數說明:
% Noise: 測距誤差方差.
% R: 小區半徑.
% Also see: Chan_3BS.
% 參數檢測:
if nargout ~=1,
error('Too many output arguments!');
end
if nargin ~= 3,
error('input arguments error!');
end
% 演算法開始
MS = R*MSP;
BS = R*NetworkTop(3);
% A矩陣:
X21 = BS(1,2) - BS(1,1);
X31 = BS(1,3) - BS(1,1);
Y21 = BS(2,2) - BS(2,1);
Y31 = BS(2,3) - BS(2,1);
A = inv([X21,Y21;X31,Y31]);
% B矩陣:
R1 = sqrt((BS(1,1) - MS(1))^2 + (BS(2,1) - MS(2))^2);
R2 = sqrt((BS(1,2) - MS(1))^2 + (BS(2,2) - MS(2))^2);
R3 = sqrt((BS(1,3) - MS(1))^2 + (BS(2,3) - MS(2))^2);
R21 = R2 - R1 + MeaNoise(Noise); % 需要加雜訊
R31 = R3 - R1 + MeaNoise(Noise);
B = [R21;R31];
% C矩陣:
K1 = BS(1,1)^2 + BS(2,1)^2;
K2 = BS(1,2)^2 + BS(2,2)^2;
K3 = BS(1,3)^2 + BS(2,3)^2;
C = 0.5*[R21^2 - K2 + K1; R31^2 - K3 + K1];
% 一元二次方程的系數:
a = B'*A'*A*B - 1;
b = B'*A'*A*C + C'*A'*A*B;
c = C'*A'*A*C;
% 方程的兩個根:
root1 = abs((-b + sqrt(b^2 - 4*a*c))/(2*a));
root2 = abs((-b - sqrt(b^2 - 4*a*c))/(2*a));
% 檢驗方程的根:
if root1 < R,
EMS = -A*(B*root1 + C);
else
EMS = -A*(B*root2 + C);
end
% 輸出結果:
if nargout == 1,
X = EMS;
else
disp(EMS);
end
9. 蟻群演算法怎樣用MATLAB模擬
蟻群演算法採用matlab開發的模擬平台:演算法實現,路徑顯示,人機交互控制等
希望對你有幫助!
是可以運行的
% the procere of ant colony algorithm for VRP
%
% % % % % % % % % % %
%initialize the parameters of ant colony algorithms
load data.txt;
d=data(:,2:3);
g=data(:,4);
m=31; % 螞蟻數
alpha=1;
belta=4;% 決定tao和miu重要性的參數
lmda=0;
rou=0.9;%衰減系數
q0=0.95;
% 概率
tao0=1/(31*841.04);%初始信息素
Q=1;%螞蟻循環一周所釋放的信息素
defined_phrm=15.0; % initial pheromone level value
QV=100; % 車輛容量
vehicle_best=round(sum(g)/QV)+1;%所完成任務所需的最少車數
V=40;
% 計算兩點的距離
for i=1:32;
for j=1:32;
dist(i,j)=sqrt((d(i,1)-d(j,1))^2+(d(i,2)-d(j,2))^2);
end;
end;
%給tao miu賦初值
for i=1:32;
for j=1:32;
if i~=j;
%s(i,j)=dist(i,1)+dist(1,j)-dist(i,j);
tao(i,j)=defined_phrm;
miu(i,j)=1/dist(i,j);
end;
end;
end;
for k=1:32;
for k=1:32;
deltao(i,j)=0;
end;
end;
best_cost=10000;
for n_gen=1:50;
print_head(n_gen);
for i=1:m;
%best_solution=[];
print_head2(i);
sumload=0;
cur_pos(i)=1;
rn=randperm(32);
n=1;
nn=1;
part_sol(nn)=1;
%cost(n_gen,i)=0.0;
n_sol=0; % 由螞蟻產生的路徑數量
M_vehicle=500;
t=0; %最佳路徑數組的元素數為0
while sumload<=QV;
for k=1:length(rn);
if sumload+g(rn(k))<=QV;
gama(cur_pos(i),rn(k))=(sumload+g(rn(k)))/QV;
A(n)=rn(k);
n=n+1;
end;
end;
fid=fopen('out_customer.txt','a+');
fprintf(fid,'%s %i\t','the current position is:',cur_pos(i));
fprintf(fid,'\n%s','the possible customer set is:')
fprintf(fid,'\t%i\n',A);
fprintf(fid,'------------------------------\n');
fclose(fid);
p=compute_prob(A,cur_pos(i),tao,miu,alpha,belta,gama,lmda,i);
maxp=1e-8;
na=length(A);
for j=1:na;
if p(j)>maxp
maxp=p(j);
index_max=j;
end;
end;
old_pos=cur_pos(i);
if rand(1)<q0
cur_pos(i)=A(index_max);
else
krnd=randperm(na);
cur_pos(i)=A(krnd(1));
bbb=[old_pos cur_pos(i)];
ccc=[1 1];
if bbb==ccc;
cur_pos(i)=A(krnd(2));
end;
end;
tao(old_pos,cur_pos(i))=taolocalupdate(tao(old_pos,cur_pos(i)),rou,tao0);%對所經弧進行局部更新
sumload=sumload+g(cur_pos(i));
nn=nn+1;
part_sol(nn)=cur_pos(i);
temp_load=sumload;
if cur_pos(i)~=1;
rn=setdiff(rn,cur_pos(i));
n=1;
A=[];
end;
if cur_pos(i)==1; % 如果當前點為車場,將當前路徑中的已訪問用戶去掉後,開始產生新路徑
if setdiff(part_sol,1)~=[];
n_sol=n_sol+1; % 表示產生的路徑數,n_sol=1,2,3,..5,6...,超過5條對其費用加上車輛的派遣費用
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'條路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s','當前的用戶需求量是:');
fprintf(fid,'%i\n',temp_load);
fprintf(fid,'------------------------------\n');
fclose(fid);
% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);
for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;
t=t+length(final_sol)-1;
sumload=0;
final_sol=setdiff(final_sol,1);
rn=setdiff(rn,final_sol);
part_sol=[];
final_sol=[];
nn=1;
part_sol(nn)=cur_pos(i);
A=[];
n=1;
end;
end;
if setdiff(rn,1)==[];% 產生最後一條終點不為1的路徑
n_sol=n_sol+1;
nl=length(part_sol);
part_sol(nl+1)=1;%將路徑的最後1位補1
% 對所得路徑進行路徑內3-opt優化
final_sol=exchange(part_sol);
for nt=1:length(final_sol); % 將所有產生的路徑傳給一個數組
temp(t+nt)=final_sol(nt);
end;
cost(n_gen,i)=cost_sol(temp,dist)+M_vehicle*(n_sol-vehicle_best); %計算由螞蟻i產生的路徑總長度
for ki=1:length(temp)-1;
deltao(temp(ki),temp(ki+1))=deltao(temp(ki),temp(ki+1))+Q/cost(n_gen,i);
end;
if cost(n_gen,i)<best_cost;
best_cost=cost(n_gen,i);
old_cost=best_cost;
best_gen=n_gen; % 產生最小費用的代數
best_ant=i; %產生最小費用的螞蟻
best_solution=temp;
end;
if i==m;%如果所有螞蟻均完成一次循環,,則用最佳費用所對應的路徑對弧進行整體更新
for ii=1:32;
for jj=1:32;
tao(ii,jj)=(1-rou)*tao(ii,jj);
end;
end;
for kk=1:length(best_solution)-1;
tao(best_solution(kk),best_solution(kk+1))=tao(best_solution(kk),best_solution(kk+1))+deltao(best_solution(kk),best_solution(kk+1));
end;
end;
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'路徑是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s %i\n','當前的用戶需求量是:',temp_load);
fprintf(fid,'%s %f\n','總費用是:',cost(n_gen,i));
fprintf(fid,'------------------------------\n');
fprintf(fid,'%s\n','最終路徑是:');
fprintf(fid,'%i-',temp);
fprintf(fid,'\n');
fclose(fid);
temp=[];
break;
end;
end;
end;
end;
10. matlab中可以模擬什麼演算法
~~~~~~你能想到的幾乎都可以,就怕程序編不出來
模擬退火、神經網路、元胞自動機等等等等