【问题标题】:Minimization of bounds for production capacity and production capability最小化生产能力和生产能力的界限
【发布时间】:2018-07-16 18:53:11
【问题描述】:

我的问题是,使用下面的函数,我怎样才能在数值上找到 USL 和 LSL 的优化值,以便函数 Pythag 的返回值处于全局最小值(即 Pythag 的梯度 == 0),而不知何故绑定 Cp 和 Cpk,使 Cp 返回值 2,Cpk 返回值 1.5。(Cp==2 和 Cpk==1.5)

import numpy as np
import matplotlib.pyplot as plt


def Cp(USL,LSL,s):
    return (USL-LSL)/(6*s)

def Cpk(USL,LSL,mean,sd):
    return min((USL-mu)/(3*s),(mu-LSL)/(3*s))

def Pythag(USL,LSL):
    return np.sqrt(np.square(USL)+np.square(LSL))

#This code below is for practice data 
x = np.linspace(0,100,101)
y = np.random.random(101)
sd = np.std(y)
mu = np.mean(y)

如果需要进一步说明,请告诉我。 感谢您的问题 Rory,我在上面添加了一些关键更改,因此问题更有意义。类似问题的其他答案不够充分的原因是我很难将它们与 Cpk 函数的 min 参数集成。

【问题讨论】:

  • 你试过什么?例如,您是否在“最小化 Python”或“优化 Python”上进行过网络搜索?如果是这样,为什么结果不适合您?有什么特别不明白的地方吗?此外,您要求最小化Pythag,但该函数不调用CpCpk,那么这些函数和代码底部四行的目的是什么?现在,Pythag 的最小值在USL=0LSL=0

标签: python numpy optimization calculus


【解决方案1】:

这是我发现的,可能是更好的方法,但它有效

def Six_sigma(USL,LSL,s,mean):

def Cp(USL,LSL,s):
    return (USL-LSL)/(6*s)

def Cpk(USL,LSL,s,mean):
    return min([(USL-mean)/(3*s),(mean-LSL)/(3*s)])


Cp = Cp(USL,LSL,s)
Cpk = Cpk(USL,LSL,s,mean)
return (Cp,Cpk)


def USL_LSL_solver(s,mean):
    LSL = mean; USL=mean
    for i in range(1000):
        x,y = six_sigma(USL,LSL,s,mean)
        USL-=x-1.5
        LSL+=y-1
    return (USL,LSL)

USL,LSL = USL_LSL_solver(std,mu)
print(Pythag(USL,LSL))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多