国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)學(xué)建模常用方法及MATLAB代碼

這篇具有很好參考價值的文章主要介紹了數(shù)學(xué)建模常用方法及MATLAB代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

數(shù)學(xué)建模常用方法及MATLAB代碼

二分法

我們通常使用二分法計算非線性方程或者超越方程近似根,MATLAB代碼為:

// 二分法求根
function [x0,n]=dichotomy(a,b,err,f_x)
%輸入?yún)?shù)a為根的區(qū)間左端點                         
%輸入?yún)?shù)b為根的區(qū)間右端點                         
%輸入?yún)?shù)err為誤差精度                             
% 輸入?yún)?shù)f_x為待求根函數(shù)                          
%輸出參數(shù)x0為滿足精度要求的根                      
% 輸出參數(shù)n為迭代的次數(shù)                            
n=ceil((log((b-a)./err)./log(2)-1));%求迭代次數(shù)
while(sign(f_x(a))==0)%如果a的函數(shù)值為0停止迭代輸出x0為a的值,迭代次數(shù)為0
    x0=a;
    n=0;
    return;
end
while(sign(f_x(b))==0)%如果b的函數(shù)值為0停止迭代輸出x0為b的值,迭代次數(shù)為0
    x0=b;
    n=0;
    return;
end
while(sign(f_x(a))~=sign(f_x(b)))%a、b符號不同進(jìn)行區(qū)間二分
 x0=a/2+b/2;                     %區(qū)間中點
 if(sign(f_x(a))~=sign(f_x(x0)))%判斷區(qū)間中點函數(shù)值與區(qū)間端點符號
     b=x0;                      %將中點賦值給符號相同的端點
      if(b-a<=err||abs(f_x(x0))<=err)%判斷是否滿足精度要求
     x0=a/2+b/2;                     
     return;
      else                          %不滿足精度循環(huán)調(diào)用二分法
       dichotomy(a,b,err,f_x);
      end
 else
     a=x0;                          %將中點賦值給符號相同的端點
      if(b-a<=err||abs(f_x(x0))<=err)%判斷是否滿足精度要求
     x0=a/2+b/2;
     return;
      else                            %不滿足精度循環(huán)調(diào)用二分法
       dichotomy(a,b,err,f_x);
      end
 end
end

量綱分析法

π定理的解題步驟:
(1)確定關(guān)系式:根據(jù)對所研究的現(xiàn)象的認(rèn)識,確定影響這個現(xiàn)象的各個物理量及其關(guān)系式:
(2)確定基本量:從n個物理量中選取所包含的m個基本物理量作為基本量綱的代表,一般取m=3。在管流中,一般選d,v,ρ三個作基本變量,而在明渠流中,則常選用H,v,ρ。
(3)確定π數(shù)的個數(shù)N(π)=(n-m),并寫出其余物理量與基本物理量組成的π表達(dá)式
(4)確定無量綱π參數(shù):由量綱和諧原理解聯(lián)立指數(shù)方程,求出各π項的指數(shù)x,y,z,從而定出各無量綱π參數(shù)。π參數(shù)分子分母可以相互交換,也可以開方或乘方,而不改變其無因次的性質(zhì)。
(5)寫出描述現(xiàn)象的關(guān)系式或顯解一個π參數(shù),或求得一個因變量的表達(dá)式。
選擇基本量時的注意原則:
1)基本變量與基本量綱相對應(yīng)。即若基本量綱(M,L,T)為三個,那么基本變量也選擇三個;倘若基本量綱只出現(xiàn)兩個,則基本變量同樣只須選擇兩個。
2)選擇基本變量時,應(yīng)選擇重要的變量。換句話說,不要選擇次要的變量作為基本變量,否則次要的變量在大多數(shù)項中出現(xiàn),往往使問題復(fù)雜化,甚至要重新求解。
3)不能有任何兩個基本變量的因次是完全一樣的,換言之,基本變量應(yīng)在每組量綱中只能選擇一個。

圖論法

matlab管住嘴邁開腿數(shù)學(xué)建模的代碼,數(shù)學(xué)建模,matlab,開發(fā)語言
其MATLAB代碼為:

// 圖論算法
function P = dgraf( A )
%A為圖的鄰接矩陣
%P為圖的可達(dá)矩陣
n=size(A,1);
P=A;
for i=2:n
    P=P+A^i;
end
P(P~=0)=1;
P;
end
 應(yīng)用舉例:
A=[0 1 1 1;1 0 1 1;1 1 0 1;1 1 10];
P=dgraf(A);
P=[1 1 1 1;1 1 1 1;1 1 1 1;1 1 1 1];

差分法

背景差分法是采用圖像序列中的當(dāng)前幀和背景參考模型比較來檢測運動物體的一種方法,其性能依賴于所使用的背景建模技術(shù)。背景構(gòu)建的方法有多種,簡單的有均值法、中值法,復(fù)雜點的有卡爾曼濾波器模型法、單高斯分布模型法、雙高斯分布模型法等,這里我用的是均值法。以下是相應(yīng)的matlab代碼和輸出結(jié)果:

// 差分法
%背景差分法
clear all;
clc;
avi=MMREADER('I:\\電影\\test.avi');
VidFrames=read(avi,[10000,10050]);
N=4;                                            
start=11;                                        
threshold=15;
bg(start).cdata=0;
i=1;
for k=start-10:start-1    bg(k).cdata=rgb2gray(VidFrames(:,:,:,k));   bg(start).cdata=abs((bg(start).cdata+bg(k).cdata)/i); %均值法構(gòu)建背景
    i=i+1;
end
for k=1+start:N+1+start                                               mov(k).cdata=rgb2gray(VidFrames(:,:,:,k)); %轉(zhuǎn)化成灰度圖    
end
[row,col]=size(mov(1+start).cdata);            
alldiff=zeros(row,col,N); 
bgpic=zeros(row,col,1);
bgdata=bg(start).cdata>threshold;
bgpic(:,:,1)=double(bgdata);  
figure(1);
imshow(bgpic(:,:,1))   %輸出構(gòu)建的背景
for k=1+start:N+start
    diff=abs(mov(k).cdata-bg(start).cdata);          
    idiff=diff>threshold;                           
    alldiff(:,:,k)=double(idiff);           
end
j=2;
for k=1+start:N+start
    figure(j);
    imshow(alldiff(:,:,k)) %輸出測試幀減去構(gòu)建背景的效果
    title(strcat(num2str(k),'幀','-','背景'));
    j=j+1;
end

變分法

//變分法
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
I=imread('toys.bmp'); % load image
I=double(I(20:120,10:105)); % cut a piece, convert to double
%%% Parameters
std_n=10; var_n=std_n^2;  % Gaussian noise standard deviation
reduced_pw = 1.5*var_n;   % power to reduce in first phase
sig_w = 5; ws=4*sig_w+1;  % window size
%%%%%%%%%%%%%%
%%% Add noise
In = randn(size(I))*std_n;
I0 = I + In;  % noisy input image
% show original and noisy images
figure(1); imshow(uint8(I)); title('Original')
figure(2); imshow(uint8(I0)); title('Noisy image')
snr_noisy=db(I,I0)
% run normal tv - strong denoising
tic;
J=I0; 
ep_J=0.1; % minimum mean change in image J
J_old=0;
lam=0; iter=10; dt=0.2; ep=1; 
while (mean(mean(abs(J - J_old))) > ep_J),  % iterate until convergence
   J_old=J;
   J=tv(J,iter,dt,ep,lam,I0); % scalar lam
   lam = calc_lam(J,I0,reduced_pw); % update lambda (fidelity term)
end % while
% figure(3); imshow(uint8(J)); title('residue TV')
% snr_residue= db(I,J)
Ir=I0-J;  % Ir scalar
Pr = mean(mean(Ir.^2)); % power of residue
LV = loc_var(Ir,ws,sig_w^2);  % local variance (local  power of the residue )
% P=mean(mean(LV));
Pxy=1*(var_n^2)./LV;  %%  Sxy    inverse proportional to the LV
%%% Varying Lambda
lamxy=zeros(size(I0));
J=I0; J_old=0; 
ep_J=0.001;
%eps=0.01;
while (mean(mean(abs(J - J_old))) > ep_J),  % iterate until convergence
   J_old=J;
   J=tv(J,iter,dt,ep,lamxy,I0); % adaptive lam
   %J=tv(J,iter,dt,ep_J,lamxy,I0);
   lamxy = calc_lamxy(J,I0,Pxy,sig_w); % update lambda (fidelity term)
end % while
figure(3); imshow(uint8(J)); title('Adaptive TV')
snr_adap= db(I,J)
toc
t1=toc
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Run scalar TV denoising for comparision 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
tic
J=I0; 
% params
ep_J = 0.01; % minimum mean change in image J
lam=0; J_old=0;
i=0;
while (mean(mean(abs(J - J_old))) > ep_J),  % iterate until convergence
   J_old = J;
   J=tv(J,iter,dt,ep,lam,I0);     % scalar lam
   lam = calc_lam(J,I0,var_n,ep); % update lambda (fidelity term) 
end % for i
% Ir=I0-J;  % Ir scalar
% Pr = mean(mean(Ir.^2)); % power of residue
function Ig=gauss(I,ks,sigma2)
%private function: gauss (by Guy Gilboa):
% Ig=gauss(I,ks,sigma2)
% ks - kernel size (odd number)
% sigma2 - variance of Gaussian
[Ny,Nx]=size(I);
hks=(ks-1)/2;  % half kernel size
if (Ny<ks)   % 1d convolutin
	x=(-hks:hks); %x:1x ks
	flt=exp(-(x.^2)/(2*sigma2));  % 1D gaussian
	flt=flt/sum(sum(flt));  % normalize
   % expand
   x0=mean(I(:,1:hks)); xn=mean(I(:,Nx-hks+1:Nx));%x0,xn :1 x hks; 
	eI=[x0*ones(Ny,ks) I xn*ones(Ny,ks)];   % ???
	Ig=conv(eI,flt);
	Ig=Ig(:,ks+hks+1:Nx+ks+hks);  % truncate tails of convolution   
