Utilisateur:Xhungab

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche


Sommaire

Présentons le problème :

Nous avons la fonction int_ds(), qui ne peut que calculer que les longueurs d'arc., nous voulons écrire la fonction Int_Ds(), qui est une variante de la première et qui pourrait calculer par exemple les surfaces de révolution..


Comparons les fonctions int_ds() et Int_Ds().
La fonction int_ds() La fonction Int_Ds()
/* ---------------------------------- */
/* save as x_ds.h                     */
/* ---------------------------------- */
double int_ds(


double (*P_f)(double x),

double a,
double b,
   int n,
   
double h
)
{
   int i = 0;
double m = 0.;
double M = 0.;

double t = 0.;

 for(i = 0; i <= n; i++)
 {
       if(i ==0 || i== n){m = 1.;}
  else if(fmod(i,2) == 0){m = 2.;}
  else                   {m = 4.;}
  
  t = (a + i*(b-a)/n);
  
  M += m * 
      sqrt(1. + pow(fx_x((*P_f),t,h),2));
 }

  return( ((b -a)*M) / (3*n) );
}
/* ---------------------------------- */
/* ---------------------------------- */
/* ---------------------------------- */
/* save as x_ds.h                   */
/* ---------------------------------- */
double Int_Ds(
double (*P_p)(double x),

double (*P_f)(double x),

double a,
double b,
   int n,
   
double h
)
{
   int i = 0;
double m = 0.;
double M = 0.;

double t = 0.;

 for(i = 0; i <= n; i++)
 {
       if(i ==0 || i== n){m = 1.;}
  else if(fmod(i,2) == 0){m = 2.;}
  else                   {m = 4.;}
  
  t = (a + i*(b-a)/n);
  
  M += m * (*P_p)(t) * 
       sqrt(1. + pow(fx_x((*P_f),t,h),2));
 }

  return( ((b -a)*M) / (3*n) );
}
/* ---------------------------------- */
/* ---------------------------------- */


Dans la première fonction nous avons :


  t = (a + i*(b-a)/n);
  
 M += m * sqrt(1. + pow(fx_x((*P_f),t,h),2));


Qui a été remplacé par :

  t = (a + i*(b-a)/n);
  
  M += m * (*P_p)(t) * sqrt(1. + pow(fx_x((*P_f),t,h),2));


En fait on a introduit un appel à la fonction "(*P_p)(t);". Cette fonction pourrait être :

double p(
double x)
{
        return(2*PI*f(x));
}

Ce qui nous permettrait de calculer la surface de révolution d'un objet 3 d. Bien entendu nous avons ajouté un argument à Int_Ds(); pour introduire cette nouvelle fonction p();.

Remarque :

double p(
double x)
{
        return(1);
}

Si p() est la fonction constante 1, alors on retrouve la fonction int_ds(); qui calcule les longueurs d'arcs.













Mathc matrices/a21


Produit scalaire <u,v> = v^t*A^t*A*u ... (A:une matrice diagonale)[modifier le wikicode]

Dans ce produit scalaire la matrice A est une matrice diagonale. Elle correspond aux poids que l'on impose à chaque terme du produit scalaire. C'est le produit scalaire standard avec poids.


Produit scalaire <u,v> = v^t*A^t*A*u ... (A:une matrice aléatoire)[modifier le wikicode]

Dans ce produit scalaire la matrice A est une matrice aléatoire. Si A est une matrice orthonormale, on retombe sur le produit scalaire standard.


Produit scalaire <A,B> : trace(A^t B)[modifier le wikicode]

Une petite curiosité pour ce produit scalaire <A,B> = trace(A^t B)


Mathc initiation