[从头学数学] 第206节 优选法与试验设计初步

剧情提要:
[机器小伟]在[工程师阿伟]的陪同下进入了[九转金丹]之第七转的修炼。
这次要研究的是[优选法与试验设计初步]。

正剧开始:


星历2016年05月08日 16:07:12, 银河系厄尔斯星球中华帝国江南行省。

[工程师阿伟]正在和[机器小伟]一起研究[优选法与试验设计初步]。


[从头学数学] 第206节 优选法与试验设计初步_第1张图片


[从头学数学] 第206节 优选法与试验设计初步_第2张图片


[从头学数学] 第206节 优选法与试验设计初步_第3张图片


[从头学数学] 第206节 优选法与试验设计初步_第4张图片


[从头学数学] 第206节 优选法与试验设计初步_第5张图片


[从头学数学] 第206节 优选法与试验设计初步_第6张图片


[从头学数学] 第206节 优选法与试验设计初步_第7张图片


[从头学数学] 第206节 优选法与试验设计初步_第8张图片


[从头学数学] 第206节 优选法与试验设计初步_第9张图片


[从头学数学] 第206节 优选法与试验设计初步_第10张图片


[从头学数学] 第206节 优选法与试验设计初步_第11张图片


<span style="font-size:18px;">>>> a = 1+1-2*math.cos(108/180*math.pi);
>>> a
2.618033988749895
>>> d = a**0.5;
>>> d
1.618033988749895
>>> d*(d-1);
1.0000000000000002</span>

[从头学数学] 第206节 优选法与试验设计初步_第12张图片


[从头学数学] 第206节 优选法与试验设计初步_第13张图片


<span style="font-size:18px;">>>> 
[1, 0.5, 0.6666666666666666, 0.6000000000000001, 0.625, 0.6153846153846154, 
0.6190476190476191, 0.6176470588235294, 
0.6181818181818182, 0.6179775280898876, 
0.6180555555555556]

#分数法系数阵列
def fractionMethod():
    array = [];

    w = 1;
    array.append(w);
    
    for i in range(10):
        w = 1/(1+w);
        array.append(w);

    print(array);</span>

[从头学数学] 第206节 优选法与试验设计初步_第14张图片




[从头学数学] 第206节 优选法与试验设计初步_第15张图片


[从头学数学] 第206节 优选法与试验设计初步_第16张图片


[从头学数学] 第206节 优选法与试验设计初步_第17张图片


[从头学数学] 第206节 优选法与试验设计初步_第18张图片


<span style="font-size:18px;">>>> 
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]
21 55

def tmp():
    #生成斐波那契数列
    fib = [];
    for i in range(20):
        fib.append(Fibonacci(i));

    print(fib);
        
    #试验范围
    bound_low = 29;
    bound_high = 50;

    index_low = index_high = 1;

    
    for i in range(len(fib)):
        if (fib[i] <= bound_low):
            index_low = i;

        if (fib[i] > bound_low):
            break;

    for i in range(len(fib)):
        if (fib[i] >= bound_high):
            index_high = i;
            break;

    print(fib[index_low], fib[index_high]);

试验点:21, 55, 34, [21, 34]化为[0, 13], 中间取[8, 5], 所以是取29, 26</span>


<span style="font-size:18px;">1  -->  91
2  -->  84
3  -->  79
4  -->  76
5  -->  75
6  -->  76
7  -->  79
8  -->  84
9  -->  91

def tmp():
   for i in range(1, 10):
       print(i, ' --> ', i*i+10*(10-i));
	   
	  </span>

[从头学数学] 第206节 优选法与试验设计初步_第19张图片




[从头学数学] 第206节 优选法与试验设计初步_第20张图片


[从头学数学] 第206节 优选法与试验设计初步_第21张图片


[从头学数学] 第206节 优选法与试验设计初步_第22张图片


[从头学数学] 第206节 优选法与试验设计初步_第23张图片


[从头学数学] 第206节 优选法与试验设计初步_第24张图片


[从头学数学] 第206节 优选法与试验设计初步_第25张图片


[从头学数学] 第206节 优选法与试验设计初步_第26张图片


[从头学数学] 第206节 优选法与试验设计初步_第27张图片


[从头学数学] 第206节 优选法与试验设计初步_第28张图片


[从头学数学] 第206节 优选法与试验设计初步_第29张图片


[从头学数学] 第206节 优选法与试验设计初步_第30张图片


[从头学数学] 第206节 优选法与试验设计初步_第31张图片


[从头学数学] 第206节 优选法与试验设计初步_第32张图片


[从头学数学] 第206节 优选法与试验设计初步_第33张图片


[从头学数学] 第206节 优选法与试验设计初步_第34张图片


[从头学数学] 第206节 优选法与试验设计初步_第35张图片


[从头学数学] 第206节 优选法与试验设计初步_第36张图片


有哪些种类的饱和正交表呢?


<span style="font-size:18px;">>>> 
L_4.0 (2^3)
L_8.0 (2^7)
L_16.0 (2^15)
L_32.0 (2^31)
L_9.0 (3^4)
L_27.0 (3^13)
L_16.0 (4^5)
L_64.0 (4^21)
L_25.0 (5^6)
L_125.0 (5^31)
L_36.0 (6^7)

#水平N正交表
def orthogonalTable(level, factor):
    #饱和型正交表
    count = 0;
    #q = (t^n-1)/(t-1)
    count = math.log(((level-1)*factor)+1)/math.log(level);

    return count;


def tmp():
    #水平
    for i in range(2, 7):
        #因素
        for j in range(2, 40):
            result = orthogonalTable(i, j);
            if abs(int(result)-result)<1e-6:
                print('L_{0} ({1}^{2})'.format(round(i**result, 3), i, j));</span>


