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

c00b.c |
|---|
/* ------------------------------------ */
/* Save as : c00b.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, +1, +0, +0, +1, -1,
-1, +0, +0, +1, +0, +1,
+0, -50, +0, +0, +0, -20,
+0, +50, -20, +0, -10, +0,
+0, +0, +0, -50, +10, +20,
+0, +0, -20, -50, +0, +0,
};
double tb[RA*(CA+Cb)]={
0,
0,
0,
0,
-90,
0,
0,
-90,
};
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,+1+0*i,+0+0*i,+0+0*i,+1+0*i,-1+0*i;
-1+0*i,+0+0*i,+0+0*i,+1+0*i,+0+0*i,+1+0*i;
+0+0*i,-50+0*i,+0+0*i,+0+0*i,+0+0*i,-20+0*i;
+0+0*i,+50+0*i,-20+0*i,+0+0*i,-10+0*i,+0+0*i;
+0+0*i,+0+0*i,+0+0*i,-50+0*i,+10+0*i,+20+0*i;
+0+0*i,+0+0*i,-20+0*i,-50+0*i,+0+0*i,+0+0*i]
[Q, R] = qr (a,0)
Press return to continue.
Q :
+0.707 -0.007 -0.024 +0.026 +0.170 +0.469
+0.000 +0.000 +0.041 -0.046 -0.834 -0.226
+0.000 +0.014 +0.008 -0.006 +0.493 -0.712
-0.707 -0.007 -0.024 +0.026 +0.170 +0.469
+0.000 -0.707 -0.407 +0.287 -0.025 -0.039
+0.000 +0.707 -0.408 +0.287 -0.032 -0.015
+0.000 +0.000 +0.000 -0.865 +0.039 +0.034
+0.000 +0.000 -0.815 -0.291 -0.018 -0.020
R :
+1.414 -0.707 -0.707 -0.707 +0.000 -0.707
+0.000 +70.721 -14.133 -0.007 -7.056 +14.119
+0.000 -0.000 +24.531 +40.700 +4.047 +8.114
+0.000 +0.000 +0.000 +57.836 -11.477 -22.990
+0.000 +0.000 +0.000 -0.000 +2.030 +0.954
+0.000 +0.000 +0.000 -0.000 -0.000 +2.625
Press return to continue.
Q_T :
+7.071e-01 +0.000e+00 +0.000e+00 -7.071e-01 +0.000e+00 +0.000e+00
-7.070e-03 +0.000e+00 +1.414e-02 -7.070e-03 -7.070e-01 +7.070e-01
-2.446e-02 +4.077e-02 +8.146e-03 -2.446e-02 -4.073e-01 -4.080e-01
+2.585e-02 -4.598e-02 -5.731e-03 +2.585e-02 +2.866e-01 +2.872e-01
+1.704e-01 -8.338e-01 +4.931e-01 +1.704e-01 -2.528e-02 -3.174e-02
+4.687e-01 -2.257e-01 -7.117e-01 +4.687e-01 -3.854e-02 -1.493e-02
+0.000e+00 +0.000e+00
+0.000e+00 +0.000e+00
+0.000e+00 -8.153e-01
-8.645e-01 -2.908e-01
+3.855e-02 -1.847e-02
+3.368e-02 -1.979e-02
invR :
+7.071e-01 +7.070e-03 +2.446e-02 -8.564e-03 -7.260e-02 +2.824e-02
+0.000e+00 +1.414e-02 +8.146e-03 -5.731e-03 +5.057e-04 -1.516e-01
+0.000e+00 +0.000e+00 +4.077e-02 -2.869e-02 -2.435e-01 -2.888e-01
-0.000e+00 +0.000e+00 -0.000e+00 +1.729e-02 +9.775e-02 +1.159e-01
+0.000e+00 -0.000e+00 +0.000e+00 +0.000e+00 +4.926e-01 -1.791e-01
-0.000e+00 +0.000e+00 -0.000e+00 +0.000e+00 -0.000e+00 +3.810e-01
Press return to continue.
Solving this system yields a unique
least squares solution, namely
x = invR * Q_T * b :
+3.000
+1.000
+2.000
+1.000
+1.000
+2.000
Press return to continue.