Introduire la biodiversité dans la construction et l'urbanisme/Le cas d'une réhabilitation (bâti ancien)/Désimperméabilisation des sols ; Alternatives aux dalles et dallages jointifs

Des notions récentes afférentes au sol, telles que la trame brune (qui inclue la restauration et de protection de certains sols et de leur continuums, ainsi que de leurs multiples fonctions et services écosystémiques) tendent à gagner du terrain dans le domaine de l'écologie urbaine, voire du Droit. La désartificialisatin, démacadamisation et les plantations en pleine terre sont des enjeux de plus en plus évoqués. 
En 2021, en France un projet de loi « climat et résilience » déposé à l’assemblée nationale le 10 février 2021, suite à création de la convention citoyenne pour le climat, introduit le concept de "pleine terre" comme levier de la lutte contre l’artificialisation des sols. Des experts appellent à une définition cohérente et partagée de la notion de pleine terre, à notamment inscrire dans les PLU
Note rapide Environnement, n° 884 ; 04 mars 2021

Mathc initiation/a09
Application :
Application :

Mathc initiation/a08
Personnaliser la fonction sympson(); :
Mathc initiation/a06
---- 
Mathc initiation/a10
Mathc initiation/c33a1
Installer ce fichier dans votre répertoire de travail.
/* save as x_hfile.h */
Déclaration des fichiers h.

Mathc initiation/c33a2
Installer ce fichier dans votre répertoire de travail.
/* save as x_def.h */
void clrscrn(void)
 printf("\n\n\n\n\n\n\n\n\n\n\n"
 "\n\n\n\n\n\n\n\n\n\n\n"
 "\n\n\n\n\n\n\n\n\n\n\n");
/* ---------------------------------- */
void stop(void)
 printf(" Press return to continue. ");
 getchar();
/* --------------------------------- */
Dans ce fichier il y a les utilitaires.

Mathc initiation/c33a3
Installer ce fichier dans votre répertoire de travail.
/* save as x_dydx.h */
double int_dy(
double (*P_f)(double x, double y),
double x,
double (*P_u)(double x),
double (*P_v)(double x),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * (*P_f)( x, ((*P_u)( x)) + i*(((*P_v)( x))-((*P_u)( x))) /ny);
 } /* y */
 return( ((((*P_v)( x)) -((*P_u)( x)))*M) / (2*ny) );
/* ---------------------------------- */
double trapezoid_dydx(
double (*P_f)(double x, double y),
double a,
double b,
 int n,
double (*P_u)(double x),
double (*P_v)(double x),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= n; i++)
 M += m * int_dy((*P_f),(a+i*(b-a)/n), (*P_u),(*P_v),ny);
 } /* x */
 return( ((b-a)*M) / (2*n) );
/* ---------------------------------- */
Les fonctions pour calculer les intégrales de la forme dydx.

Mathc initiation/c33a4
Installer ce fichier dans votre répertoire de travail.
/* save as x_dxdy.h */
double int_dx(
double (*P_f)(double x, double y),
double (*P_u)(double y), 
double (*P_v)(double y), 
 int n,
double y
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= n; i++)
 M += m * (*P_f)( ((*P_u)( y)) + i*(((*P_v)( y))-((*P_u)( y)))/n, y);
 } /* x */
 return( ((((*P_v)( y)) -((*P_u)( y)))*M) / (2*n) );
/* ---------------------------------- */
double trapezoid_dxdy(
double (*P_f)(double x, double y),
double (*P_u)(double y),
double (*P_v)(double y),
 int n,
double ay,
double by,
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * int_dx((*P_f), (*P_u),(*P_v),n, (ay+i*(by-ay)/ny));
 } /* y */
 return( ((by-ay)*M) / (2*ny) );
/* ---------------------------------- */
Les fonctions pour calculer les intégrales de la forme dxdy.

Mathc initiation/c33ba
Installer ce fichier dans votre répertoire de travail.
/* save as fa.h */
double f(
double x,
double y)
 return( (x*x+y*y+1) );