[从头学数学] 第206节 优选法与试验设计初步_第37张图片


[从头学数学] 第206节 优选法与试验设计初步_第38张图片

<span style="font-size:18px;">>>> 
[[15.0, 18.0, 13.5], [14.5, 11.5, 16.0]]
[0.5, 6.5, 2.5]

def tmp():
    level = 2;
    factor = 3;
    
    array = [
        #前三列为因素,最后一列为试验得到的数据值
        [1,1,1,17],
        [1,2,2,13],
        [2,1,2,19],
        [2,2,1,10]
        ];

    size = len(array);

    k_q = [([0]*factor) for j in range(level)];

    for k in range(level):
        for i in range(factor):
            sum_ = 0;
            for j in range(size):
                if (array[j][i] == k+1):
                    sum_ += array[j][factor];

            k_q[k][i] = sum_/level;

    print(k_q);
       
    R = [0]*factor;

    for i in range(factor):
        subArray = [];
        for j in range(level):
            subArray.append(k_q[j][i]);

        max_ = max(subArray);
        min_ = min(subArray);
        R[i] = max_-min_;

    print(R);
	</span>


[从头学数学] 第206节 优选法与试验设计初步_第39张图片


[从头学数学] 第206节 优选法与试验设计初步_第40张图片


[从头学数学] 第206节 优选法与试验设计初步_第41张图片


[从头学数学] 第206节 优选法与试验设计初步_第42张图片


[从头学数学] 第206节 优选法与试验设计初步_第43张图片


[从头学数学] 第206节 优选法与试验设计初步_第44张图片

<span style="font-size:18px;">>>> 
[[1.5, 2.25, 2.0], [2.75, 2.0, 2.25]]
[1.25, 0.25, 0.25]

def tmp():
    level = 2;
    factor = 3;
    
    array = [
        #前三列为因素,最后一列为试验得到的数据值
        [1,1,1,1.5],
        [1,2,2,1.5],
        [2,1,2,3.0],
        [2,2,1,2.5]
        ];

    size = len(array);

    k_q = [([0]*factor) for j in range(level)];

    for k in range(level):
        for i in range(factor):
            sum_ = 0;
            for j in range(size):
                if (array[j][i] == k+1):
                    sum_ += array[j][factor];

            k_q[k][i] = sum_/level;

    print(k_q);
       
    R = [0]*factor;

    for i in range(factor):
        subArray = [];
        for j in range(level):
            subArray.append(k_q[j][i]);

        max_ = max(subArray);
        min_ = min(subArray);
        R[i] = max_-min_;

    print(R);</span>


[从头学数学] 第206节 优选法与试验设计初步_第45张图片


[从头学数学] 第206节 优选法与试验设计初步_第46张图片


[从头学数学] 第206节 优选法与试验设计初步_第47张图片


<span style="font-size:18px;">>>> 
[[433.667, 456.167, 439.833], [438.833, 423.667, 418.167], [424.667, 417.333, 439.167]]
[14.166, 38.834, 21.666]

def tmp():
    level = 3;
    factor = 3;
    
    array = [
        #前三列为因素,最后一列为试验得到的数据值
        [1,1,1,463.5],
        [1,2,2,409.0],
        [1,3,3,428.5],
        [2,1,2,451.5],
        [2,2,3,435.5],
        [2,3,1,429.5],
        [3,1,3,453.5],
        [3,2,1,426.5],
        [3,3,2,394.0]
         
        ];

    size = len(array);

    k_q = [([0]*factor) for j in range(level)];

    for k in range(level):
        for i in range(factor):
            sum_ = 0;
            for j in range(size):
                if (array[j][i] == k+1):
                    sum_ += array[j][factor];

            k_q[k][i] = round(sum_/level, 3);

    print(k_q);
       
    R = [0]*factor;

    for i in range(factor):
        subArray = [];
        for j in range(level):
            subArray.append(k_q[j][i]);

        max_ = max(subArray);
        min_ = min(subArray);
        R[i] = round(max_-min_, 3);

    print(R);
	</span>

[从头学数学] 第206节 优选法与试验设计初步_第48张图片


[从头学数学] 第206节 优选法与试验设计初步_第49张图片


[从头学数学] 第206节 优选法与试验设计初步_第50张图片

>>> 
[[72.0, 83.5, 80.0], [84.5, 73.0, 76.5]]
[12.5, 10.5, 3.5]

def tmp2():
    level = 2;
    factor = 3;
    
    array = [
        #前三列为因素,最后一列为试验得到的数据值
        [1,1,1,79],
        [1,2,2,65],
        [2,1,2,88],
        [2,2,1,81]
        ];

    size = len(array);

    k_q = [([0]*factor) for j in range(level)];

    for k in range(level):
        for i in range(factor):
            sum_ = 0;
            for j in range(size):
                if (array[j][i] == k+1):
                    sum_ += array[j][factor];

            k_q[k][i] = sum_/level;

    print(k_q);
       
    R = [0]*factor;

    for i in range(factor):
        subArray = [];
        for j in range(level):
            subArray.append(k_q[j][i]);

        max_ = max(subArray);
        min_ = min(subArray);
        R[i] = max_-min_;

    print(R);


[从头学数学] 第206节 优选法与试验设计初步_第51张图片

[从头学数学] 第206节 优选法与试验设计初步_第52张图片

[从头学数学] 第206节 优选法与试验设计初步_第53张图片


这些正交表中的每行每列到底是些什么规律,小伟还没搞明白,先放着吧。


本节到此结束,欲知后事如何,请看下回分解。

你可能感兴趣的:([从头学数学] 第206节 优选法与试验设计初步)