Estou tendo um p... problema pra resolver o trabalho final de COMPUTAÇAO.
Oscilador X 3 Amortecido
Considere um movimento oscilatório governado por uma equação do tipo:
m.d²x/dt² = -kx -bv +ax³;
onde m é a massa e k; a e b são coe…cientes constantes. O termode amortecimento bv corresponde a uma força dissipativa, devido à resistência do ar.
Neste caso, o movimento será ainda limitado e periódico, mas não harmônico simples. Movimentos deste tipo são chamados movimentos anarmônicos. As
equações de movimento serão dadas por
dx/dt = v
e
dv/dt = -x.k/m - v.b/m + x³.a/m
Resolva as duas equações acima, usando o método de Euler. O arquivo de
saída deverá ter três colunas t; x; v:
NÃO CONSIGO APLICAR O MÉTODO EM PROGRAMAÇAO. alguém PODE ME AJUDAR? TO DISPOSTO A PAGAR POR ESSA SOLUÇÃO MESMO porque JÁ FIZ 3x ESSA MALDITA MATÉRIA QUE não SERVE DE NADA PRO MEU CURSO.
ACHEI ISSO SOBRE O METODO.
Solution in Fortran
Euler's Method
The Fortran solution to this problem will of course take some more efford. You should write a program or better yet a procedure that uses the Euler method to integrate a first order IVP of the form [*]. Assume that the function $\vec{f}$ already exists and will be passed as an argument along with number of unknowns n_unknowns in the dependent variable $\vec{y}$ (in our case this is 6--3 coordinates and 3 velocities), the number of time steps n_points to take and output the solution at, the initial conditions x0 and y0, as well as the step size dx:
REAL(KIND=wp), DIMENSION(n_unknowns) :: y, y_prime
END SUBROUTINE f
END INTERFACE
INTEGER :: n_unknowns,n_points
! Upon exit, this array should contain the solution
REAL(KIND=wp), DIMENSION(n_unknowns,n_points) :: y
REAL(KIND=wp) :: dx, x0 ! Step size and initial x
REAL(KIND=wp), DIMENSION(n_unknowns) :: y0 ! Initial y
...
...Declare any needed local variables here...
...Initialize variables for the DO loop...
DO i=1,n_points-1
...Calculate x here in steps of dx starting at x0...
CALL f(x,y(:,i),y_prime,n_unknowns)
y(:,i+1)=y(:,i)+y_prime*dx ! Euler's method
...
END DO
...
END SUBROUTINE Euler
END MODULE IVPSolve
Feel free to use any other approach. There is ample room for improvement in the above scheme. For example, why output the solution at every time step, and not every desired n_output steps? This will save on storage, especially if n_points is very large. Also, those that feel up to it can try coding a more sophisticated algorithm, such as Runge-Kutta and ask for assistance if needed (you can use the file RK4.f90 as a template).
Pergunta
bporto
Olá! Meu primeiro post nesse fórum.
Estou tendo um p... problema pra resolver o trabalho final de COMPUTAÇAO.
NÃO CONSIGO APLICAR O MÉTODO EM PROGRAMAÇAO. alguém PODE ME AJUDAR? TO DISPOSTO A PAGAR POR ESSA SOLUÇÃO MESMO porque JÁ FIZ 3x ESSA MALDITA MATÉRIA QUE não SERVE DE NADA PRO MEU CURSO.
ACHEI ISSO SOBRE O METODO.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.