Está en la página 1de 3

Método iterativo de Newton Raphson multivariable

CODIGO

Program Multivariable

Implicit none

!Programa del Metodo de Newton Raphson Multivariable

!Realizado por EQUIPO 10

!Declaracion de variables

Real::x0,y0,eps,df1x,df2x,df1y,df2y,f1,f2,delta,deltax,deltay,distancia,x1,y1,hjx,hjy

Integer::i,maxiteraciones

Real,dimension(2,2)::A

!Bloque de entrada

Write(*,*)"Este programa resuelve un sistema de ecuaciones por el metodo iterativo Newton


Raphson Multivariable"

Write(*,*)"El sistema de ecuaciones es:"

Write(*,*)"f1(x,y)=(x^2)-4x+(y^2)-22=0"

Write(*,*)"f2(x,y)=(x^3)+(5y^2)-10x-122=0"

Write(*,*)"NOTA: Evite introducir valores iniciales de x y y igual a cero, dado que la solucion se
indetermina"

Write(*,*)"Ingresa x0:"

Read(*,*)x0

Write(*,*)"Ingresa y0:"

Read(*,*)y0

Write(*,*)"Ingrese el criterio de convergencia(EPS):"

Read(*,*)eps

Write(*,*)"Ingrese el numero maximo de iteraciones:"

Read(*,*)maxiteraciones

!Inicio de bala para iteraciones


i=1

Do while(i<maxiteraciones)

!Derivadas parciales de cada funcion

df1x=((2*x0)-4)

df2x=((3*(x0**2))-10)

df1y=2*y0

df2y=10*y0

!Asignacion de cada derivada a un lugar en la matriz

A(1,1)=df1x

A(2,1)=df2x

A(1,2)=df1y

A(2,2)=df2y

!Funciones originales adaptadas a la matriz jacoviana

f1=((-(x0**2))+(4*x0)-(y0**2)+22)

f2=((-(x0**3))-(5*(y0**2))+(10*x0)+122)

!Calculando x-y por Cramer

delta=(df1x*df2y)-(df2x*df1y)

deltax=(f1*df2y)-(df1y*f2)

deltay=(df1x*f2)-(f1*df2x)

hjx=deltax/delta

hjy=deltay/delta

!Sumando solucion de matriz mas valores iniciales

x1=x0+hjx

y1=y0+hjy

!Calculando distancia

distancia=sqrt(((x1-x0)**2)+((y1-y0)**2))

!Asignando valores calculados a la variable inicial

x0=x1

y0=y1
i=i+1

End do

!Comparacion

IF(distancia<eps)then

Write(*,*)"El valor de x es:",x0

Write(*,*)"El valor de y es:",y0

Write(*,*)"Si desea resolver otro sistema de ecs. solo modifique en el codigo fuente:"

Write(*,*)"1) Las funciones originales"

Write(*,*)"2) Las derivadas parciales de las funciones"

ELSE

Write(*,*)"Solucion no encontrada"

End IF

End Program Multivariable

IMPRESIÓN DE PANTALLA

También podría gustarte