<div dir="ltr"><div>Buenas tardes me gustaria saber si me puden hacer el favor y me ayudan con este codigo ya que me sale el error <br><br>RungeKutta4V2.C:37:8: error: expected unqualified-id before numeric constant<br>RungeKutta4V2.C:44:8: error: expected unqualified-id before numeric constant  <br>
</div>el codigo es <br><br><br>/* From: "COMPUTATIONAL PHYSICS, 2nd Ed" 
<br>   by RH Landau, MJ Paez, and CC Bordeianu 
<br>   Copyright Wiley-VCH, 2007.
<br>   Electronic Materials copyright: R Landau, Oregon State Univ, 2007;
<br>   MJ Paez, Univ Antioquia, 2007; & CC Bordeianu, Univ Bucharest, 2007
<br>   Support by National Science Foundation
<br>*/
<br>//  Edwin Munevar
<br>//  RungeKutta4.C: 4th order Runge-Kutta solution adapted for any kind of acceleration      
<br>       
<br>#include <stdio.h>
<br>#include<iostream>
<br>#include<math.h>
<br> <br>#define N       2   // number of equations: y(t) and v(t)
<br>#define dist    0.1 // stepsize
<br>#define MIN     0.0 // minimum x
<br>#define MAX   200.0 // maximum x
<br>#define b1      0.5 //F=-b1*v
<br>#define a1      0.2 //F=-a1*v*v
<br>#define muc     0.5
<br>#define mue     0.8
<br>#define fN      9.8
<br>#define k       1.0
<br>#define m       1.0
<br>#define Damping 0   //Choose the type of damping
<br>#define om      3
<br>#define mu      0.5
<br>using namespace std;
<br> <br> <br>//-------------------
<br>//Global variables
<br>double omega2 = k/m;
<br>double gb1= b1/m;
<br>double ga1= a1/m;
<br>double mu = 0.5;
<br> <br>//-------------------
<br>//Functions
<br>void runge4(double, double* , double, double); 
<br>double f(double, double*, double, int);
<br>double Damp(double*, double);
<br>double mu = (double *);
<br> <br>//--------------------------------------
<br>main(){
<br>  //Declaration of variables;
<br>  double t=0.0, y[N], a;
<br>  double yant, yact;
<br>  double Et, Ec, Ep;
<br>       <br>  //Save data in Runge4.dat
<br>  FILE *output;                               
<br>  output= fopen("Runge4.dat","w");
<br>  
<br>  y[0]= 1.0;// initial position         
<br>  y[1]= 0.0;// initial velocity          
<br>  
<br>  //Damping .......
<br>  a = Damp(y, t);
<br>  fprintf(output, "%f\t%f\t%f\t%f\n", t, y[0], y[1], a);
<br>  
<br>  for (t= MIN; t <=  MAX ; t += dist){
<br>    yant = y[1];
<br>    runge4(t, y, dist, a);
<br>    yact = y[1];
<br>    //Damping......
<br>    a = Damp(y,t);
<br>    fprintf(output, "%f\t%f\t%f\t%f\n", t, y[0], y[1], a);        
<br>  }
<br>  printf("data stored in Runge4.dat\n");
<br>  fclose(output);
<br>} //End of main program
<br> <br> <br>//------------------------------------------------------
<br>//Runge-Kutta function
<br>void runge4(double t, double y[], double step, double a)  {    // rk subroutine
<br>  double f(double t, double y[], double a, int i);
<br>  double Dt = step/2.0,                                // the midpoint
<br>  yt1[N], yt2[N], yt3[N], k1[N], k2[N], k3[N],k4[N];  // for Runge-Kutta
<br>  int i;
<br>  for (i = 0; i<N; i++){
<br>    k1[i] = f(t, y, a, i);
<br>    yt1[i]= y[i]+0.5*(k1[i]*step);
<br>  }
<br>  for (i = 0; i<N; i++){
<br>    //Damping.....
<br>    a = Damp(yt1,t);
<br>    k2[i] = f(t+Dt, yt1, a, i); 
<br>    yt2[i]= y[i]+0.5*(k2[i]*step);
<br>  }
<br>  for (i = 0; i<N; i++){
<br>    //Damping.....
<br>    a = Damp(yt2,t);
<br>    k3[i] = f(t+Dt, yt2, a, i);
<br>    yt3[i]= y[i]+(k3[i]*step);
<br>  }
<br>  for (i = 0; i<N; i++){
<br>    //Damping....
<br>    a = Damp(yt3,t);
<br>    k4[i]= f(t + step, yt3, a, i);
<br>  }
<br> <br>  for (i = 0; i<N; i++) 
<br>    y[i] += (k1[i]+2*k2[i]+2*k3[i]+k4[i])*step/6.0;  //Runge-Kutta 4th order
<br>} 
<br> <br> <br>//---------------------------------------------
<br>double f(double t, double y[], double a, int i) {// RHS function                      
<br>  if (i ==  0) return(y[1]);                     // RHS of first equation
<br>  if (i ==  1) return(a);                    // RHS of second equation
<br>}
<br> <br> <br>//---------------------------------------------
<br>//Damping functions
<br>double Damp(double yf[],double t){
<br>  
<br>  double res;
<br>  //F=0
<br>  if(Damping == 0)   
<br>    res= -mu*yf[1]*(yf[0]*yf[0] - 1);<br> <br>  //F=-bv                               
<br>  else if(Damping == 1) 
<br>    res= -omega2*yf[0]-gb1*yf[1];                    
<br>  //F=-b*v*v
<br>  else if(Damping == 2){ 
<br>    if(yf[1] >= 0.0)                                 
<br>      res= -omega2*yf[0]-ga1*yf[1]*yf[1];
<br>    else
<br>      res= -omega2*yf[0]+ga1*yf[1]*yf[1];
<br>  }
<br>  //F = -muc*N
<br>  else if(Damping == 3){ 
<br>    if(yf[1] >= 0.0)                                 
<br>      res= -omega2*yf[0]-muc*fN;
<br>    else
<br>      res= -omega2*yf[0]+muc*fN;}
<br>  else{
<br>    cout << "Unknown damping" << endl;
<br>    return -1;}
<br>  
<br>  return res;
<br>}<br></div>