1. Implement Karafillis-Boyce yield criterion (the residum and Jacobian);
2. Karafillis-Boyce works
This commit is contained in:
parent
2baac6fc10
commit
8b1846e78e
|
@ -135,14 +135,6 @@ class Hosford(object):
|
||||||
def jac(self, (sigma0, a), ydata, sigmas):
|
def jac(self, (sigma0, a), ydata, sigmas):
|
||||||
return HosfordBasis(sigma0, 1.0,1.0,1.0, a, sigmas, Jac=True, nParas=2)
|
return HosfordBasis(sigma0, 1.0,1.0,1.0, a, sigmas, Jac=True, nParas=2)
|
||||||
|
|
||||||
|
|
||||||
#more to do
|
|
||||||
# KarafillisAndBoyce
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------------------------
|
|
||||||
# isotropic yield surfaces
|
|
||||||
# ---------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
class Hill1948(object):
|
class Hill1948(object):
|
||||||
'''
|
'''
|
||||||
residuum of Hill 1948 quadratic yield criterion (eq. 2.48)
|
residuum of Hill 1948 quadratic yield criterion (eq. 2.48)
|
||||||
|
@ -160,11 +152,6 @@ class Hill1948(object):
|
||||||
for f,g,h,l,m,n in zip(jF, jG, jH, jL, jM, jN): jaco.append([f,g,h,l,m,n])
|
for f,g,h,l,m,n in zip(jF, jG, jH, jL, jM, jN): jaco.append([f,g,h,l,m,n])
|
||||||
return np.array(jaco)
|
return np.array(jaco)
|
||||||
|
|
||||||
#more to do
|
|
||||||
# Hill 1979
|
|
||||||
|
|
||||||
# Hill 1990,1993 need special stresses to fit
|
|
||||||
|
|
||||||
class generalHosford(object):
|
class generalHosford(object):
|
||||||
'''
|
'''
|
||||||
residuum of Hershey yield criterion (eq. 2.104, sigmas = sigma0)
|
residuum of Hershey yield criterion (eq. 2.104, sigmas = sigma0)
|
||||||
|
@ -212,6 +199,22 @@ class Yld200418p(object):
|
||||||
d12,d21,d23,d32,d31,d13,d44,d55,d66, m), ydata, sigmas):
|
d12,d21,d23,d32,d31,d13,d44,d55,d66, m), ydata, sigmas):
|
||||||
return Yld200418pBasis(sigma0, c12,c21,c23,c32,c31,c13,c44,c55,c66,
|
return Yld200418pBasis(sigma0, c12,c21,c23,c32,c31,c13,c44,c55,c66,
|
||||||
d12,d21,d23,d32,d31,d13,d44,d55,d66, m, sigmas, Jac=True)
|
d12,d21,d23,d32,d31,d13,d44,d55,d66, m, sigmas, Jac=True)
|
||||||
|
|
||||||
|
class KarafillisBoyce(object):
|
||||||
|
'''
|
||||||
|
residuum of Karafillis-Boyce yield criterion
|
||||||
|
'''
|
||||||
|
def __init__(self, uniaxialStress):
|
||||||
|
self.stress0 = uniaxialStress
|
||||||
|
def fun(self, (c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,
|
||||||
|
b1, b2, a, alpha), ydata, sigmas):
|
||||||
|
return KarafillisBoyceBasis(self.stress0, c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,
|
||||||
|
b1, b2, a, alpha, sigmas)
|
||||||
|
def jac(self, (c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,
|
||||||
|
b1, b2, a, alpha), ydata, sigmas):
|
||||||
|
return KarafillisBoyceBasis(self.stress0, c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,
|
||||||
|
b1, b2, a, alpha, sigmas, Jac=True)
|
||||||
|
|
||||||
class BBC2003(object):
|
class BBC2003(object):
|
||||||
'''
|
'''
|
||||||
residuum of anisotropic Barlat 1991 yield criterion (eq. 2.37)
|
residuum of anisotropic Barlat 1991 yield criterion (eq. 2.37)
|
||||||
|
@ -330,7 +333,6 @@ def Cazacu_Barlat2DBasis(a1,a2,a3,a4,b1,b2,b3,b4,b5,b10,c,
|
||||||
jaco.append(jacv)
|
jaco.append(jacv)
|
||||||
return np.array(jaco)
|
return np.array(jaco)
|
||||||
|
|
||||||
|
|
||||||
def DruckerBasis(sigma0, C_D, p, sigmas, Jac=False, nParas=2):
|
def DruckerBasis(sigma0, C_D, p, sigmas, Jac=False, nParas=2):
|
||||||
s11 = sigmas[0]; s22 = sigmas[1]; s33 = sigmas[2]
|
s11 = sigmas[0]; s22 = sigmas[1]; s33 = sigmas[2]
|
||||||
s12 = sigmas[3]; s23 = sigmas[4]; s31 = sigmas[5]
|
s12 = sigmas[3]; s23 = sigmas[4]; s31 = sigmas[5]
|
||||||
|
@ -551,7 +553,7 @@ def principalStress(p):
|
||||||
|
|
||||||
return np.array([S1,S2,S3]), np.array([I1,I2,I3])
|
return np.array([S1,S2,S3]), np.array([I1,I2,I3])
|
||||||
|
|
||||||
def principalStrs_Der(p, Invariant, s1, s2, s3, s4, s5, s6):
|
def principalStrs_Der(p, Invariant, s1, s2, s3, s4, s5, s6, Karafillis=False):
|
||||||
sin = np.sin; cos = np.cos
|
sin = np.sin; cos = np.cos
|
||||||
I1 = Invariant[0,:]; I2 = Invariant[1,:]; I3 = Invariant[2,:]
|
I1 = Invariant[0,:]; I2 = Invariant[1,:]; I3 = Invariant[2,:]
|
||||||
|
|
||||||
|
@ -600,6 +602,43 @@ def principalStrs_Der(p, Invariant, s1, s2, s3, s4, s5, s6):
|
||||||
dI3dp1 = p[2]*p[0] - p[5]**2; dI3dp5 = -2.0*p[5]*p[1] + 2.0*p[3]*p[4]
|
dI3dp1 = p[2]*p[0] - p[5]**2; dI3dp5 = -2.0*p[5]*p[1] + 2.0*p[3]*p[4]
|
||||||
dI3dp2 = p[0]*p[1] - p[3]**2; dI3dp3 = -2.0*p[3]*p[2] + 2.0*p[4]*p[5]
|
dI3dp2 = p[0]*p[1] - p[3]**2; dI3dp3 = -2.0*p[3]*p[2] + 2.0*p[4]*p[5]
|
||||||
|
|
||||||
|
if Karafillis:
|
||||||
|
dS1dp0 = dS1dI1*dI1dp0 + dS1dI2*dI2dp0 + dS1dI3*dI3dp0
|
||||||
|
dS1dp1 = dS1dI1*dI1dp1 + dS1dI2*dI2dp1 + dS1dI3*dI3dp1
|
||||||
|
dS1dp2 = dS1dI1*dI1dp2 + dS1dI2*dI2dp2 + dS1dI3*dI3dp2
|
||||||
|
dS1dp3 = dS1dI1*dI1dp3 + dS1dI2*dI2dp3 + dS1dI3*dI3dp3
|
||||||
|
dS1dp4 = dS1dI1*dI1dp4 + dS1dI2*dI2dp4 + dS1dI3*dI3dp4
|
||||||
|
dS1dp5 = dS1dI1*dI1dp5 + dS1dI2*dI2dp5 + dS1dI3*dI3dp5
|
||||||
|
dS2dp0 = dS2dI1*dI1dp0 + dS2dI2*dI2dp0 + dS2dI3*dI3dp0
|
||||||
|
dS2dp1 = dS2dI1*dI1dp1 + dS2dI2*dI2dp1 + dS2dI3*dI3dp1
|
||||||
|
dS2dp2 = dS2dI1*dI1dp2 + dS2dI2*dI2dp2 + dS2dI3*dI3dp2
|
||||||
|
dS2dp3 = dS2dI1*dI1dp3 + dS2dI2*dI2dp3 + dS2dI3*dI3dp3
|
||||||
|
dS2dp4 = dS2dI1*dI1dp4 + dS2dI2*dI2dp4 + dS2dI3*dI3dp4
|
||||||
|
dS2dp5 = dS2dI1*dI1dp5 + dS2dI2*dI2dp5 + dS2dI3*dI3dp5
|
||||||
|
dS3dp0 = dS3dI1*dI1dp0 + dS3dI2*dI2dp0 + dS3dI3*dI3dp0
|
||||||
|
dS3dp1 = dS3dI1*dI1dp1 + dS3dI2*dI2dp1 + dS3dI3*dI3dp1
|
||||||
|
dS3dp2 = dS3dI1*dI1dp2 + dS3dI2*dI2dp2 + dS3dI3*dI3dp2
|
||||||
|
dS3dp3 = dS3dI1*dI1dp3 + dS3dI2*dI2dp3 + dS3dI3*dI3dp3
|
||||||
|
dS3dp4 = dS3dI1*dI1dp4 + dS3dI2*dI2dp4 + dS3dI3*dI3dp4
|
||||||
|
dS3dp5 = dS3dI1*dI1dp5 + dS3dI2*dI2dp5 + dS3dI3*dI3dp5
|
||||||
|
|
||||||
|
dS1dc1 = ( dS1dp0*0.0 + dS1dp1*(s2-s3) + dS1dp2*(s3-s2) )/3.0
|
||||||
|
dS1dc2 = ( dS1dp0*(s1-s3) + dS1dp1*0.0 + dS1dp2*(s3-s1) )/3.0
|
||||||
|
dS1dc3 = ( dS1dp0*(s1-s2) + dS1dp1*(s2-s1) + dS1dp2*0.0 )/3.0
|
||||||
|
dS2dc1 = ( dS2dp0*0.0 + dS2dp1*(s2-s3) + dS2dp2*(s3-s2) )/3.0
|
||||||
|
dS2dc2 = ( dS2dp0*(s1-s3) + dS2dp1*0.0 + dS2dp2*(s3-s1) )/3.0
|
||||||
|
dS2dc3 = ( dS2dp0*(s1-s2) + dS2dp1*(s2-s1) + dS2dp2*0.0 )/3.0
|
||||||
|
dS3dc1 = ( dS3dp0*0.0 + dS3dp1*(s2-s3) + dS3dp2*(s3-s2) )/3.0
|
||||||
|
dS3dc2 = ( dS3dp0*(s1-s3) + dS3dp1*0.0 + dS3dp2*(s3-s1) )/3.0
|
||||||
|
dS3dc3 = ( dS3dp0*(s1-s2) + dS3dp1*(s2-s1) + dS3dp2*0.0 )/3.0
|
||||||
|
dS1dc4 = dS1dp3*s4; dS1dc5 = dS1dp4*s5; dS1dc6 = dS1dp5*s6
|
||||||
|
dS2dc4 = dS2dp3*s4; dS2dc5 = dS2dp4*s5; dS2dc6 = dS2dp5*s6
|
||||||
|
dS3dc4 = dS3dp3*s4; dS3dc5 = dS3dp4*s5; dS3dc6 = dS3dp5*s6
|
||||||
|
|
||||||
|
return dS1dc1,dS1dc2,dS1dc3,dS1dc4,dS1dc5,dS1dc6,\
|
||||||
|
dS2dc1,dS2dc2,dS2dc3,dS2dc4,dS2dc5,dS2dc6,\
|
||||||
|
dS3dc1,dS3dc2,dS3dc3,dS3dc4,dS3dc5,dS3dc6
|
||||||
|
else:
|
||||||
dI1dc12 = dI1dp0*(-s2); dI2dc12 = dI2dp0*(-s2); dI3dc12 = dI3dp0*(-s2) # c12
|
dI1dc12 = dI1dp0*(-s2); dI2dc12 = dI2dp0*(-s2); dI3dc12 = dI3dp0*(-s2) # c12
|
||||||
dI1dc21 = dI1dp1*(-s1); dI2dc21 = dI2dp1*(-s1); dI3dc21 = dI3dp1*(-s1) # c21
|
dI1dc21 = dI1dp1*(-s1); dI2dc21 = dI2dp1*(-s1); dI3dc21 = dI3dp1*(-s1) # c21
|
||||||
dI1dc23 = dI1dp1*(-s3); dI2dc23 = dI2dp1*(-s3); dI3dc23 = dI3dp1*(-s3) # c23
|
dI1dc23 = dI1dp1*(-s3); dI2dc23 = dI2dp1*(-s3); dI3dc23 = dI3dp1*(-s3) # c23
|
||||||
|
@ -739,6 +778,105 @@ def Yld200418pBasis(sigma0, c12,c21,c23,c32,c31,c13,c44,c55,c66,
|
||||||
jaco.append(jacv)
|
jaco.append(jacv)
|
||||||
return np.array(jaco)
|
return np.array(jaco)
|
||||||
|
|
||||||
|
def KarafillisBoyceBasis(sigma0, c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,
|
||||||
|
b1, b2, a, alpha , sigmas, Jac=False):
|
||||||
|
s1 = sigmas[0]; s2 = sigmas[1]; s3 = sigmas[2]
|
||||||
|
s4 = sigmas[3]; s5 = sigmas[4]; s6 = sigmas[5]
|
||||||
|
|
||||||
|
p = np.empty_like(sigmas); q = np.empty_like(sigmas)
|
||||||
|
p[0] = ( (c12+c13)*s1 - c13*s2 - c12*s3 )/3.0
|
||||||
|
p[1] = ( (c13+c11)*s2 - c13*s1 - c11*s3 )/3.0
|
||||||
|
p[2] = ( (c11+c12)*s3 - c12*s1 - c11*s2 )/3.0
|
||||||
|
p[3] = c14*s4
|
||||||
|
p[4] = c15*s5
|
||||||
|
p[5] = c16*s6
|
||||||
|
|
||||||
|
q[0] = ( (c22+c23)*s1 - c23*s2 - c22*s3 )/3.0
|
||||||
|
q[1] = ( (c23+c21)*s2 - c23*s1 - c21*s3 )/3.0
|
||||||
|
q[2] = ( (c21+c22)*s3 - c22*s1 - c21*s2 )/3.0
|
||||||
|
q[3] = c24*s4
|
||||||
|
q[4] = c25*s5
|
||||||
|
q[5] = c26*s6
|
||||||
|
|
||||||
|
plambdas, pInvariant = principalStress(p) # no sort
|
||||||
|
qlambdas, qInvariant = principalStress(q) # no sort
|
||||||
|
|
||||||
|
P1 = plambdas[0,:]; P2 = plambdas[1,:]; P3 = plambdas[2,:]
|
||||||
|
Q1 = qlambdas[0,:]; Q2 = qlambdas[1,:]; Q3 = qlambdas[2,:]
|
||||||
|
|
||||||
|
b1h = b1/2.0; b1h1 = b1h-1.0; b2h = b2/2.0; b2h1 = b2h-1.0
|
||||||
|
b1i = 1.0/b1; b2i = 1.0/b2
|
||||||
|
ai = 1.0/a
|
||||||
|
P2P3s = (P2-P3)**2; Q1s = Q1**2
|
||||||
|
P3P1s = (P3-P1)**2; Q2s = Q2**2
|
||||||
|
P1P2s = (P1-P2)**2; Q3s = Q3**2
|
||||||
|
|
||||||
|
phi10 = P2P3s**b1h + P3P1s**b1h + P1P2s**b1h
|
||||||
|
phi20 = Q1s**b2h+Q2s**b2h+Q3s**b2h; rb2 = 3.0**b2/(2.0**b2+2.0)
|
||||||
|
phi1 = (0.5*phi10)**b1i
|
||||||
|
phi2 = (rb2*phi20)**b2i
|
||||||
|
|
||||||
|
Stress = alpha*phi1**a + (1.0-alpha)*phi2**a; EqStress = Stress**ai
|
||||||
|
r = EqStress/sigma0 - 1.0
|
||||||
|
|
||||||
|
if not Jac:
|
||||||
|
return r.ravel()
|
||||||
|
else:
|
||||||
|
ln = lambda x : np.log(x + 1.0e-32)
|
||||||
|
|
||||||
|
drds = (r+1.0)*ai/Stress
|
||||||
|
drdphi1 = drds* alpha *a*phi1**(a-1.0)
|
||||||
|
drdphi2 = drds*(1.0-alpha)*a*phi2**(a-1.0)
|
||||||
|
dsda = alpha*phi1**a*ln(phi1) + (1.0-alpha)*phi2**a*ln(phi2)
|
||||||
|
|
||||||
|
dphi1dphi10 = phi1/phi10/b1; dphi2dphi20 = phi2/phi20/b2
|
||||||
|
dphi1dP1 = dphi1dphi10*b1*( P3P1s**b1h1*(P1-P3) + P1P2s**b1h1*(P1-P2))
|
||||||
|
dphi1dP2 = dphi1dphi10*b1*( P2P3s**b1h1*(P2-P3) + P1P2s**b1h1*(P2-P1))
|
||||||
|
dphi1dP3 = dphi1dphi10*b1*( P3P1s**b1h1*(P3-P1) + P2P3s**b1h1*(P3-P2))
|
||||||
|
|
||||||
|
dphi2dQ1 = dphi2dphi20*b2*Q1s*b2h1*Q1
|
||||||
|
dphi2dQ2 = dphi2dphi20*b2*Q2s*b2h1*Q2
|
||||||
|
dphi2dQ3 = dphi2dphi20*b2*Q3s*b2h1*Q3
|
||||||
|
|
||||||
|
dP1dc1,dP1dc2,dP1dc3,dP1dc4,dP1dc5,dP1dc6, \
|
||||||
|
dP2dc1,dP2dc2,dP2dc3,dP2dc4,dP2dc5,dP2dc6, \
|
||||||
|
dP3dc1,dP3dc2,dP3dc3,dP3dc4,dP3dc5,dP3dc6= \
|
||||||
|
principalStrs_Der(p, pInvariant, s1,s2,s3,s4,s5,s6, Karafillis=True)
|
||||||
|
dQ1dc1,dQ1dc2,dQ1dc3,dQ1dc4,dQ1dc5,dQ1dc6, \
|
||||||
|
dQ2dc1,dQ2dc2,dQ2dc3,dQ2dc4,dQ2dc5,dQ2dc6, \
|
||||||
|
dQ3dc1,dQ3dc2,dQ3dc3,dQ3dc4,dQ3dc5,dQ3dc6= \
|
||||||
|
principalStrs_Der(q, qInvariant, s1,s2,s3,s4,s5,s6, Karafillis=True)
|
||||||
|
|
||||||
|
dphi10db1 = ( (P2P3s**b1h)*ln(P2P3s)+(P3P1s**b1h)*ln(P3P1s)+(P1P2s**b1h)*ln(P1P2s) )*0.5
|
||||||
|
dphi20db2 = ( (P2P3s**b1h)*ln(P2P3s)+(P3P1s**b1h)*ln(P3P1s)+(P1P2s**b1h)*ln(P1P2s) )*0.5
|
||||||
|
drb2db2 = rb2*ln(3.0) - rb2*ln(2.0)/(1.0+2.0**(1.0-b2))
|
||||||
|
dphi1db1 = phi1*ln(phi10)*(-b1i*b1i) + b1i*phi1/(0.5*phi10)* 0.5*dphi10db1
|
||||||
|
dphi2db2 = phi2*ln(phi20)*(-b2i*b2i) + b2i*phi2/(rb2*phi20)*(rb2*dphi20db2 + drb2db2*phi20)
|
||||||
|
ja = drds*dsda - (r+1.0)*ln(Stress)/a/a #drda
|
||||||
|
jb1 = drds * ( alpha *a*phi1**(a-1)) * dphi1db1
|
||||||
|
jb2 = drds * ((1.0-alpha)*a*phi2**(a-1)) * dphi2db2
|
||||||
|
jalpha = drds * (phi1**a - phi2**a)
|
||||||
|
|
||||||
|
jc11 = drdphi1*( dphi1dP1*dP1dc1 + dphi1dP2*dP2dc1 + dphi1dP3*dP3dc1 )
|
||||||
|
jc12 = drdphi1*( dphi1dP1*dP1dc2 + dphi1dP2*dP2dc2 + dphi1dP3*dP3dc2 )
|
||||||
|
jc13 = drdphi1*( dphi1dP1*dP1dc3 + dphi1dP2*dP2dc3 + dphi1dP3*dP3dc3 )
|
||||||
|
jc14 = drdphi1*( dphi1dP1*dP1dc4 + dphi1dP2*dP2dc4 + dphi1dP3*dP3dc4 )
|
||||||
|
jc15 = drdphi1*( dphi1dP1*dP1dc5 + dphi1dP2*dP2dc5 + dphi1dP3*dP3dc5 )
|
||||||
|
jc16 = drdphi1*( dphi1dP1*dP1dc6 + dphi1dP2*dP2dc6 + dphi1dP3*dP3dc6 )
|
||||||
|
|
||||||
|
jc21 = drdphi2*( dphi2dQ1*dQ1dc1 + dphi2dQ2*dQ2dc1 + dphi2dQ3*dQ3dc1 )
|
||||||
|
jc22 = drdphi2*( dphi2dQ1*dQ1dc2 + dphi2dQ2*dQ2dc2 + dphi2dQ3*dQ3dc2 )
|
||||||
|
jc23 = drdphi2*( dphi2dQ1*dQ1dc3 + dphi2dQ2*dQ2dc3 + dphi2dQ3*dQ3dc3 )
|
||||||
|
jc24 = drdphi2*( dphi2dQ1*dQ1dc4 + dphi2dQ2*dQ2dc4 + dphi2dQ3*dQ3dc4 )
|
||||||
|
jc25 = drdphi2*( dphi2dQ1*dQ1dc5 + dphi2dQ2*dQ2dc5 + dphi2dQ3*dQ3dc5 )
|
||||||
|
jc26 = drdphi2*( dphi2dQ1*dQ1dc6 + dphi2dQ2*dQ2dc6 + dphi2dQ3*dQ3dc6 )
|
||||||
|
|
||||||
|
jaco = []
|
||||||
|
for jacv in zip(jc11,jc12,jc13,jc14,jc15,jc16,jc21,jc22,jc23,jc24,jc25,jc26,
|
||||||
|
jb1,jb2,ja,jalpha):
|
||||||
|
jaco.append(jacv)
|
||||||
|
return np.array(jaco)
|
||||||
|
|
||||||
|
|
||||||
fittingCriteria = {
|
fittingCriteria = {
|
||||||
'tresca' :{'func' : Tresca,
|
'tresca' :{'func' : Tresca,
|
||||||
|
@ -835,6 +973,14 @@ fittingCriteria = {
|
||||||
\n Y, c12,c21,c23,c32,c31,c13,c44,c55,c66,d12,d21,d23,d32,d31,d13,d44,d55,d66,m\n',
|
\n Y, c12,c21,c23,c32,c31,c13,c44,c55,c66,d12,d21,d23,d32,d31,d13,d44,d55,d66,m\n',
|
||||||
'error': 'The standard deviation errors are: '
|
'error': 'The standard deviation errors are: '
|
||||||
},
|
},
|
||||||
|
'karafillis' :{'func' : KarafillisBoyce,
|
||||||
|
'num' : 16,'err':np.inf,
|
||||||
|
'name' : 'Yld200418p',
|
||||||
|
'paras': 'c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,b1,b2,a,alpha',
|
||||||
|
'text' : '\nCoefficients of Karafillis-Boyce yield criterion: \
|
||||||
|
\n c11,c12,c13,c14,c15,c16,c21,c22,c23,c24,c25,c26,b1,b2,a,alpha\n',
|
||||||
|
'error': 'The standard deviation errors are: '
|
||||||
|
},
|
||||||
'worst' :{'err':np.inf},
|
'worst' :{'err':np.inf},
|
||||||
'best' :{'err':np.inf}
|
'best' :{'err':np.inf}
|
||||||
}
|
}
|
||||||
|
@ -917,7 +1063,8 @@ class Criterion(object):
|
||||||
popt, pcov, infodict, errmsg, ierr = \
|
popt, pcov, infodict, errmsg, ierr = \
|
||||||
leastsqBound (criteria.fun, initialguess, args=(ydata,stress),
|
leastsqBound (criteria.fun, initialguess, args=(ydata,stress),
|
||||||
bounds=bounds, Dfun=criteria.jac, full_output=True)
|
bounds=bounds, Dfun=criteria.jac, full_output=True)
|
||||||
if ierr not in [1, 2, 3, 4]: raise RuntimeError("Optimal parameters not found: " + errmsg)
|
if ierr not in [1, 2, 3, 4]:
|
||||||
|
raise RuntimeError("Optimal parameters not found: " + errmsg)
|
||||||
if (len(ydata) > len(initialguess)) and pcov is not None:
|
if (len(ydata) > len(initialguess)) and pcov is not None:
|
||||||
s_sq = (criteria.fun(popt, *(ydata,stress))**2).sum()/(len(ydata)-len(initialguess))
|
s_sq = (criteria.fun(popt, *(ydata,stress))**2).sum()/(len(ydata)-len(initialguess))
|
||||||
pcov = pcov * s_sq
|
pcov = pcov * s_sq
|
||||||
|
|
Loading…
Reference in New Issue