国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

正交表的構(gòu)造方法及Matlab實現(xiàn)*

2017-06-05 14:20河南師范大學數(shù)學與信息科學學院453007
中國衛(wèi)生統(tǒng)計 2017年2期
關鍵詞:高強度向量矩陣

河南師范大學數(shù)學與信息科學學院(453007)

龐善起 鹿姍姍

正交表的構(gòu)造方法及Matlab實現(xiàn)*

河南師范大學數(shù)學與信息科學學院(453007)

龐善起 鹿姍姍

正交試驗設計是研究多因素水平的試驗設計方法,它是一種高效率、快速、經(jīng)濟的試驗設計方法。正交表在衛(wèi)生、統(tǒng)計、醫(yī)藥、農(nóng)業(yè)、制造業(yè)等方面都有非常重要的應用,尤其是高強度正交表可以研究較多因素之間的相互作用,但是正交表的強度越高越難構(gòu)造;另外,混合正交表的魅力在于它有較大的靈活性,允許試驗因素具有不同水平數(shù),得到了越來越多的關注。因此如何快速、高效地得到需要的正交表是有必要和有意義的。

至今為止,已經(jīng)有許多組合數(shù)學家和統(tǒng)計學家致力于正交表的研究,例如楊子胥、龐善起、張應山、杜蛟等分別在文獻[1-8]中給出了不同類型的正交表的構(gòu)造方法,這些正交表不僅在試驗設計中有廣泛的應用,隨著研究的不斷深入,它們還可以被應用于編碼學、密碼學、計算機科學中。

正交表構(gòu)造方法與原理

1.Ltu(tm)型正交表[1]

(1,0,0,…,0,0,0)

1個

(bu-1,1,1,0,…,0,0,0)

t個

(bu-2,1,bu-2,2,1,…,0,0,0)

t2個

?

?

(b2,1,b2,2,b2,3,…,b2,u-2,1,0)

tu-2個

(b1,1,b1,2,b1,3,…,b1,u-2,b1,u-1,1)

tu-1個

因為每個bij為域GF(t)的所有元素,即有t種取法,所以以上的向量,就是Vu的全部標準向量,共有

構(gòu)造Ltu(tm)型正交表的方法和步驟如下:

第1步,先給出t階有限域GF(t);

第3步,以全體向量為行號,以全部的標準向量為列號,做出所有內(nèi)積即可得Ltu(tm)型正交表。

2.混合水平正交表

混合水平正交表[1]可由Ltu(tm)型正交表通過并列而產(chǎn)生。構(gòu)造混合水平正交表的方法和步驟如下:

第1步,可借助上文Ltu(tm)型正交表的方法得到Ltu(tm)型正交表;

第2步,從Ltu(tm)中任意取定k個獨立的列(k

第4步,再將這k列同行元素所構(gòu)成的tk個互異的有序組,按字典排列法與tk個自然數(shù)1,2,…,tk建立一一對應,而把這k列所構(gòu)成的每個有序組均換成它對應的自然數(shù),便得到一個新的tk水平列;

3.高強度正交表

一個第j 列的元素是0,1,…,qj-1的ω×n矩陣A,稱為一個強度為2的正交表,如果滿足以下條件[4]:

(1)每一列中每個元素出現(xiàn)的次數(shù)相同;

(2)在任兩列ai,aj(1≤i,j≤n)中的每一個數(shù)對(0,0),…,(0,qj-1),(1,0),…,(1,qj-1),…,(qj-1,0),…,(qj-1,qj-1)出現(xiàn)的次數(shù)相同。

只滿足上述條件(1)的矩陣叫做強度1的正交表。如果A的任何ω×d的子矩陣包含所有可能的1×d行向量,且這些行向量出現(xiàn)的次數(shù)相同,稱為強度為d的正交表。強度d≥3的正交表稱為高強度正交表[4-6]。

引理1 設M是一個選自Qn的任意t(1≤t≤qn-1)個行向量構(gòu)成的矩陣,則

是一個強度為1的正交表。

引理2 對于任意的整數(shù)1≤k≤q總存在Qn上的1-正交分劃A1,A2,…,Ak。

證明:由于Qn本身就是一個正交表,所以當k=1時定理顯然成立; 當k

由于Qn中有qn個q元n維向量,考慮將Qn分為行數(shù)相等的分劃容量為q的A1,A2,…,Ak,其中的每個Ai(1≤i≤k)中都有qn-1個向量,為了得到Ai:

?

第2q-1步,將剩下的qn-1個向量,組成矩陣Aq,它當然是一個強度1的正交表。

這樣就構(gòu)造出了Qn的一個1-正交分劃A1,A2,…,Aq。

引理3 若有Qn上的正交分劃A1,A2,…,Aq,如果Ai(i=1,2,…,q)都是qn-1行n列的強度為t的正交表,那么下列矩陣都是強度為t+1的正交表,并且是Qn+1的(t+1)-正交分劃。

其中的0,1,2,…,q-1均指與其對應的Ai有相同的行的元素全為0,1,2,…,q-1的向量,下文同。

高強度正交表的構(gòu)造可由引理1,2得到強度為1的正交表,和Qn的1-正交分劃,在這個前提下,再由引理3得到強度為2的正交表,和Qn+1的2-正交分劃,接著由引理3得到強度為3的正交表,和Qn+2的3-正交分劃,依次下去,逐步構(gòu)造出高強度的正交表。

正交表構(gòu)造的Matlab實現(xiàn)

為了更加直觀詳細地說明Matlab程序的可行性,下面我們將選取幾個較為簡單的正交表作為例子說明利用Matlab程序?qū)崿F(xiàn)正交表的構(gòu)造方法。

