Mathc complexes/a139
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define RCA RC4
/* ------------------------------------ */
double **sin_mZ(
double **A,
double **sinA
)
{
double **A_n = i_mZ(RCA,RCA);
double **sA = i_mZ(RCA,RCA);
double **NewsinA = i_mZ(RCA,RCA);
int n = 10;
int i;
int j;
for(i=1.,j=0.; i <= n; i+=2.,j++)
{
pow_mZ(i, A, A_n);
smul_mZ(pow((-1),j)/factorial(i), A_n, sA);
add_mZ(sinA,sA,NewsinA);
c_mZ(NewsinA,sinA);
}
f_mZ(A_n);
f_mZ(sA);
f_mZ(NewsinA);
return (sinA);
}
/* ------------------------------------ */
double **cos_mZ(
double **A,
double **cosA
)
{
double **A_n = i_mZ(RCA,RCA);
double **sA = i_mZ(RCA,RCA);
double **NewcosA = i_mZ(RCA,RCA);
int n = 10;
int i;
int j;
for(i=0.,j=0.; i <= n; i+=2.,j++)
{
pow_mZ(i, A, A_n);
smul_mZ(pow((-1),j)/factorial(i), A_n, sA);
add_mZ(cosA,sA,NewcosA);
c_mZ(NewcosA,cosA);
}
f_mZ(A_n);
f_mZ(sA);
f_mZ(NewcosA);
return (cosA);
}
/* ------------------------------------ */
void fun(void)
{
double **A = rE_mZ(i_mZ(RCA,RCA),999,+1.E-3);
double **sinA = i_mZ(RCA,RCA);
double **cosA = i_mZ(RCA,RCA);
double **sinA2 = i_mZ(RCA,RCA);
double **cosA2 = i_mZ(RCA,RCA);
clrscrn();
printf(" Copy/Past into the octave window. \n");
p_Octave_mZ(A, "A", P4, P4);
stop();
clrscrn();
sin_mZ(A, sinA);
cos_mZ(A, cosA);
printf(" sinA :");
p_mZ(sinA,S8,P4,S8,P4,C6);
printf(" cosA :");
p_mZ(cosA,S8,P4,S8,P4,C6);
stop();
clrscrn();
pow_mZ(2, sinA, sinA2);
pow_mZ(2, cosA, cosA2);
printf(" sinA2 :");
p_mZ(sinA2,S8,P4,S8,P4,C6);
printf(" cosA2 :");
p_mZ(cosA2,S8,P4,S8,P4,C6);
add_mZ(cosA2,sinA2,A);
printf(" I = cosA**2 + sinA**2 ");
p_mZ(A,S8,P4,S8,P4,C6);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
SinA = + A - (1/3!) A**3 + (1/5!) A**5 - (1/7!) A**7 + ... CosA = + I - (1/2!) A**2 + (1/4!) A**4 - (1/6!) A**6 + ... Exemple de sortie écran :
------------------------------------
Copy/Past into the octave window.
A=[
+0.0150+0.8620*i,+0.8090-0.1010*i,-0.5420-0.2690*i,+0.0410-0.4890*i;
+0.1570+0.5210*i,-0.1280-0.1570*i,+0.8910-0.8330*i,+0.1570+0.7060*i;
+0.0340-0.0660*i,+0.0980+0.7600*i,+0.0510-0.6280*i,-0.4550-0.3040*i;
+0.6270-0.4600*i,+0.4350-0.1430*i,+0.1750-0.0950*i,-0.1210+0.2200*i]
Press return to continue.
------------------------------------
sinA :
+0.1476 -0.9604i -0.6905 +0.2243i +0.5543 +0.2278i -0.1865 +0.6193i
-0.3493 -0.3616i +0.1917 +0.0573i -0.6478 +0.8880i -0.2179 -0.4674i
-0.0580 +0.0645i -0.3040 -0.6386i +0.0805 +0.5542i +0.5175 +0.3225i
-0.7647 +0.5690i -0.3197 +0.1995i -0.2168 -0.0888i +0.2525 -0.1706i
cosA :
+1.4006 +0.0235i -0.0104 +0.0264i -0.2973 +0.5119i -0.4805 -0.4713i
-0.0064 -0.1624i +0.4228 -0.5492i +0.3343 +0.3557i +0.2438 +0.0540i
+0.3824 -0.1319i -0.1537 +0.1587i +0.8827 -0.2250i +0.2690 -0.2170i
-0.2924 -0.4774i -0.2014 +0.1328i +0.1644 +0.2229i +1.0765 +0.1221i
Press return to continue.
------------------------------------
sinA2 :
-0.8349 -0.6694i -0.1188 +0.0412i +0.5626 -1.0494i +1.0945 +1.0293i
-0.0321 +0.3329i +1.2827 +0.4430i -0.8249 -0.3138i -0.4822 -0.0811i
-0.6910 +0.4191i +0.1036 -0.4171i +0.3329 +0.1396i -0.2127 +0.5392i
+0.5397 +1.1297i +0.2903 -0.2741i -0.5618 -0.3847i -0.0958 -0.6758i
cosA2 :
+1.8349 +0.6694i +0.1188 -0.0412i -0.5626 +1.0494i -1.0945 -1.0293i
+0.0321 -0.3329i -0.2827 -0.4430i +0.8249 +0.3138i +0.4822 +0.0811i
+0.6910 -0.4191i -0.1036 +0.4171i +0.6671 -0.1396i +0.2127 -0.5392i
-0.5397 -1.1297i -0.2903 +0.2741i +0.5618 +0.3847i +1.0958 +0.6758i
I = cosA**2 + sinA**2
+1.0000 -0.0000i -0.0000 -0.0000i +0.0000 -0.0000i +0.0000 +0.0000i
+0.0000 -0.0000i +1.0000 +0.0000i -0.0000 +0.0000i -0.0000 -0.0000i
-0.0000 +0.0000i +0.0000 -0.0000i +1.0000 +0.0000i -0.0000 +0.0000i
+0.0000 +0.0000i -0.0000 -0.0000i -0.0000 +0.0000i +1.0000 -0.0000i
Press return to continue
Press X to stop