示例#1
0
 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)
示例#2
0
 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
示例#3
0
 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')
示例#4
0
 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')
示例#5
0
 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')
示例#6
0
 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')
示例#7
0
 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')
示例#8
0
 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')
示例#9
0
 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')
示例#10
0
 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 test_hw07_prob02_ut10(self):
     print('\n***** CS3430: S20: HW07: Problem 02: Unit Test 10 ************')
     f = lambda x: 4*(x**5.0) - 3.0*(x**-3.0) + 10.0*(x**2) - 5.0*x
     ## rename parser if necessary.
     df = tof.tof(drv.drv(parser.parse_sum('4x^5 - 3x^-3 + 10x^2 - 5x^1')))
     x = 0.5
     h = 0.0001
     av = rxp.drv3(f, cdd.drv1_ord2, x, h)
     tv = df(x)
     err = 0.0000001
     assert abs(tv - 150.25) <= err
     assert isinstance(av, np.longdouble)
     assert abs(av - tv) <= err
     print('av={}'.format(av))
     print('tv={}'.format(tv))
     print('CS 3430: S20: HW07: Problem 02: Unit Test 10: pass')
 def test_hw07_prob01_ut14(self):
     print('\n***** CS3430: S20: HW07: Problem 01: Unit Test 14 ************')
     f = lambda x: 4*(x**3.0) - 3.0*(x**2.0) + 5.0*x - 10.0
     ## rename parser if necessary.        
     df = tof.tof(drv.drv(parser.parse_sum('4x^3 - 3x^2 + 5x^1 - 10x^0')))
     x = 1.0
     h = 0.0001
     av = cdd.drv1_ord4(f, x, h)
     tv = df(x)
     err = 0.0000001
     assert abs(tv - 11.0) <= err
     assert isinstance(av, np.longdouble)
     assert abs(av - tv) <= err
     print('av={}'.format(av))
     print('tv={}'.format(tv))
     print('CS 3430: S20: HW07: Problem 01: Unit Test 14: pass')
 def test_hw07_prob01_ut12(self):
     print('\n***** CS3430: S20: HW07: Problem 01: Unit Test 12 ************')
     f = lambda x: 2*(x**3.0) + 3.0*x
     ## rename parser if necessary.        
     df = tof.tof(drv.drv(parser.parse_sum('2x^3 + 3x^1')))
     x = 1.0
     h = 0.0001
     av = cdd.drv1_ord4(f, x, h)
     tv = df(x)
     err = 0.00000001
     assert abs(tv - 9.0) <= err
     assert isinstance(av, np.longdouble)
     assert abs(av - tv) <= err
     print('av={}'.format(av))
     print('tv={}'.format(tv))
     print('CS 3430: S20: HW07: Problem 01: Unit Test 12: pass')
示例#14
0
 def check_zr(fstr, zr, err=0.0001):
     return abs(tof.tof(parser.parse_sum(fstr))(zr) - 0.0) <= err