1.Ltu(tm)型正交表

clc;clear

t=2;u=3;%初始條件

p=t;V=[ ];K=[ ];L=[ ];D=[ ];L1=[ ];L2=[ ];

G=transpose(0:(t-1));%t階有限域

i=1;

while(i<=u)

R=kron(kron(ones(t^(i-1),1),G),ones(t^(u-i),1));

V=[V,R];

i=i+1;

end

V%所有的u維向量

U=rref(V′);%標準化

[m,n]=find(U==1);

[s,t]=find(U((m+1):u,n)<=1);

B=U(:,unique(n(t)))′;%標準向量

L=V*B′;

L=mod(L,p)%得到正交表L8(27)

在Matlab程序中只需修改初始條件t,u的值,我們就可以生成形如Ltu(tm)的正交表。

2.混合水平正交表

以L8(4×23)為例,則23=8,此時t=2,u=3,k=2,由上文的程序得到L8(27),取定2個獨立的列(2<3),去掉能用這2列線性表示的所有列,再將這2列所構(gòu)成的22=4個互異的有序組,把這2 列所構(gòu)成的每個有序組均換成它對應的自然數(shù),從而生成正交表L8(4×23),結(jié)果如表2,Matlab程序與解釋如下:

表1 正交設計表L8(27)

clc;clear

t=2;u=3;k=3;%初始條件

p=t;[z,z1]=size(L);%接上節(jié)程序

K=L(:,1:k);%默認1:k列,也可以換成其他列

i=1;

while(i<=z1)

d=rank([K,L(:,i)]′)%m個n維向量線性相關?秩

D=[D,d];

i=i+1;

end

D

a=find(D(1,:)>=(k+1))

L1=L(:,a)%得到正交表Ltu(tr)

%以下生成混合水平列

Y=unique(K,′rows′)%刪除K中重復的行,得到有序組

[y,y1]=size(Y);

j=1;

while(j<=y)

b=find(K(:,1)==Y(j,1)&K(:,2)==Y(j,2));

[z,z1]=size(b);

K(b,:)=(y-(j-1))*ones(z,k);%有序組與自然數(shù)建立一一對應

j=j+1;

end

L2=[flipud(K(:,1)),L1]%得到混合水平正交設計表

3.高強度正交表

以L8(24)為例,則Q={0,1},q=2,N=4,t=3,首先生成強度為1的正交表,和Q2的1-正交分劃,再生成強度為2的正交表,和Q3的2-正交分劃,接著生成強度為3的正交表,和Q4的3-正交分劃,這樣就可以生成2水平強度為3的正交表。結(jié)果如表3,和表4,Matlab程序與解釋如下:

表2 正交設計表L8(4×23)

clc;clear;

q=2;%水平(初始條件)

t=3;%強度(初始條件)

N=4;%列數(shù)(初始條件)

n=N-(t-1);%q水平強度為1的正交表的列數(shù)

Q=[];a0=[];a1=[];a=[];A1=[];A=[];L=[];L0=[];L1=[];

%第一部分:生成Q^n即所有的q元n維向量

i=1;

while(i<=n)

R=kron(kron(ones(q^(i-1),1),[0:(q-1)]′),ones(q^(n-i),1));

Q=[Q,R];%Q^n即所有的q元n維向量

i=i+1;

end

%第二部分:生成1-正交分劃

j=1;

while(j<=(q-1))

for i=0:(q-1);

a0=Q((1+q^(n-2)*(j-1)):q^(n-2)*j,:);

a1=mod(i+a0,q);%正交分劃

a=[a;a1];

end

Q=setdiff(Q,repmat(a,2,1),′rows′);%Q^n-a

j=j+1;

end

A=[a;Q];%生成強度為1的正交表

%第三部分:正交分劃的遞歸構(gòu)造

while(n<=N-1)%Q正交分劃q^(n-2)行向量的個數(shù)

L0=kron(ones(q,1),kron([0:q-1]′,ones(q^(n-1),1)));

j=0;

while(j<=q-1)

A1=circshift(A,[q^(n-1)*j,0]);%每次向下移q^(n-1)

L1=[L1;A1];

j=j+1;

end

A=[L0,L1];%所有正交分劃的并列

L1=[];

n=n+1;

end

%第四部分:生成強度為t的正交表

for i=1:q;

L=A((1+q^(n-1)*(i-1)):q^(n-1)*i,:)%強度為t的正交表

end

在Matlab程序中,保證n=N-(t-1)≥2的前提下,只需修改初始條件q,N,t的值,我們就生成q水平,強度為t,列數(shù)為N,行數(shù)為q^(N-1)的正交表。比如修改初始條件,使得q=4,t=3,N=4便可得到水平為4,強度為3,列數(shù)為4,行數(shù)為64的正交表;修改初始條件,使得q=5,t=3,N=4,便可得到水平為5,強度為3,列數(shù)為6,行數(shù)為125的正交表。

表3 正交設計表L8(24)

表4 正交設計表L8(24)

結(jié) 論

正交表研究正在引起眾多領域研究者的廣泛關注。本文在原有的理論基礎上使用Matlab 生成三種類型的正交表,但是仍有一些問題值得改進和研究,本文只給出了生成單一水平的高水平高強度正交表構(gòu)造方法,所以接下來還需要繼續(xù)尋找混合水平的高水平高強度正交表的構(gòu)造方法。

[1]楊子胥.正交表的構(gòu)造.濟南:山東人民出版社,1978.

[2]龐善起.正交表的構(gòu)造及其應用.成都:電子科技大學,2004.

[3]張應山.正交表的數(shù)據(jù)分析及其構(gòu)造.上海:華東師范大學,2006.

[4]杜蛟,王守印,溫巧燕,等.強度m的對稱正交表的遞歸構(gòu)造.應用數(shù)學學報,2012,35(2):232-244.

[5]Jiang L,Yin JX.An approach of constructing mixed-level orthogonal arrays of strength≧3.Science China(Mathematics),2013,6(56):1109-1115.

[6]Du J,Wen QY,Zhang J.New Construction of Symmetric Orthogonal Arrays of Strength t.IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences,2013,9(96):1901-1904.

[7]李學斌,余小領,李斌.運用Excel進行正交表的構(gòu)建.河南科技學院學報(自然科學版),2008,36(4):115-118.

[8]陳遠方,林曦晨,徐利華,等.常用正交表的構(gòu)造原理及SAS實現(xiàn).中國衛(wèi)生統(tǒng)計,2012,29(4):470-474.

(責任編輯:劉 壯)

國家自然科學基金(11571094)

猜你喜歡
高強度向量矩陣
向量的分解
聚焦“向量與三角”創(chuàng)新題
120t轉(zhuǎn)爐高強度長壽命頂?shù)讖痛倒に噧?yōu)化及實踐
高氮型高強度灰鑄鐵的銑削試驗
直接發(fā)泡法制備高強度硅砂尾礦基泡沫陶瓷
初等行變換與初等列變換并用求逆矩陣
向量垂直在解析幾何中的應用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
矩陣
矩陣