Ahora hay bibliotecas de enlaces muy útiles disponibles para encontrar soluciones a ecuaciones lineales de n dimensiones. Muchos fabricantes de compiladores fortran ahora proporcionan IMSL (Biblioteca de enlaces de matemáticas y estadística, IMSL es a menudo un conjunto de bibliotecas de enlaces comerciales). Utilizado en métodos numéricos, el compilador Visual Fortran Professional Edition tiene IMSL incorporado. El siguiente es un ejemplo de resolución de un sistema de ecuaciones lineales tridimensionales (lo mismo ocurre con ecuaciones de n dimensiones) programa lineal
use imsl
implícito ninguno real:: a( 3, 3)=(/1 , 3, 2, y
1, 2, 1, y
2, 1, 3/)
real:: b(3, 1)=(/4, 6, 6/)
real::x(3,1) llama a lin_so_gen(a, b, x)! ternario como a*x=b Sistema de ecuaciones lineales
write(*, '(3f5.2)')xend programa lineal Antes de ejecutar el programa, asegúrese de que IMSL esté instalado en su compilador (algunos Los compiladores tienen uno incorporado). Para resolverlo mediante programación, el más simple puede ser el método de eliminación gaussiano. Hay muchas formas de resolver este tipo de problemas. Puede consultar libros como "Principios de cálculo numérico". Si compila usted mismo, es posible que no utilice la función de proceso de cálculo numérico en IMSL. Es muy eficiente y practicarlo mejorará en gran medida su familiaridad con un lenguaje informático. Para su segunda pregunta, puede usar un programa recursivo o un bucle. El siguiente es un programa que usa la recursividad para demostrar el factorial de cualquier número entero PROGRAM SHOWIMPLICIT NONEINTEGER:: N, MINTEGER, EXTERNAL:: FACTORIAL PRINT *, 'Enter to. El orden del factorial calculado 'READ(*,*)NM=FACTORIAL(N)PRINT *,N,'!=',M END! La función FACTORIAL se utiliza para calcular N! FUNCIÓN ENTERA RECURSIVA FACTORIAL(N) RESULTADO(B)
IMPLÍCITA NINGUNA !INTEGER, SAVE::MUL=0
INTEGER::N
!INTEGER: :I, J IF(Nlt;0)ENTONCES
B=-1
REGRESAR
ELSE IF(N==0)ENTONCES
B=1
VOLVER
FINALIZAR SI
B=N*INITIALIZAR(N-1)
!RETURN
INICIALIZAR FUNCIÓN FINAL