Mathc complexes/087
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00c.c |
|---|
/* ------------------------------------ */
/* Save as : c00c.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define RCA RC5
#define FACTOR_E +1.E-2
/* ------------------------------------ */
/* ------------------------------------ */
double f(
double x)
{
return(cos(2*x));
}
char feq[] = "cos(2*x)";
/* ------------------------------------ */
double g(
double x)
{
return(1-2*sin(x)*sin(x));
}
char geq[] = "1-2*sin(x)**2";
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = rcsymmetric_mZ(i_mZ(RCA,RCA),99);
double **cos2_A = i_mZ(RCA,RCA);
double **Imnssinsin_A = i_mZ(RCA,RCA);
double **EigsVector = i_mZ(RCA,RCA);
double **T_EigsVector = i_mZ(RCA,RCA);
double **EigsValue = i_mZ(RCA,RCA);
double **cos2A_EigsValue = i_mZ(RCA,RCA);
double **Imnssinsin_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
clrscrn();
printf(" A :");
p_mZ(A, S7,P0, S7,P0, C6);
eigs_V_mZ(A,EigsVector,FACTOR_E);
ctranspose_mZ(EigsVector,T_EigsVector);
/* EigsValue = cV_T * A * V */
mul_mZ(T_EigsVector,A,T1);
mul_mZ(T1,EigsVector,EigsValue);
f_eigs_mZ(f,EigsValue,cos2A_EigsValue);
f_eigs_mZ(g,EigsValue,Imnssinsin_EigsValue);
/*A == EigsVector * EigsValue * T_EigsVector */
mul_mZ(EigsVector,cos2A_EigsValue,T1);
mul_mZ(T1,T_EigsVector,cos2_A);
printf(" cos(2*A)");
p_mZ(cos2_A, S7,P3, S7,P3, C6);
//A == EigsVector * EigsValue * T_EigsVector
mul_mZ(EigsVector,Imnssinsin_EigsValue,T1);
mul_mZ(T1,T_EigsVector,Imnssinsin_A);
printf(" 1-2*sin(x)**2");
p_mZ(Imnssinsin_A, S7,P3, S7,P3, C6);
f_mZ(A);
f_mZ(EigsVector);
f_mZ(T_EigsVector);
f_mZ(T1);
f_mZ(EigsValue);
f_mZ(cos2A_EigsValue);
f_mZ(Imnssinsin_EigsValue);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Vérifions les égalités :
Nous avons vu que :
cos(x+y) = cos(x)cos(y)-sin(x)sin(y)
posons x = y
cos(x+x) = cos(x)cos(x)-sin(x)sin(x)
1) cos(2x) = cos(x)**2-sin(x)**2 cos(x)**2 + sin(x)**2 = 1
cos(x)**2 = 1-sin(x)**2
cos(2x) = (1-sin(x)**2)-sin(x)**2
cos(2x) = 1-2*sin(x)**2
Contrôle du facteur :
- FACTOR_E ..... +1.E-1 ......... -9 < x < 9
- FACTOR_E ..... +1.E-2 ....... -99 < x < 99
- FACTOR_E ..... +1.E-3 ..... -999 < x < 999
Exemple de sortie écran :
A :
+25509 +0i -488 +4245i -4505 +7604i +11459 -13192i +1815 -4603i
-488 -4245i +49385 +0i +28940 +9626i -5062 +19153i -520 -28835i
-4505 -7604i +28940 -9626i +36629 +0i -15593 +10032i -5646 -13559i
+11459 +13192i -5062 -19153i -15593 -10032i +39309 +0i -3013 -4874i
+1815 +4603i -520 +28835i -5646 +13559i -3013 +4874i +28780 +0i
cos(2*A)
-0.045 +0.000i +0.132 -0.090i +0.165 +0.065i +0.453 -0.326i +0.055 -0.240i
+0.132 +0.090i -0.819 +0.000i -0.119 +0.119i +0.315 -0.026i +0.023 -0.233i
+0.165 -0.065i -0.119 -0.119i -0.598 +0.000i -0.344 -0.179i -0.137 +0.238i
+0.453 +0.326i +0.315 +0.026i -0.344 +0.179i -0.091 +0.000i +0.211 -0.517i
+0.055 +0.240i +0.023 +0.233i -0.137 -0.238i +0.211 +0.517i -0.532 +0.000i
1-2*sin(x)**2
-0.045 +0.000i +0.132 -0.090i +0.165 +0.065i +0.453 -0.326i +0.055 -0.240i
+0.132 +0.090i -0.819 -0.000i -0.119 +0.119i +0.315 -0.026i +0.023 -0.233i
+0.165 -0.065i -0.119 -0.119i -0.598 +0.000i -0.344 -0.179i -0.137 +0.238i
+0.453 +0.326i +0.315 +0.026i -0.344 +0.179i -0.091 +0.000i +0.211 -0.517i
+0.055 +0.240i +0.023 +0.233i -0.137 -0.238i +0.211 +0.517i -0.532 -0.000i
Press return to continue
Press X return to stop
Press X to stop