def Demo_gradient(x): x=DualNumber(x); y=-EF.Sin(x)*EF.Cos(x)*EF.Tan(x)+EF.Exp(x)*EF.Log(x)*EF.Sqrt(x)*2 return y.der #y=sin(x)cos(x)tan(x)-2exp(x)log(x)sqrt(x)
def rm_test_Sqrt(): Test_Dual_Number_1 = DualNumber(0.5,Reverse=True) assert EF.Sqrt(Test_Dual_Number_1).val == np.sqrt(0.5) and EF.Sqrt(Test_Dual_Number_1).der == 0
def Given_function(x): x = DualNumber(x) y = EF.Sin(x) * EF.Cos(x) * EF.Tan(x) - EF.Exp(x) * EF.Log(x) * EF.Sqrt( x) * 2 return y #y=sin(x)cos(x)tan(x)-2exp(x)log(x)sqrt(x)
def test_Sqrt(): Test_Dual_Number_1 = DualNumber(0.5) assert EF.Sqrt(Test_Dual_Number_1).val == np.sqrt(0.5) and EF.Sqrt(Test_Dual_Number_1).der == 1 / np.sqrt( 0.5) / 2 Test_Dual_Number_1 = 0.5 assert EF.Sqrt(Test_Dual_Number_1).val == np.sqrt(0.5) and EF.Sqrt(Test_Dual_Number_1).der == 0