Está en la página 1de 9

Newton-Raphson

Código

BNF

<funcion> ::= 'def ' <nombre> '('<argumentos> '):' <bloque>


<nombre> ::= 'f' | 'df' | 'dx' | 'newtons_method'
<argumentos> ::= <lista>
<lista> ::= <elementos>
<elementos> ::= <elemento> | <elementos>', '<elemento>
<elemento> ::= <entero> | <flotante> | <funcion>
<flotante> ::= <entero>'.'<entero>
<entero> ::= <digitos>
<digitos> ::= <digito> | <digitos><digito>
<digito> ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<sentencia> ::= <asignacion>
| <return>
| <abs>
| <elemento>
| <while>
| <print>
| <bloque>
<bloque> ::= <expresiones> | <sentecnias> | <expresiones><sentencias>
<expresiones> ::= <expresion> | <expresiones><expresion>
<expresion> ::= <operacionAritmetica> | <llamaDeFuncion> |
<comparacionLogica>
<operacionArimetica> ::= <expresion> <operadorAritmetico> <expresion>
<operadorAritmetico> ::= '+' | '-' | '*' | '**'
<asignacion> ::= <nombreDeVariable>' = '<expresion>
<return> ::= 'retrun '(<expresion> | <abs>)
<abs> ::= 'abs('<expresion>')'
<while> ::= 'while '<expresion>':'
<print> ::= 'print('<cadena>', (<variable>|<llamadaDeFuncion>)')'
<cadena> ::= <caracter> | <cadena><caracter>
<caracter> ::= 'R' | 'O' | 'T'| 'I' | 'S' | 'A'| 'F' | 'X' | ' : ' | '('
| ')' |
<nombreVariable> ::= 'x0' | 'fx' | 'x' | 'dfx' | 'e' | 'delta'
<comparacionLogica> ::= <varibale>' > '<variable>
<variable> ::= <entero> | <flotante> | <funcion>

CFG

Caja Negra
Pruebas dentro de frontera

Caso Salida Esperada Salida


x0=.2 0.000919691923554 0.000919691923554
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=.4 1.000000042228079 1.00000004223
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=.6 0.628669060748576 0.628669060749
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=.8 0.628667076747033 0.628667076747
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
Pruebas en frontera

Caso Salida Esperada Salida


