< Mathc matrices
Installer et compiler ces fichiers dans votre répertoire de travail.
c05n.c ' |
---|
/* ------------------------------------ */
/* Save as : c05n.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r,int rn)
{
double **A = r_mR(i_mR(r+rn,r),9.);
double **Q = i_mR(r+rn,r);
double **R = i_mR(r,r);
clrscrn();
printf(" A :");
p_mR(A,3,3,6);
QRuv_mR(A,Q,R);
printf(" Q :");
p_mR(Q,3,5,6);
printf(" R :");
p_mR(R,10,5,6);
stop();
clrscrn();
printf(" A = Q * R :");
mul_mR(Q,R, A);
p_mR(A,3,3,6);
f_mR(A);
f_mR(Q);
f_mR(R);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(rp_I(2)+R2,rp_I(3));
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Le travail précédent nous conduit à la factorisation QR : QRuv_mR(A,Q,R); Exemple de sortie écran :
A :
+4.000 -5.000 +8.000
+8.000 -3.000 -9.000
-1.000 -3.000 +6.000
+4.000 +2.000 +2.000
Q :
+0.40614 -0.60845 +0.49132
+0.81228 -0.04654 -0.55125
-0.10153 -0.55846 +0.16779
+0.40614 +0.56191 +0.65312
R :
+9.84886 -3.35064 -3.85832
+0.00000 +5.98107 -6.67570
+0.00000 -0.00000 +11.20484
Press return to continue.
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.