« Mathc gnuplot/Application : Fonction Heaviside » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 44 :
/* ------------------------------------ */
#include "x_ahfile.h"
#include "g_f.h"
/* ------------------------------------ */
double H(
double x)
{
if(x>0.)return(1.);
else return(0.);
}
/* ------------------------------------ */
int main(void)
{
double step_H = 0.001;
 
double xmin_w = -2., xmax_w = 20.,
ymin_w = -1., ymax_w = 2.;
 
printf(" H : if(x>0) 1 else 0 \n");
printf("\n\n\n\n");
 
G_plot(xmin_w,xmax_w,
ymin_w,ymax_w,
 
G_plot(i_WGnuplot(-2.,20.,-1.,2.),
H,
i_time(-2.,20.,0.001),
H);
 
printf("\n load \"a_main.plt\" with gnuplot."
step_H
"\n Press return to continue ");
 
printf("\n\n load \"a_main.plt\" with gnuplot."
"\n\n Press return to continue ");
getchar();
 
Ligne 92 ⟶ 74 :
/* ------------------------------------ */
#include "x_ahfile.h"
#include "g_f.h"
#include "fh.h"
/* ------------------------------------ */
double v(
Ligne 100 ⟶ 80 :
double n=0, r=0;
 
for(;n<20;++n) r += pow(-1,n)*H(x-n);
r += pow(-1,n)*H(x-n);
 
return(r);
Ligne 109 ⟶ 88 :
int main(void)
{
double step_H = 0.001;
 
double xmin_w = -2., xmax_w = 20.,
ymin_w = -1., ymax_w = 2.;
 
printf(" H : if(x>0) 1 else 0 \n\n"
" v : x-> %s \n\n",veq);
 
G_plot(i_WGnuplot(-2.,20.,-1.,2.),
 
G_plot i_time(xmin_w-2.,xmax_w20.,0.001),
ymin_w,ymax_w,v);
 
v,
 
step_H
);
 
printf("\n\n load \"a_main.plt\" with gnuplot."
Ligne 152 ⟶ 121 :
<source lang="c">
/* ------------------------------------ */
/* Save as : x_ahfile.h */
/* ------------------------------------ */
#include <stdio.h>
Ligne 161 ⟶ 130 :
#include <string.h>
/* ------------------------------------ */
#include "xa_strct.h"
#include "fh.h"
#include "g_f.h"
</source>
 
 
=== Les structures ===
 
 
<source lang="c">
/* ------------------------------------ */
/* Save as : xa_strct.h */
/* ------------------------------------ */
typedef struct
{
double xmini;
double xmaxi;
double ymini;
double ymaxi;
 
}W_Ctrl, *PW_Ctrl;
/* ------------------------------------ */
W_Ctrl i_WGnuplot(
double xmini,
double xmaxi,
double ymini,
double ymaxi
)
{
W_Ctrl w = {xmini,xmaxi,ymini,ymaxi};
 
return (w);
}
/* ------------------------------------ */
typedef struct
{
double mini;
double maxi;
double step;
 
}t_Ctrl, *Pt_Ctrl;
/* ------------------------------------ */
t_Ctrl i_time(
double mini,
double maxi,
double step
)
{
t_Ctrl t = {mini,maxi,step};
 
return (t);
}
</source>
 
 
 
Ligne 186 ⟶ 208 :
 
<source lang="c">
/* ------------------------------------ */
/* Save as : g_f.h */
/* ------------------------------------ */
/* ------------------------------------ */
/* Save as : g_f.h */
/* ------------------------------------ */
void G_plot(
W_Ctrl W,
double xmin,
t_Ctrl T,
double xmax,
double ymin,(*P_f1)(double x)
double ymax,
 
double (*P_f1)(double x),
 
double step
)
{
FILE *fp;
char datafile[]="data";
FILEdouble *fpt;
double i;
 
fp = fopen("a_main.plt","w");
fprintf(fp," set zeroaxis lt 8\n"
" set grid\n\n"
" plot [%0.3f:%0.3f] [%0.3f:%0.3f] \\\n"
" \"%sdata\" with line lt 3\n"
" \n\n"
" reset",
xminW.xmini,xmaxW.xmaxi,ymin,ymaxW.ymini,W.ymaxi);
fclose(fp);
datafile);
fclose(fp);
 
fp = fopen("data","w");
for(it=xminT.mini; it<=xmaxT.maxi; it+=T.step)
fprintf(fp," %6.3f %6.3f\n",t,(*P_f1)(t));
i, (*P_f1)(i));
fclose(fp);
}
Ligne 228 ⟶ 244 :
set zeroaxis lt 8
set grid
.
plot [-2.000:20.000] [-1.000:6.000] \
"data" with line lt 3
.
reset