Mathc complexes/08d
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00c.c |
|---|
/* ------------------------------------ */
/* Save as : c00c.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E +1.E-2
#define RCA RC4
/* ------------------------------------ */
/* ------------------------------------ */
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)*sin(x)";
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = rsymmetric_mRZ( i_mZ(RCA,RCA),99.);
double **cos2_A = i_mZ(RCA,RCA);
double **Imns2sinA_2 = 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 **Imns2sinA_2_EigsValue = i_mZ(RCA,RCA);
double **T1 = i_mZ(RCA,RCA);
clrscrn();
printf(" A :");
p_mRZ(A, S10,P0, C6);
eigs_V_mZ(A,EigsVector,FACTOR_E);
transpose_mZ(EigsVector,T_EigsVector);
/* EigsValue : T_EigsVector * A * EigsVector */
mul_mZ(T_EigsVector,A,T1);
mul_mZ(T1,EigsVector,EigsValue);
f_eigs_mZ(f,EigsValue,cos2A_EigsValue);
f_eigs_mZ(g,EigsValue,Imns2sinA_2_EigsValue);
//A == EigsVector * EigsValue * T_EigsVector
mul_mZ(EigsVector,cos2A_EigsValue,T1);
mul_mZ(T1,T_EigsVector,cos2_A);
printf(" cos(2*A)");
p_mRZ(cos2_A,S10,P4,C6);
//A == EigsVector * EigsValue * T_EigsVector
mul_mZ(EigsVector,Imns2sinA_2_EigsValue,T1);
mul_mZ(T1,T_EigsVector,Imns2sinA_2);
printf(" 1 - 2*sin(x)**2");
p_mRZ(Imns2sinA_2,S10,P4,C6);
f_mZ(A);
f_mZ(cos2_A);
f_mZ(Imns2sinA_2);
f_mZ(EigsVector);
f_mZ(T_EigsVector);
f_mZ(EigsValue);
f_mZ(Imns2sinA_2_EigsValue);
f_mZ(cos2A_EigsValue);
f_mZ(T1);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
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)
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
Exemple de sortie écran :
A :
+11598 -5489 +1305 +3210
-5489 +19547 -13119 -806
+1305 -13119 +9522 +450
+3210 -806 +450 +13803
cos(2*A)
-0.1644 -0.2673 +0.1022 +0.6434
-0.2673 +0.4250 -0.7404 +0.0679
+0.1022 -0.7404 -0.1497 -0.1556
+0.6434 +0.0679 -0.1556 +0.5384
1 - 2*sin(x)**2
-0.1644 -0.2673 +0.1022 +0.6434
-0.2673 +0.4250 -0.7404 +0.0679
+0.1022 -0.7404 -0.1497 -0.1556
+0.6434 +0.0679 -0.1556 +0.5384
Press return to continue
Press X return to stop