/* ---------------------------------- */
char feq[] = "x**2+y**2+1";
double u(
double x)
 return( ( 0) );
/* ---------------------------------- */
char ueq[] = "0";
double v(
double x)
 return( (2-2*x) );
/* ---------------------------------- */
char veq[] = "2-2*x";
Dans ce fichier il y a les fonctions pour le fichier c17a.c

Mathc initiation/c33bb
Installer ce fichier dans votre répertoire de travail.
/* save as fb.h */
double f(
double x,
double y)
 return( 1 );
/* ---------------------------------- */
char feq[] = "1";
double u(
double x)
 return( ( 2.-(x/2.) ) );
/* ---------------------------------- */
char ueq[] = "2.-(x/2.)";
double v(
double x)
 return( ( 8.-(x*x/2.) ) );
/* ---------------------------------- */
char veq[] = "8.-(x**2/2.)";
Dans ce fichier il y a les fonctions pour le fichier c17b.c

Mathc initiation/c33bc
Installer ce fichier dans votre répertoire de travail.
/* save as fc.h */
double f(
double x,
double y)
 return( (x*x*x+4*y) );
/* ---------------------------------- */
char feq[] = "x**3+4*y";
double u(
double y)
 return( (y/2.) );
/* ---------------------------------- */
char ueq[] = "y/2.";
double v(
double y)
 return( sqrt(y) );
/* ---------------------------------- */
char veq[] = "sqrt(y)";
Dans ce fichier il y a les fonctions pour le fichier c17c.c

Mathc initiation/c33bd
Installer ce fichier dans votre répertoire de travail.
/* save as fd.h */
double f(
double x,
double y)
 return( sqrt(9-y*y) );
/* ---------------------------------- */
char feq[] = "sqrt(9-y**2)";
double u(
double y)
 return( (0) );
/* ---------------------------------- */
char ueq[] = "0";
double v(
double y)
 return( (sqrt(9-y*y)) );
/* ---------------------------------- */
char veq[] = "sqrt(9-y**2)";
Dans ce fichier il y a les fonctions pour le fichier c17d.c

Mathc initiation/c33ca
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17a.c */
int main(void)
double a,b,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n\n", feq);
 printf(" u : (x)-> %s \n", ueq);
 printf(" v : (x)-> %s\n\n\n", veq);
 printf("\n\n\n");
 a = 0; 
 b = 1;
 n = 2*150;
 ny = 2*150;
 M = trapezoid_dydx(f, a,b,n, u,v,ny);
 printf(" With the trapezoidal's rule.\n\n");
 printf(" (%.3f (%s\n", b, veq);
 printf(" int( int( %s dy dx = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", a, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme de Sympson à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> x**2+y**2+1
 u : (x)-> 0 
 v : (x)-> 2-2*x
 With the trapezoidal's rule.
 (1.000 (2-2*x
 int( int( x**2+y**2+1 dy dx = 1.833343
 (0.000 (0
 Press return to continue.

Mathc initiation/c33cb
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17b.c */
int main(void)
double a,b,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n\n", feq);
 printf(" u : (x)-> %s \n\n", ueq);
 printf(" v : (x)-> %s\n\n\n", veq);
 printf("\n\n\n");
 a = -3; 
 b = 4;
 n = 2*150;
 ny = 2*150;
 M = trapezoid_dydx(f, a,b,n, u,v,ny);
 printf(" With the trapezoidal's rule.\n\n");
 printf(" (%.3f (%s\n", b, veq);
 printf(" int( int( %s dy dx = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", a, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme de Sympson à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> 1
 u : (x)-> 2.-(x/2.) 
 v : (x)-> 8.-(x**2/2.)
 With the trapezoidal's rule.
 (4.000 (8.-(x**2/2.)
 int( int( 1 dy dx = 28.583016
 (-3.000 (2.-(x/2.)
 Press return to continue.