x0=2 1.116230367048299 -
e=seno 90 (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x
x0=2 1.428029967899478 -
e=10 (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x
x0=2 1.244124660034551 -
e=5 (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x
x0=5 1.075504543181335 -
e=1 (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x
Pruebas fuera de frontera

Caso Salida Esperada Salida


x0=2 Null -
e=0 (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x
x0=”x” Valor no soportado TypeError: unsupported operand
e=0.00001 type(s) for ** or pow(): 'str' and 'int'
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=null No se ingresó x0 TypeError: unsupported operand
e=0.00001 type(s) for ** or pow(): 'NoneType'
f=6*x**5-5*x**4-4*x**3+3*x**2 and 'int'
df=30*x**4-20*x**3-12*x**2+6*x
x0=.2 No se ingresó e -
e=null (Sin respuesta después de 5
f=6*x**5-5*x**4-4*x**3+3*x**2 minutos)
df=30*x**4-20*x**3-12*x**2+6*x

Suma de Riemann
Código

BNF

<flotante> ::= <entero>'.'<entero>


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

<asignacion> ::= <a>' = '<expresion>


<flotante> ::= <entero>'.'<entero>
<entero> ::= <digitos>
<digitos> ::= <digito> | <digitos><digito>
<digito> ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
<asignacion> ::= <b>' = '<expresion>
<flotante> ::= <entero>'.'<entero>
<entero> ::= <digitos>
<digitos> ::= <digito> | <digitos><digito>
<digito> ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
<asignacion> ::= <n>' = '<expresion>
<flotante> ::= <entero>'.'<entero>
<entero> ::= <digitos>
<digitos> ::= <digito> | <digitos><digito>
<digito> ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<asignacion> ::= <width>' = '<expresion>
<sentencia> ::= <asignacion>
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<asignacion> ::= <i>' = '<expresion>
<sentencia> ::= <asignacion>
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<asignacion> ::= <Area>' = '<expresion>
<sentencia> ::= <asignacion>
<while> ::= 'while '<i<=(n+1)>':'
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<asignacion> ::= <Area>' = '<f(b+width*i)*width + Area>
<sentencia> ::= <asignacion>
<sentencias> ::= <sentecnia> | <sentencias><sentencia>
<asignacion> ::= <i>' = '<expresion>
<sentencia> ::= <asignacion>
<print> ::= 'print('<cadena>', (<Area>)')'
<cadena> ::= <caracter> | <cadena><caracter>
<nombreVariable> ::= 'Area'

CFG

Caja Negra
Pruebas dentro de frontera

Caso Salida Esperada Salida


1, 1, 1 0, 0 0.0, 0.0

10, 10 ,10 0, 0 0.0, 0.0

2, 2, 2 0, 0 0.0, 0.0

15, 10 ,2 2.5, 198 2.5, 0.19858205868107034

10, 10, 5 5 0.0, 0.0

Pruebas en frontera

Caso Salida Esperada Salida


1.5, 10, 2 0 -4.25, -0.3375894997578196

1.5, 10, 2.5 -4.25, -0.3375 -3.4, -0.27007159980625567

2, 10, 2.5 -3.4, -3.2, -0.25418503511177004

2/2, 10, 2.5 Error al definir una de las -3.6, -0.2859581645007413


variables.

10, 2/2, 2.5 Valor positivo. 3.6, 3.6

0, 0, 0 0 ZeroDivisionError: division by zero.

0, 0, 1 0 0.0
5*5, 10, 2 7.5, 0.5 7.5, 0.595746176043211

5, 0, 2 2.5 2.5

Pruebas fuera de frontera

Caso Salida Esperada Salida


10, a, 0 Error al definir una ZeroDivisionError: division by zero.
variable.

10, 10, a Error al definir la 0.0, 0.0


variable.

0, a, 0 Error al definir la ZeroDivisionError: division by zero.


variable a.

-10, 1.4, 2 Error al definir la -5.7, -3.936715375407692


variable a.

main, 0, 5 Error porque a no está NameError: name 'main' is not


definida. defined.

1**, 0, 5 Error al definir a. SyntaxError: invalid syntax.

i, j, k Error al definir todas las SyntaxError: invalid syntax.


variables.

01, -10, 0 Error al definir la SyntaxError: invalid token.


variable a.

Diferencias Divididas
Código
Caja Negra
Pruebas dentro de frontera

Caso Salida Esperada Salida


X= [0,1,2,5] [ 0,3,-0.5, 0.06666667] [ 0.0,3.0,-0.5, 0.06666667]
Y= [0,3,5,9]

x= [1,5,7,8,9] [ 3,18.25,-8.9583, [ 3.18.25,-8.95833333 3.01785714,-


y= 3,76,5,6,3] 3.01785714,-0.8199] 0.819940]

x= [50,70] [90,0.5] [90.0,0.5]


y= [9,100]

Pruebas en frontera

Caso Salida Esperada Salida


X=[50.000000000000000000003000000400005,70] [90.34,0.48] [90.34532166,0.48273392]
Y=[90.3453242423323122343244343433,100]
x= [0.09034,0.00455652] [9.03453217e-01
[-50.000000000000000000003000000400005,70] 8.04556529e-02]
y= [90.3453242423323122343244343433,100]

x= [0.09034,0.00455652] [9.03453217e-01
[-50.000000000000000000003000000400005,70] 8.04556529e-02]
y= [90.3453242423323122343244343433,100]

Pruebas fuera de frontera

Caso Salida Esperada Salida


x= [50,a] A no está definida NameError: name 'd' is not defined
y= [9,-56.78.9]

X=[sin(56),78] “Sin” no esta definido NameError: name 'cos' is not


Y=[cos(0),5] defined

x= [1,0] error ZeroDivisionError: division by zero.


y= [0,1]

También podría gustarte