Mathc matrices/c11hn
Apparence
Fonctions matricielles ex : cos(A)
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
|---|
/* ------------------------------------ */
/* Save as: c00b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define RCA RC5
/* ------------------------------------ */
/* ------------------------------------ */
double f(
double x)
{
return(cos(2*x));
}
char feq[] = "cos(2*x)";
/* ------------------------------------ */
double g(
double x)
{
return(2*cos(x)*cos(x)-1);
}
char geq[] = "2*cos(x)**2)-1";
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = rsymmetric_mR( i_mR(RCA,RCA),999.);
double **cos2A = i_mR(RCA,RCA);
double **TwocosA_P2_mns1 = i_mR(RCA,RCA);
double **EVector = i_mR(RCA,RCA);
double **EVectorT = i_mR(RCA,RCA);
double **EValue = i_mR(RCA,RCA);
double **cos2A_EValue = i_mR(RCA,RCA);
double **TwocosA_P2_mns1_EValue = i_mR(RCA,RCA);
double **T1 = i_mR(RCA,RCA);
clrscrn();
printf(" A:");
p_mR(A,S10,P4,C6);
stop();
clrscrn();
eigs_V_mR(A,EVector);
transpose_mR(EVector,EVectorT);
/* EValue = EVectorT A EVector */
mul_mR(EVectorT,A,T1);
mul_mR(T1,EVector,EValue);
printf(" cos(2 A)");
f_eigs_mR(f,EValue,cos2A_EValue);
/* cos2A = EVector cos2A_EValue EVectorT */
mul_mR(EVector,cos2A_EValue,T1);
mul_mR(T1,EVectorT,cos2A);
p_mR(cos2A,S10,P4,C6);
printf(" 2cos(A)**2-1");
f_eigs_mR(g,EValue,TwocosA_P2_mns1_EValue);
/* TwocosA_P2_mns1 = EVector TwocosA_P2_mns1_EValue EVectorT */
mul_mR(EVector,TwocosA_P2_mns1_EValue,T1);
mul_mR(T1,EVectorT,TwocosA_P2_mns1);
p_mR(TwocosA_P2_mns1,S10,P4,C6);
f_mR(A);
f_mR(cos2A);
f_mR(TwocosA_P2_mns1);
f_mR(EVector);
f_mR(EVectorT);
f_mR(EValue);
f_mR(TwocosA_P2_mns1_EValue);
f_mR(cos2A_EValue);
f_mR(T1);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Vérifions les égalités :
Nous savons 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
sin(x)**2 = 1-cos(x)**2
cos(2x) = cos(x)**2-(1-cos(x)**2)
cos(2x) = 2*cos(x)**2-1
Exemple de sortie écran :
A:
+856.0000 -81.0000 +972.0000 -635.0000 -332.0000
-81.0000 -687.0000 -161.0000 +565.0000 +329.0000
+972.0000 -161.0000 +318.0000 -28.0000 +498.0000
-635.0000 +565.0000 -28.0000 +856.0000 -790.0000
-332.0000 +329.0000 +498.0000 -790.0000 +826.0000
Press return to continue.
cos(2 A)
+0.3238 +0.1849 +0.0061 +0.1818 -0.4218
+0.1849 +0.0638 -0.2402 +0.0712 +0.1951
+0.0061 -0.2402 +0.1008 +0.1617 -0.1561
+0.1818 +0.0712 +0.1617 -0.0239 -0.1967
-0.4218 +0.1951 -0.1561 -0.1967 +0.3976
2 cos(A)**2-1
+0.3238 +0.1849 +0.0061 +0.1818 -0.4218
+0.1849 +0.0638 -0.2402 +0.0712 +0.1951
+0.0061 -0.2402 +0.1008 +0.1617 -0.1561
+0.1818 +0.0712 +0.1617 -0.0239 -0.1967
-0.4218 +0.1951 -0.1561 -0.1967 +0.3976
Press return to continue
Press X return to stop