else
   %% 2-d convolution
	x=ones(ks,1)*(-hks:hks); y=x'; 
	flt=exp(-(x.^2+y.^2)/(2*sigma2));  % 2D gaussian
	flt=flt/sum(sum(flt));  % normalize
   % expand
   if (hks>1)
      xL=mean(I(:,1:hks)')'; xR=mean(I(:,Nx-hks+1:Nx)')';% xL,xR :Ny x 1
   else
      xL=I(:,1); xR=I(:,Nx);
   end
   eI=[xL*ones(1,hks) I xR*ones(1,hks)];   % Ny x  Nx+2hks
   if (hks>1)
      xU=mean(eI(1:hks,:)); xD=mean(eI(Ny-hks+1:Ny,:));  % xU,xD: 1 x Nx+2hks
   else
   	xU=eI(1,:); xD=eI(Ny,:);   
   end

數(shù)據(jù)擬合法

以下以一個較為簡單的數(shù)據(jù)組作為示例:

//數(shù)據(jù)擬合法
clc;
clear;
% the first one;
R=[0.68 0.805 0.863 0.893 0.9122 0.916];
x=[1.07 2.24 3.86 5.91 8.5 11.5];
y=R./(1-R);
plot(x,y,'ro')
hold on 
x=x';    % transfer Row matrix to Column matrix;
y=y';
p=fittype('(x/a)*exp(-x/b)')  %  Fitting function
f=fit(x,y,p)  
plot(f,x,y);

回歸分析法

在 Matlab 中,可以直接調(diào)用命令實現(xiàn)回歸分析,
( 1 ) [b,bint,r,rint,stats]=regress(y,x) ,其中 b 是回歸方程中的參數(shù)估計值, bint 是 b 的置信區(qū)間, r 和 rint 分別表示殘差及殘差對應(yīng)的置信區(qū)間。stats 包含三個數(shù)字,分別是相關(guān)系數(shù), F 統(tǒng)計量及對應(yīng)的概率 p 值。
( 2 ) recplot(r,rint) 作殘差分析圖。
( 3 ) rstool(x,y) 一種交互式方式的句柄命令。
:現(xiàn)有多個樣本的因變量和自變量的數(shù)據(jù),下面我們利用 Matlab ,通過回歸分析建立兩者之間的回歸方程。

//一元線性回歸分析
% 輸入數(shù)據(jù)
x = [1, 2, 3, 4, 5]; % 自變量
y = [2, 3, 4, 3, 5]; % 因變量
% 計算回歸系數(shù)
n = length(x); % 數(shù)據(jù)點個數(shù)
xy = x .* y;
xx = x .* x;
b1 = (n * sum(xy) - sum(x) * sum(y)) / (n * sum(xx) - sum(x)^2);
b0 = mean(y) - b1 * mean(x);
% 計算預(yù)測值和殘差
y_pred = b0 + b1 * x; % 預(yù)測值
residuals = y - y_pred; % 殘差
% 計算置信區(qū)間
X = [ones(n, 1), x'];
[~, ~, ~, ~, stats] = regress(y', X); % 使用regress函數(shù)計算置信區(qū)間
CI = stats(1:2); % 置信區(qū)間上界和下界
% 繪制數(shù)據(jù)點、回歸線和置信區(qū)間
subplot(2,1,1);
scatter(x, y); % 繪制散點圖
hold on;
plot(x, y_pred, 'r'); % 繪制回歸線
fill([min(x), max(x), max(x), min(x)], [CI(1), CI(1), CI(2), CI(2)], 'g', 'FaceAlpha', 0.2); % 填充置信區(qū)間
xlabel('x');
ylabel('y');
legend('數(shù)據(jù)點', '回歸線', '置信區(qū)間');
% 繪制殘差圖
subplot(2,1,2);
scatter(y_pred, residuals); % 繪制殘差圖
hold on;
plot([min(y_pred), max(y_pred)], [0, 0], 'r--'); % 繪制零線
xlabel('預(yù)測值');
ylabel('殘差');
legend('殘差', '零線');
% 輸出回歸系數(shù)和置信區(qū)間
disp(['回歸系數(shù) b0 = ', num2str(b0)]);
disp(['回歸系數(shù) b1 = ', num2str(b1)]);
disp(['置信區(qū)間 = [', num2str(CI(1)), ', ', num2str(CI(2)), ']']);

其輸出結(jié)果為:

//輸出結(jié)果
回歸系數(shù) b0 = 1.6
回歸系數(shù) b1 = 0.6
置信區(qū)間 = [0.69231, 6.75]

matlab管住嘴邁開腿數(shù)學(xué)建模的代碼,數(shù)學(xué)建模,matlab,開發(fā)語言
多元回歸分析

x1=[5.5 2.5 8 3 3 2.9 8 9 4 6.5 5.5 5 6 5 3.5 8 6 4 7.5 7]';
x2=[31 55 67 50 38 71 30 56 42 73 60 44 50 39 55 70 40 50 62 59]';
x3=[10 8 12 7 8 12 12 5 8 5 11 12 6 10 10 6 11 11 9 9]';
x4=[8 6 9 16 15 17 8 10 4 16 7 12 6 4 4 14 6 8 13 11]';
% 輸入因變量數(shù)據(jù)
y=[79.3 200.1 163.1 200.1 146.0 177.7 30.9 291.9 160 339.4 159.6 86.3 237.5 107.2 155 201.4 100.2 135.8 223.3 195]';
X=[ones(size(x1)),x1,x2,x3,x4];
[b,bint,r,rint,stats]=regress(y,X)% 回歸分析
Q=r'*r
sigma=Q/18
rcoplot(r,rint);

結(jié)果為:

回歸系數(shù) b0 = 1.6
回歸系數(shù) b1 = 0.6
置信區(qū)間 = [0.69231, 6.75]
>> untitled
b =
  191.9906
   -0.7751
    3.1718
  -19.6849
   -0.4494
bint =
  103.1866  280.7946
   -7.1474    5.5972
    2.0634    4.2802
  -25.1686  -14.2012
   -3.7276    2.8288
r =
   -6.3088
   -4.2260
    5.0635
   -3.1701
    0.0269
    6.6185
  -10.2294
   32.1836
   -2.8287
   26.5217
    1.2446
    0.2377
   12.3762
   -5.9684
  -10.0799
  -82.0142
    5.2187
    8.4492
   23.4779
    3.4069
rint =
  -56.5100   43.8924
  -51.7978   43.3459
  -40.5391   50.6662
  -49.7192   43.3789
  -44.3792   44.4331
  -33.2139   46.4509
  -53.1383   32.6796
   -9.9179   74.2851
  -52.7738   47.1163
  -17.9441   70.9875
  -50.2831   52.7722
  -50.3838   50.8593
  -37.1054   61.8578
  -57.6997   45.7628
  -58.2285   38.0687
  -94.9997  -69.0286
  -47.1632   57.6005
  -44.4731   61.3716
  -26.9733   73.9292
  -50.3016   57.1154
stats =

    0.9034   35.0555    0.0000  644.5831


Q =

   9.6687e+03


sigma =

  537.1526

matlab管住嘴邁開腿數(shù)學(xué)建模的代碼,數(shù)學(xué)建模,matlab,開發(fā)語言
逐步回歸

X1=[x1,x2,x3,x4];
stepwise(X1,y,[1,2,3])% 逐步回歸
% X2=[ones(size(x1)),x2,x3];
% X3=[ones(size(x1)),x1,x2,x3];
% X4=[ones(size(x1)),x2,x3,x4];
% [b1,b1int,r1,r1int,stats1]=regress(y,X2)
% [b2,b2int,r2,r2int,stats2]=regress(y,X3);
% [b3,b3int,r3,r3int,stats3]=regress(y,X4);

機理分析

  1. 機理方法概述
    (1)自身存在的發(fā)展規(guī)律和理由–分析事物的內(nèi)在因素,研究其內(nèi)在關(guān)系,得到內(nèi)在規(guī)律—機理模型。
    (2)如何從事物的內(nèi)在因素和條件中研究其內(nèi)在關(guān)系與規(guī)律??------機理分析建模方法。
    (3)利用機理分析方法所建立的模型有:代數(shù)方程、函數(shù)方程、微分方程、積分方程和一般的動力學(xué)模型等。
    一般不能直接應(yīng)用某種現(xiàn)成的方法得到模型,或直接套用現(xiàn)成的模型得到結(jié)論。
  2. 機理建模的基本方法
    類比分析法:根據(jù)一些物理定律,經(jīng)濟規(guī)律,數(shù)學(xué)原理等建立不同事物之間的類比關(guān)系,建立問題的數(shù)學(xué)模型。
    量綱分析法:通過分析問題相關(guān)物理量的量綱,根據(jù)量綱一致性原則建立各物理量之間的關(guān)系。
    幾何分析法:針對實際問題,利用平面幾何、立體幾何、解析幾何的原理等建立模型。
    邏輯分析法:一句問題的客觀條件和實際情況,利用邏輯推理和邏輯運算建立模型
    比較分析法:對照各個事物,確定事務(wù)間的共同點和差異點,通過文字描述、圖表等方式對事物特征進(jìn)行分析,建立模型。
    推理分析法:在掌握一定的已知事實,數(shù)據(jù)信息或者因素相關(guān)性的基礎(chǔ)上,通過因果關(guān)系或其他相關(guān)關(guān)系順次,逐步地推論得出新結(jié)論,建立模型。
  3. 機理分析建模流程
    針對實際問題-----了解問題背景----分析問題-----明確相關(guān)因素和參數(shù)-----分析其內(nèi)在關(guān)系—用適當(dāng)數(shù)學(xué)方法—建立關(guān)聯(lián)模型–選用實際數(shù)據(jù)–確定未知數(shù)據(jù)—求解模型—用結(jié)果解釋實際問題—用實際數(shù)據(jù)或模擬檢驗?zāi)P汀M(jìn)一步擴展模型。
    例:人才吸引力評價(2018深圳杯A題)—中國大學(xué)生在線可看此論文
    將定性分析轉(zhuǎn)換成定量分析,比如:發(fā)展前景、經(jīng)濟收入、社會環(huán)境
    問題的關(guān)鍵:首先搞清楚:什么是人才吸引力?水平如何?優(yōu)勢與不足?如何提升?
    (1)柯布–道格拉斯函數(shù)
    人才吸引力:發(fā)展前景、經(jīng)濟收入、社會環(huán)境
    發(fā)展前景:歷史數(shù)據(jù)、當(dāng)前數(shù)據(jù)
    經(jīng)濟收入:人均收入、物價水平
    社會環(huán)境:空氣環(huán)境指數(shù)、
    (2)萬有引力定律
    (3)類歐姆定律
    例:出租車模型
    (1)建立合理性模型,并分析不同時空出租車資源的供求匹配程度。
    (2)分析相關(guān)公司的出租車補貼方案是否對緩解打車難問題有幫助?
    (3)試創(chuàng)建一個打車軟件服務(wù)平臺,計一個補貼方案,并論證其合理性
    深圳杯的題目----深圳一天的數(shù)據(jù) 都可以查到
    關(guān)系的問題===核心問題
    基例—情景—數(shù)據(jù)
    1.目前出租車資源的配置是否合理?
    2.如何實現(xiàn)出租車供求關(guān)系的良好匹配?
    3.打車軟件是否能有效解決打車難問題?
    解決問題:分析與出租車供求相關(guān)的因素和關(guān)系機理,建立問題的機理模型。
    需要收集某區(qū)域或城市出租車的相關(guān)數(shù)據(jù),通過對數(shù)據(jù)的分析研究,統(tǒng)計挖掘出相關(guān)規(guī)律,來支持所建立的數(shù)學(xué)哦行和模型的結(jié)論。
    出租車運行軌跡數(shù)據(jù)----------------不需要
    優(yōu)秀論文:-----------中國大學(xué)生在線可看到
    (1)匹配指標(biāo)如何建立?出租車?yán)锍汤寐屎凸┣蟊嚷实慕?jīng)驗公式
    (2)某城市的滴滴數(shù)據(jù)補貼的前后數(shù)據(jù)分析,客觀形成好單和壞單要分階段進(jìn)行討論考慮,而不是單單說有利還是無利。
    通過機理分析建立分區(qū)動態(tài)實時補貼模型,給出符合實際的補貼方案:針對司機和乘客不同的設(shè)計。
    在各區(qū)各時段的補貼保持平衡的前提下,建立平衡補貼的方程組模型。

排隊方法

這個就直接上代碼了。

//排隊論
% /M/PH/1(k);
% p=stationary_prob(4,beta,S,order,lambda);
function [p,p_minus,p_add,mean,time]=stationary_prob(k,beta,S,lambda) order=length(beta);
e=ones(order,1);
R=lambda*inv(lambda*eye(size(S))-lambda*e*beta-S);
R_k=eye(size(S));
for i=1:k
R_k = R_k+R^i;
end
p0=inv(beta*(R_k-lambda*R^k*inv(S))*e);
p_t=p0;
for i=1:k
p_t=[p_t,p0*beta*R^i];
end
p_t=[p_t,p0*beta*(R^k)*(-lambda*inv(S))];
% the queue length distribution in any time
% add every phase in the same level
p=p0;
for i=1:k+1
sum=0;
for j=1:order
sum =sum+p_t(1+(i-1)*order+j);
end
p=[p,sum];
end
p_minus = p;
% the queue length distribution at departure
% p_add = p_minus(i)/(1-p_minus(k+1))
p_add=[0];
for i=0:k
p_add=[p(k-i+1)/(1-p(k+2)),p_add];
end
% the mean queue length
mean=0;
for i=1:k
mean =mean+i*p(i+1);
end

層次分析法(AHP)

基本步驟:
1.建立層次分析結(jié)構(gòu)模型。常見的有目標(biāo)層-準(zhǔn)則層-方案層模型。
2.構(gòu)造成對比較矩陣。常用的有1-9尺度。尺度大小取決于下層的元素個數(shù)。
3.計算權(quán)向量并作一致性檢驗。引入一致性指標(biāo)CI,CI越大,不一致越嚴(yán)重。引入隨機一致性指標(biāo)RI。定義一致性比率CR=CI/RI。CR<0.1時,通過一致性檢驗。
4.計算組合權(quán)向量作組合一致性檢驗,組合權(quán)向量可作為決策的定量依據(jù)。方案層對目標(biāo)層的組合權(quán)向量為ww*w。選擇組合權(quán)向量大的元素作為輸出結(jié)果。
注意,該方法具有較強的主觀性

//AHP代碼
clc
a=[1,1,1,4,1,1/2
   1,1,2,4,1,1/2
   1,1/2,1,5,3,1/2
   1/4,1/4,1/5,1,1/3,1/3
   1,1,1/3,3,1,1
   2,2,2,3,3,1];%一致矩陣
[x,y]=eig(a);eigenvalue=diag(y);lamda=max(eigenvalue);
ci1=(lamda-6)/5;cr1=ci1/1.24
w1=x(:,1)/sum(x(:,1))
b1=[1,1/4,1/2;4,1,3;2,1/3,1];
[x,y]=eig(b1);eigenvalue=diag(y);lamda=eigenvalue(1);
ci21=(lamda-3)/2;cr21=ci21/0.58
w21=x(:,1)/sum(x(:,1))
b2=[1  1/4   1/5;4   1   1/2;5   2    1];
[x,y]=eig(b2);eigenvalue=diag(y);lamda=eigenvalue(1);
ci22=(lamda-3)/2;cr22=ci22/0.58
w22=x(:,1)/sum(x(:,1))
b3=[1    3  1/3;1/3   1    1/7;3   7    1];
[x,y]=eig(b3);eigenvalue=diag(y);lamda=eigenvalue(1);
ci23=(lamda-3)/2;cr23=ci23/0.58
w23=x(:,1)/sum(x(:,1))
b4=[1   1/3   5;3   1    7;1/5  1/7   1];
[x,y]=eig(b4);eigenvalue=diag(y);lamda=eigenvalue(1);
ci24=(lamda-3)/2;cr24=ci24/0.58
w24=x(:,1)/sum(x(:,1))
b5=[1   1    7;1   1    7;1/7  1/7   1];
[x,y]=eig(b5);eigenvalue=diag(y);lamda=eigenvalue(1);
ci25=(lamda-3)/2;cr25=ci25/0.58
w25=x(:,1)/sum(x(:,1))
b6=[1   7   9;1/7  1   1 ;1/9   1   1];
[x,y]=eig(b6);eigenvalue=diag(y);lamda=eigenvalue(1);
ci26=(lamda-3)/2;cr26=ci26/0.58
w26=x(:,1)/sum(x(:,1))
w_sum=[w21,w22,w23,w24,w25,w26]*w1
ci=[ci21,ci22,ci23,ci24,ci25,ci26];
cr=ci*w1/sum(0.58*w1)

結(jié)果為:

cr1 =
    0.0996
w1 =
    0.1507
    0.1792
    0.1886
    0.0472
    0.1464
    0.2879
cr21 =
    0.0158
w21 =
    0.1365
    0.6250
    0.2385
cr22 =
    0.0212
w22 =
    0.0974
    0.3331
    0.5695
cr23 =
    0.0061
w23 =
    0.2426
    0.0879
    0.6694
cr24 =
    0.0559
w24 =
    0.2790
    0.6491
    0.0719
cr25 =
  -3.8284e-16
w25 =
    0.4667
    0.4667
    0.0667
cr26 =
    0.0061
w26 =
    0.7986
    0.1049
    0.0965
w_sum =
    0.3952
    0.2996
    0.3052
cr =
    0.0117

主成分分析法

主成分分析法是利用降維的思想,把多指標(biāo)轉(zhuǎn)化為少數(shù)幾個綜合指標(biāo)(即主成分),其中每個主成分都能夠反映原始變量的大部分信息,且所含信息互不重復(fù)。這種方法在引進(jìn)多方面變量的同時將復(fù)雜因素歸結(jié)為幾個主成分,使問題簡單化,同時得到的結(jié)果更加科學(xué)有效的數(shù)據(jù)信息。
例如,做一件上衣需要測量很多尺寸,如身高,袖長,腰圍,胸圍,肩寬等十幾項指標(biāo),但是廠家不可能把尺寸型號分這么多,而是從這十幾種指標(biāo)中綜合成幾個少數(shù)的綜合指標(biāo)作為分類型號,例如綜合成反映身高,反映胖瘦和反應(yīng)特體的三項指標(biāo),這就是主成分的思想。主要的方法有特征值分解,SVD(奇異值分解)和NMF(非負(fù)矩陣分解);
原始指標(biāo)數(shù)據(jù)的標(biāo)準(zhǔn)化采集p維隨機向量 x = ( X i 1 , X i 2 , ? ? , X i p ) T x=(X_{i1},X_{i2},\cdots,X_{ip})^{T} x=(Xi1?,Xi2?,?,Xip?)Tn個樣品 x i = ( x i 1 , x i 2 , ? ? , x i p T ) x_{i}=(x_{i1},x_{i2},\cdots,x_{ip}^{T}) xi?=(xi1?,xi2?,?,xipT?),i=1,2,…n,n>p,構(gòu)造樣本陣,對樣本陣元進(jìn)行如下變化標(biāo)準(zhǔn)化變換: Z i j = x i j ? x  ̄ j s j , i = 1 , 2 , ? ? , n ; j = 1 , 2 , ? ? , p Z_{ij}=\frac{x_{ij}-\overline{x}_{j}}{s_{j}},i=1,2,\cdots,n;j=1,2,\cdots,p Zij?=sj?xij??xj??,i=1,2,?,n;j=1,2,?,p
其中 x  ̄ j = ∑ i = 1 n x i j n , s j 2 = ∑ i = 1 n ( x i j ? x  ̄ j ) 2 n ? 1 \overline{x}_{j}=\frac{\sum_{i=1}^{n}x_{ij}}{n},s_{j}^{2}=\frac{\sum_{i=1}^{n}(x_{ij}-\overline{x}_{j})^{2}}{n-1} xj?=ni=1n?xij??,sj2?=n?1i=1n?(xij??xj?)2?得標(biāo)準(zhǔn)化陣Z。
2、對標(biāo)準(zhǔn)化陣Z求相關(guān)系數(shù)矩陣
R = [ r i j ] p x p = Z T Z n ? 1 R=[r_{ij}]_{p}xp=\frac{Z^{T}Z}{n-1} R=[rij?]p?xp=n?1ZTZ?
其中, r i j = ∑ z k j ? z k j n ? 1 , i , j = 1 , 2 , ? ? , p r_{ij}=\frac{\sum{z_{kj}·z_{kj}}}{n-1},i,j=1,2,\cdots,p rij?=n?1zkj??zkj??,i,j=1,2,?,p
3、解樣本相關(guān)矩陣R的特征方程 ∣ R ? λ I p ∣ = 0 |R-\lambda{I_{p}}|=0 R?λIp?=0得出p個特征根,確定主成分滿足 ∑ j = 1 m λ j ∑ j = 1 p λ j ≥ 0.85 \frac{\sum_{j=1}^{m}\lambda_{j}}{\sum_{j=1}^{p}\lambda_{j}}\ge0.85 j=1p?λj?j=1m?λj??0.85確定m的值,使信息的利用率達(dá)85%以上,對每個 λ j , j = 1 , 2 , ? ? , m \lambda_{j},j=1,2,\cdots,m λj?,j=1,2,?,m,解方程組 R b = λ j b Rb=\lambda_{j}b Rb=λj?b得單位特征向量 b j a b_{j}^{a} bja?。
4、將標(biāo)準(zhǔn)化后的指標(biāo)變量轉(zhuǎn)化為主成分 U i j = z i T b j a , j = 1 , 2 , ? ? , m U_{ij}=z_{i}^{T}b_{j}^{a},j=1,2,\cdots,m Uij?=ziT?bja?,j=1,2,?,m U 1 U_{1} U1?稱為第一主成分, U 2 U_{2} U2?稱為第二主成分, ? \cdots ?, U p U_{p} Up?稱為第p主成分。
5、對m個主成分進(jìn)行綜合評價
對m個主成分進(jìn)行加權(quán)求和,即得最終評價值,權(quán)數(shù)為每個主成分的方差貢獻(xiàn)率。
以下為MATLAB代碼:

/主成分分析法
x=[1.2,3,-1.1,17;  
    1.5,5,-3,22;  
    1.3,4.0,-2,19;  
    0.7,3,-2.3,11  
    1,4,-1.2,20.8];  
stdr=std(x);                %求各變量的標(biāo)準(zhǔn)差;  
[n,m]=size(x);               %矩陣的行與列  
sddata=x./stdr(ones(n,1),:);         %標(biāo)準(zhǔn)化變換  
[p,princ,egenvalue]=princomp(sddata);  %調(diào)用主成分  
p=p(:,1:3);                          %輸出前3主成分系
sc=princ(:,1:3);                       %3主成分量;  
egenvalue;                              %相關(guān)系數(shù)矩陣的特征值,即各主成分所占比例;  
per=100*egenvalue/sum(egenvalue);       %各個主成分所占百分比;

輸出結(jié)果為:文章來源地址http://www.zghlxwxcb.cn/news/detail-771656.html

成分 Value
1 68.2742
2 25.1274
3 6.5776
4 0.0208

到了這里,關(guān)于數(shù)學(xué)建模常用方法及MATLAB代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【數(shù)學(xué)建模】灰色關(guān)聯(lián)(Matlab代碼實現(xiàn))

    【數(shù)學(xué)建?!炕疑P(guān)聯(lián)(Matlab代碼實現(xiàn))

    目錄 1 灰色關(guān)聯(lián)理論 2 算例及Matlab代碼實現(xiàn) 2.1 算例1 2.2 算例2? ?2.3 算例3 2.4 算例4? 3 寫在最后 灰色關(guān)聯(lián)分析l是由鄧聚龍教授于1982年提出的,也稱“鄧氏灰色關(guān)聯(lián)法”。 方法以部分信息已知?,部分信息未知的“貧信息”為研究對象,通過對部分已知信息的生成和開發(fā),實現(xiàn)對

    2024年02月09日
    瀏覽(17)
  • Matlab數(shù)學(xué)建模常用算法及論文插圖繪制模板資源合集

    Matlab數(shù)學(xué)建模常用算法及論文插圖繪制模板資源合集

    最近有很多朋友咨詢我關(guān)于Matlab論文插圖繪制方面的問題。 問了一下,這些朋友中,除了寫博士論文的, 大部分都是要參加美賽的 。 這讓我突然想起, 自己曾經(jīng)為了水論文, 購買過一批Matlab數(shù)學(xué)建模的資料 。 想了想,自己應(yīng)該也用不到了,索性借此機會,拿出來分享給

    2024年02月16日
    瀏覽(26)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第五講-微分方程建模(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第五講-微分方程建模(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 微分方程建模是數(shù)學(xué)建模中一種極其重要的方法,它在解決眾多實際問題時發(fā)揮著關(guān)鍵作用。這些實際問題的數(shù)學(xué)表述通常會導(dǎo)致求解特定的微分方程。將各種實際問題轉(zhuǎn)換為微分方程的定解問題主要包括以下幾個步驟: 確定研究

    2024年03月18日
    瀏覽(29)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第六講-假設(shè)檢驗(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第六講-假設(shè)檢驗(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 假設(shè)檢驗是一種統(tǒng)計決策過程,用于判斷樣本數(shù)據(jù)是否支持某個特定的假設(shè)。主要有兩類假設(shè): 零假設(shè)(Null Hypothesis):通常表示為沒有效應(yīng)或差異的假設(shè)。 備擇假設(shè)(Alternative Hypothesis):表示有效應(yīng)或差異的假設(shè)。 假設(shè)檢驗的

    2024年02月03日
    瀏覽(39)
  • MATLAB--數(shù)學(xué)建模作圖大全及代碼說明

    MATLAB--數(shù)學(xué)建模作圖大全及代碼說明

    目錄 1、二維曲線 2、二維漸變圖 3、二維散點圖 ?4、條形圖 5、填充圖 6、多Y軸圖 7、三維曲線圖 8、三維散點圖 9、三維偽彩圖 10、裁剪偽彩圖 11、等高線圖 12、三維等高線圖 13、等高線填充圖 14、三維矢量場圖 15、偽彩圖+投影圖 16、熱圖 17、分子模型圖 18、分形圖 二維曲

    2024年02月11日
    瀏覽(17)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第四講-插值與擬合(含Matlab代碼)

    【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第四講-插值與擬合(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 在實際問題中,對于給定的函數(shù) y = f(x) ,通常通過實驗觀測在某個區(qū)間 [a, b] 上一系列點 x_i 上的函數(shù)值 y_i = f(x_i) 得到。當(dāng)需要在這些觀測點 x_0, x_1, ..., x_n 之間的某些點 x 上估計函數(shù)值時,插值法和擬合是兩種常用的數(shù)學(xué)方法。

    2024年02月05日
    瀏覽(26)
  • 【數(shù)學(xué)建?!俊秾崙?zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    【數(shù)學(xué)建模】《實戰(zhàn)數(shù)學(xué)建模:例題與講解》第二講-線性規(guī)劃(含Matlab代碼)

    如果這篇文章對你有幫助,歡迎點贊與收藏~ 線性規(guī)劃(Linear Programming,LP)是一種在數(shù)學(xué)規(guī)劃領(lǐng)域中應(yīng)用廣泛的最優(yōu)化問題解決方法。其基本思想是在一系列約束條件下,通過建立線性數(shù)學(xué)模型來描述目標(biāo)函數(shù),以求得使目標(biāo)函數(shù)最大或最小的決策變量值。線性規(guī)劃在運籌學(xué)

    2024年02月04日
    瀏覽(28)
  • 【MATLAB 數(shù)學(xué)建?!?插值方法 數(shù)據(jù)擬合

    一維插值是一種在給定有限數(shù)據(jù)點集合的情況下,通過構(gòu)建一個函數(shù)來近似估計這些數(shù)據(jù)點之間的值。它基于假設(shè),在相鄰數(shù)據(jù)點之間存在某種連續(xù)性或平滑性。 一維插值常用于曲線擬合、曲線重建和數(shù)據(jù)補全等應(yīng)用中。其中最簡單的一種插值方法是線性插值,即通過連接相

    2024年02月08日
    瀏覽(32)
  • 數(shù)學(xué)建模之TOPSIS模型(含matlab代碼)

    數(shù)學(xué)建模之TOPSIS模型(含matlab代碼)

    ? 目錄 一、方法和原理 1、理想解法 ?2、方法原理 ?二、TOPSIS法的具體算法 (1) 用向量規(guī)劃化的方法求得規(guī)范決策矩陣 1、線性變換 2、0-1變換 3、區(qū)間型屬性的變換 4、向量規(guī)范化 5、標(biāo)準(zhǔn)換處理 ?(2)構(gòu)成加權(quán)規(guī)范陣C ?(3)確定正理想解和負(fù)理想解 ?(4)計算各方案到正

    2024年02月07日
    瀏覽(21)
  • 數(shù)學(xué)建模之灰色預(yù)測模型代碼(matlab版)

    灰色關(guān)聯(lián)分析步驟 【1】確定比較對象(評價對象)(就是數(shù)據(jù),并且需要進(jìn)行規(guī)范化處理,就是標(biāo)準(zhǔn)化處理,見下面例題的表格數(shù)據(jù))和參考數(shù)列(評價標(biāo)準(zhǔn),一般該列數(shù)列都是1,就是最優(yōu)的的情況) 【2】確定各個指標(biāo)權(quán)重,可用層次分析確定 【3】計算灰色關(guān)聯(lián)系數(shù) 【4】

    2024年02月09日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包