def zr1(fstr, x0, num_iters=3): if num_iters == 0: return x0 f = tof.tof((parser.parse_sum(fstr))) fprime = tof.tof(drv.drv(parser.parse_sum(fstr))) val = x0 - (f(x0)/fprime(x0)) return nra.zr1(fstr, val, num_iters-1)
def zr2(fstr, x0, delta=0.0001): f = tof.tof((parser.parse_sum(fstr))) fprime = tof.tof(drv.drv(parser.parse_sum(fstr))) oldVal = 0 newVal = x0 numIters = 0 while(abs(newVal - oldVal) > delta): oldVal = newVal newVal = newVal - (f(newVal)/fprime(newVal)) numIters += 1 return newVal, numIters
def test_hw06_prob01_ut06(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 06 ************') s = '10x^4' fex = parser.parse_sum(s) print(fex) print(drv.drv_prod(fex)) gtf = lambda x: 40.0 * x**3.0 f = tof.tof(drv.drv_prod(fex)) err = 0.0001 for i in range(-100, 101): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 06: pass')
def test_hw06_prob01_ut20(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 20 ************') s = '5x^2 - 3x^5 + 10x^3 - 11x^4 + 1x^1 - 50x^0' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: 10.0 * x - 15.0 * x**4.0 + 30.0 * x**2 - 44.0 * x**3 + 1.0 f = tof.tof(drv.drv(fex)) err = 0.0001 for i in range(1, 21): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 20: pass')
def test_hw06_prob01_ut18(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 18 ************') s = '5x^-10 + 3x^5 - 9x^3' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: -50.0 * x**-11.0 + 15.0 * x**4.0 - 27.0 * x**2 f = tof.tof(drv.drv(fex)) err = 0.0001 for i in range(1, 21): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 18: pass')
def test_hw06_prob01_ut17(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 17 ************') s = '10x^0.5' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: 5.0 * x**-0.5 f = tof.tof(drv.drv(fex)) err = 0.0001 for i in range(1, 101): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 17: pass')
def test_hw06_prob01_ut14(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 14 ************') s = '5x^3' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: 15.0 * x**2.0 f = tof.tof(drv.drv(fex)) err = 0.0001 for i in range(-100, 101): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 14: pass')
def test_hw06_prob01_ut02(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 02 ************') s = '1x^1' fex = parser.parse_sum(s) print(fex) print(fex.get_mult2()) print(drv.drv_pwr(fex.get_mult2())) gtf = lambda x: 1.0 f = tof.tof(drv.drv_pwr(fex.get_mult2())) err = 0.0001 for i in range(-100, 101): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 02: pass')
def test_hw06_prob01_ut19(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 19 ************') s = '5x^-2 - 3x^5 + 4.5x^7.342 + 50x^1 - 100x^0' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: -10.0 * x**-3.0 - 15.0 * x**4.0 + (4.5 * 7.342 ) * x**6.342 + 50.0 f = tof.tof(drv.drv(fex)) err = 0.0001 for i in range(1, 21): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 19: pass')
def test_hw06_prob01_ut15(self): print( '\n***** CS3430: S20: HW06: Problem 01: Unit Test 15 ************') s = '-3x^-1' fex = parser.parse_sum(s) print(fex) print(drv.drv(fex)) gtf = lambda x: 3.0 * x**-2.0 f = tof.tof(drv.drv_prod(fex)) err = 0.0001 for i in range(-100, 0): assert abs(gtf(i) - f(i)) <= err for i in range(1, 101): assert abs(gtf(i) - f(i)) <= err print('CS 3430: S20: HW06: Problem 01: Unit Test 15: pass')
def check_zr(fstr, zr, err=0.0001): return abs(tof.tof(parser.parse_sum(fstr))(zr) - 0.0) <= err