Você está na página 1de 27

Actividad 2

Programa: Newton-Raphson
Diagrama sintáctico
2
BNF
<variable>::=<numero><digito>|<lista de carácteres>|<carácter>

<letra>::=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|

A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z

<lista de carácteres>::=<carácter><letra>|<letra><letra>|<carácter><carácter>

<carácter>::=<letra>|<'>

<operador>::=+|-|*|/|**|<|>|=

3
<numero>::=<numero><digito>|<digito>

<digito>::=1|2|3|4|5|6|7|8|9|0

<expresión>::=<expresión>|<expresión><variable>|<expresión(<numero><operador><expresión>)

<expresión>::=<expresión>|<variable>|<numero>< expresión >|< expresión >(<numero><variable>)

<expresión>::=<expresión>|<variable>|<numero>< expresión >|< expresión >(<numero><variable>)

<expresión>::=<expresión>|<expresión><expresión><variable><variable>|<variable><operador><expr
esión>|

<expresión><variable>|<expresión><expresión>|<variable><operador><variable>|

<variable><operador><variable><operador><expresión>|

<expresión>(<variable>)<operador><expresión>(<variable>)|

<expresión><carácter><variable><numero>| <expresión><carácter>|<expresión>|

<expresión><expresión>(<variable>)

4
Batería de pruebas
Variable x0

Pruebas dentro de frontera

Salida esperada Salida

x0=1 1 1.0

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

df= 30*x**4-20*x**3-12*x**2+6*x

x0=-2 -0.795333672089465 -0.795333672089465

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

df= 30*x**4-20*x**3-12*x**2+6*x

x0=5.1 1.0 1.000000004427037

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

5
df= 30*x**4-20*x**3-12*x**2+6*x

Variable x0

Pruebas en frontera

Salida esperada Salida

x0=None Error No soporta operando


** a variable tipo
None.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=2+3j Error No puede convertir


complejo a
flotante.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6

6
*x

x0=”” Error Error de sintaxis.

e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

7
Variable x0

Pruebas fuera de frontera

Salida esperada Salida

x0=”A” Error No se puede aplicar


operador ** a
un “string”.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=”.” Error No se puede aplicar


operador ** a un
“string”.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1.4.3 Error Error de sintaxis.

8
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

9
Variable e

Pruebas dentro de frontera

Salida esperada Salida Tiempo de


ejecución
(segundo
s)

x0=2 1.4280299678994783 1.4280299678994783 0.0004454437

e=10

f= 6*x**5-
5*x**4-
4*x**3+3
*x**2

df= 30*x**4-
20*x**3-
12*x**2+
6*x

x0=2 1.116230367048299 1.116230367048299 0.0005393563

e=seno 90

f= 6*x**5-
5*x**4-
4*x**3+3
*x**2

df= 30*x**4-
20*x**3-

10
12*x**2+
6*x

x0=2 1.006301081686905 1.006301081686905 0.0005911879

e=0.1

f= 6*x**5-
5*x**4-
4*x**3+3
*x**2

df= 30*x**4-
20*x**3-
12*x**2+
6*x

11
Variable e

Pruebas en frontera

Salida esperada Salida Tiempo de


ejecución
(segundos)

x0=2 Error No puede comparar

e=None

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=2 Error No puede comparar


complejo con
entero.
e=2+3j

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

12
x0=2 El programa se Error de sintaxis. 0.0004567344
ciclará

e=0

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

13
Variable e

Pruebas fuera de frontera

Salida esperada Salida Tiempo de


ejecución
(segundos)

x0=2 Error No puede comparar


a un “string”
con un
e=”A” entero.

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=2 El programa se No puede comparar


ciclará a un “string”
con un
e=-10 entero.

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

14
x0=2 El programa se El programa no
ciclará hace nada.
Se tuvo que
e=-log(2) detener.

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 30*x**4-
20*x**3-
12*x**2+6
*x

15
Variable f

Pruebas dentro de frontera

Salida esperada Salida

x0=1 1.4098496142864243 1.4098496142864243

e=0.00001

f= 0.8*x**2+x**1-
3

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1 1.0 1.0

e=0.00001

f= log(x)

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1 -6.86468351823179 -6.86468351823179

e=0.00001

16
f=seno(x**2)

df= 30*x**4-
20*x**3-
12*x**2+6
*x

17
Variable f

Pruebas en frontera

Salida esperada Salida

x0=1 Error Desbordamiento de


variable.
Resultado es
e=0.00001 muy grande.

f= -5*x**9+x**2-
10

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1 Programa se ciclara El programa se cicló.

e=0.00001

f=
x**2+math
.log(2)

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0= Error El programa se cicló.

18
e=0.00001

f= -5*x**3-x**2-
x**1-10

df= 30*x**4-
20*x**3-
12*x**2+6
*x

19
Variable f

Pruebas fuera de frontera

Salida esperada Salida

x0=1 Programa se ciclara El programa se cicló.

e=0.00001

f= x**-1

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1 Error El programa se cicló.

e=0.00001

f= 2*x**3+3j

df= 30*x**4-
20*x**3-
12*x**2+6
*x

x0=1 Programa se ciclara Desbordamiento de


variable.
Resultado es
e=0.00001 muy grande.

20
f= x**x**x**x**x

df= 30*x**4-
20*x**3-
12*x**2+6
*x

21
Variable df

Pruebas dentro de frontera

Salida esperada Salida

x0=0.5 0.6286680781673306 0.6286680781673306

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

df=
5*x**4+5*x**3+2*x**2+6
*x**1+0

x0=0.5 0.00118382087927325 0.00118382087927325

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

df= 0.8*x**2+x**2-3

x0=0.5 0.001024300572551623 0.001024300572551623

e=0.00001

f= 6*x**5-5*x**4-4*x**3+3*x**2

df=

22
5*x**6+5*x**3+2*x**2+6
*x**1+0

23
Variable df

Pruebas en frontera

Salida esperada Salida

x0=0.5 División entre cero División flotante entre


cero

e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= 0

x0=0.5 Regresar respuesta El programa se cicló.


después de un
largo tiempo
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*
x**2

df= x*x*x*x*x

x0=0.5 El programa tardaría 0.001827887767445108


en llegar a la
respuesta.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*

24
x**2

df= 100

25
Variable df

Pruebas fuera de frontera

Salida esperada Salida

x0=0.5 Crashear al intentar El programa se cicló.


convertir
flotante a string
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= “prueba”

x0=0.5 Error El programa no puede


convertir el
número
e=0.00001 complejo a
flotante

f= 6*x**5-5*x**4-
4*x**3+3*x
**2

df= 2+3j

x0=0.5 Error. División entre División de flotante


cero no es entre cero.
válida.
e=0.00001

f= 6*x**5-5*x**4-
4*x**3+3*x

26
**2

df= x/0

27

Você também pode gostar