Fortran - llevar de matlab a fortran

 
Vista:
sin imagen de perfil
Val: 1
Ha mantenido su posición en Fortran (en relación al último mes)
Gráfica de Fortran

llevar de matlab a fortran

Publicado por toni (6 intervenciones) el 11/11/2014 03:40:53
Hola me pueden ayudar a llevar este problema de matlab a fortran.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
clear all
close all
clc
 
dt=0.1
x(1)=100
y(1)=40
t(1)=1
 
alf=0.25
bet=-0.01
gam=-1.0
del=0.01
for n=1:1000 ;
x(n+1)=x(n)+dt*(alf*x(n)+bet*x(n)*y(n)) ;
y(n+1)=y(n)+dt*(gam*y(n)+del*x(n)*y(n)) ;
t(n+1)=t(n)+dt ;
end
 
figure()
hold on
plot(t,x)
plot(t,y,'r')
grid on
 
figure(2)
plot(x,y,'g')
 
%%%%%GRACIAS%%%%%
%% Si lo tienen para gfortran mejor%%%%
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

llevar de matlab a fortran

Publicado por Sebastian (10 intervenciones) el 30/11/2014 04:44:49
Hola Toni.

El problema es que para graficar desde Fortran necesitas tener un paquete de gráficos externo como: Grace, GnuPlot, PGPlot,... En este mismo foro en la entrada COMO GRAFICAR puse varios links de paquetes de gráficos que puedes usar desde Fortran o C. Por ejemplo, suponiendo que tienes instalado el Grace y que estas trabajando en linux el programa anterior se puede traducir a Fortran 90:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PROGRAM MAIN
   IMPLICIT NONE
   REAL, PARAMETER  :: dt=0.1, alf=0.25, bet=-0.01, gam=-1.0, del=0.01
   REAL             :: x, y, t
   INTEGER          :: i
     x = 100
     y = 40
     t = 1
     OPEN(UNIT=11,FILE="x_t.dat") ! CREA UN ARCHIVO DE TEXTO LLAMADO x_t.dat PARA GUARDAR LOS DATOS DEL PRIMER GRAFICO
     OPEN(UNIT=12,FILE="y_t.dat")
     OPEN(UNIT=13,FILE="x_y.dat")
     WRITE(11,*) x, t
     WRITE(12,*) y, t
     WRITE(13,*) x, y
     DO i=1,1000
        x = x + dt*(alf*x + bet*x*y)
        y = y + dt*(gam*y + del*x*y)
        t = t + dt
        WRITE(11,*) x, t
        WRITE(12,*) y, t
        WRITE(13,*) x, y
     END DO
 
     CALL SYSTEM ('xmgrace x_t.dat y_t.dat &') ! EN LA TERMINAL LE PIDE A GRACE QUE GRAFIQUE EL ARCHIVO x_t.dat Y y_t.dat EN LA MISMA FIGURA
     CALL SYSTEM ('xmgrace x_y.dat &')
END PROGRAM

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar