Toggle navigation
Images.Elk.pl
laborki cwiczenia 20 05 09
#include
#include
#define MAXN 2
void rzut(double t,double y[],double f[]);
void vrk4( double x0, double y0[], double h, int n, void (*fun)(double, double*, double*), double y1[] );
double g,m,c,v0;
void main()
{double t,v,dt,tk,y[2],y1[2];
printf("podaj dt i tk\n");
scanf("%lf%lf",&dt,&tk);
g=9.81;m=2.;c=.003;v0=30.;
//wp
t=.0;
y[0]=.0;
y[1]=v0;
//całkujemy
while(t<=tk)
{
vrk4(t,y,dt,2,rzut,y1);
t=t+dt;
printf("t=%lf v=%lf\n",t,y1[1]);
y[0]=y1[0];
y[1]=y1[1];
}
}
void rzut(double t,double y[],double f[])
{
f[0]=y[1];
f[1]=-g-c/my[1]*y[1];
}
void vrk4( double x0, double y0[], double h, int n, void (*fun)(double, double*, double*), double y1[] )
{
int i;
double k1[MAXN], k2[MAXN], k3[MAXN], k4[MAXN];
double ytmp[MAXN];
fun( x0, y0, k1);
for ( i=0; i
{
k1[i] *= h;
ytmp[i] = y0[i] + k1[i]/2.0;
}
fun( x0+h/2.0, ytmp, k2);
for ( i=0; i
{
k2[i] *= h;
ytmp[i] = y0[i] + k2[i]/2.0;
}
fun( x0+h/2.0, ytmp, k3);
for ( i=0; i
{
k3[i] *= h;
ytmp[i] = y0[i] + k3[i];
}
fun( x0+h, ytmp, k4);
for ( i=0; i
k4[i] *= h;
for ( i=0; i
y1[i] = y0[i] + (k1[i] + 2.*k2[i] + 2.*k3[i] + k4[i])/6.;
}
Wyszukiwarka
Podobne podstrony:
laborki cwiczenia 05 09
laborki cwiczenia 03 09
laborki cwiczenia 03 09
laborki cwiczenia 04 09
laborki cwiczenia 04 09
laborki cwiczenia 05 09wersja2
cwiczenia 05
CWICZENIE 05 12
Cwiczenia 05 03 2011
05 09
Laboratorium elektrotechniki Ćwiczenie 05
Sonnax multiple applications 05 09
05 09 2012 INTERNA(1)
TI 02 05 09 B pl(1)
więcej podobnych podstron