Mathc complexes/05t
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.

c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00c.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define RA R8
#define CA C6
#define Cb C1
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double ta[RA*(CA+Cb)]={
// I1 I2 I3 I4 I5 I6
-1, +1, +1, +0, +0, +0,
+0, +0, -1, +1, -1, +0,
+0, +0, +0, -1, +1, +1,
+1, -1, +0, +0, +0, -1,
+15, +60, +0, +0, +0, +0,
+0, -60, +15, +15, +0, +15,
+0, +0, +0, -15, -60, +0,
+15, +0, +15, +0, -60, +15
};
double tb[RA*(CA+Cb)]={
+0,
+0,
+0,
+0,
+90,
+0,
-90,
+0
};
double **A = ca_A_mRZ(ta,i_mZ(RA,CA));
double **b = ca_A_mRZ(tb,i_mZ(RA,Cb));
double **Q = i_mZ(RA,CA);
double **Q_T = i_mZ(CA,RA);
double **R = i_mZ(CA,CA);
double **invR = i_mZ(CA,CA);
double **invR_Q_T = i_mZ(CA,RA);
double **x = i_mZ(CA,C1);
clrscrn();
printf(" Copy/Paste into the octave windows \n\n");
p_Octave_mZ(A,"a",P0,P0);
printf(" [Q, R] = qr (a,0) \n\n");
stop();
clrscrn();
QR_mZ(A,Q,R);
printf(" Q :");
p_mRZ(Q, S10,P3, C10);
printf(" R :");
p_mRZ(R, S10,P3, C10);
stop();
clrscrn();
ctranspose_mZ(Q,Q_T);
printf(" Q_T :");
pE_mRZ(Q_T,S9,P3, C6);
inv_mZ(R,invR);
printf(" invR :");
pE_mRZ(invR,S9,P3, C6);
stop();
clrscrn();
printf(" Solving this system yields a unique\n"
" least squares solution, namely \n\n");
mul_mZ(invR,Q_T,invR_Q_T);
mul_mZ(invR_Q_T,b,x);
printf(" x = invR * Q_T * b :");
p_mRZ(x,S9,P3 ,C6);
stop();
f_mZ(A);
f_mZ(b);
f_mZ(Q);
f_mZ(Q_T);
f_mZ(R);
f_mZ(invR);
f_mZ(x);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Exemple de sortie écran :
Copy/Paste into the octave windows
a=[
-1+0*i,+1+0*i,+1+0*i,+0+0*i,+0+0*i,+0+0*i;
+0+0*i,+0+0*i,-1+0*i,+1+0*i,-1+0*i,+0+0*i;
+0+0*i,+0+0*i,+0+0*i,-1+0*i,+1+0*i,+1+0*i;
+1+0*i,-1+0*i,+0+0*i,+0+0*i,+0+0*i,-1+0*i;
+15+0*i,+60+0*i,+0+0*i,+0+0*i,+0+0*i,+0+0*i;
+0+0*i,-60+0*i,+15+0*i,+15+0*i,+0+0*i,+15+0*i;
+0+0*i,+0+0*i,+0+0*i,-15+0*i,-60+0*i,+0+0*i;
+15+0*i,+0+0*i,+15+0*i,+0+0*i,-60+0*i,+15+0*i]
[Q, R] = qr (a,0)
Press return to continue.
Q :
-0.047 +0.041 +0.812 +0.016 -0.146 -0.254
+0.000 +0.000 -0.363 +0.063 -0.741 +0.254
+0.000 +0.000 +0.000 -0.058 +0.558 +0.660
+0.047 -0.041 -0.449 -0.022 +0.330 -0.660
+0.706 +0.410 +0.021 +0.288 +0.018 +0.010
+0.000 -0.815 +0.042 +0.289 +0.010 +0.017
+0.000 +0.000 +0.000 -0.863 -0.077 -0.010
+0.706 -0.405 +0.063 -0.286 -0.049 +0.017
R :
+21.260 +42.238 +10.536 +0.000 -42.332 +10.536
+0.000 +73.607 -18.260 -12.227 +24.292 -18.260
+0.000 +0.000 +2.753 +0.268 -3.422 +2.026
+0.000 +0.000 +0.000 +17.390 +68.770 +0.011
-0.000 -0.000 -0.000 -0.000 +8.878 -0.367
-0.000 +0.000 +0.000 +0.000 +0.000 +1.827
Press return to continue.
Q_T :
-4.704e-02 +0.000e+00 +0.000e+00 +4.704e-02 +7.055e-01 +0.000e+00
+4.058e-02 +0.000e+00 +0.000e+00 -4.058e-02 +4.103e-01 -8.151e-01
+8.125e-01 -3.633e-01 +0.000e+00 -4.492e-01 +2.103e-02 +4.205e-02
+1.603e-02 +6.309e-02 -5.750e-02 -2.162e-02 +2.881e-01 +2.888e-01
-1.464e-01 -7.414e-01 +5.581e-01 +3.297e-01 +1.769e-02 +9.757e-03
-2.537e-01 +2.537e-01 +6.597e-01 -6.597e-01 +1.015e-02 +1.692e-02
+0.000e+00 +7.055e-01
+0.000e+00 -4.049e-01
+0.000e+00 +6.308e-02
-8.625e-01 -2.856e-01
-7.688e-02 -4.943e-02
-1.015e-02 +1.692e-02
invR :
+4.704e-02 -2.699e-02 -3.591e-01 -1.345e-02 +2.640e-01 -8.974e-02
-0.000e+00 +1.359e-02 +9.012e-02 +8.166e-03 -6.570e-02 +2.260e-02
+0.000e+00 -0.000e+00 +3.633e-01 -5.589e-03 +1.833e-01 -3.661e-01
+0.000e+00 +0.000e+00 +0.000e+00 +5.750e-02 -4.454e-01 -8.974e-02
+0.000e+00 +0.000e+00 +0.000e+00 -0.000e+00 +1.126e-01 +2.260e-02
-0.000e+00 +0.000e+00 -0.000e+00 +0.000e+00 +0.000e+00 +5.474e-01
Press return to continue.
Solving this system yields a unique
least squares solution, namely
x = invR * Q_T * b :
+2.000
+1.000
+1.000
+2.000
+1.000
+1.000
Press return to continue.