Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Linear Algebra and the C Language/a0lw

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

__NOTOC__ Install and compile this file in your working directory. /* ------------------------------------ */ /* Save as: c01c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RCA RC3 /* ------------------------------------ */ #define EV R1 /* ------------------------------------ */ int main(void) { double a[RCA*RCA]={ +8.146673651126, +0.924044002095, +1.085385018334, +0.924044002095, +13.821477213201, +6.837925615505, +1.085385018334, +6.837925615506, +16.031849135673 }; double **A = ca_A_mR(a, i_mR(RCA,RCA)); double **EValue = eigs_mR(A, i_mR(RCA,RCA)); double **Ide = eye_mR( i_mR(RCA,RCA)); double **sIde = smul_mR(EValue[EV][C1],Ide, i_mR(RCA,RCA)); double **AmnssIde = sub_mR(A,sIde, i_mR(RCA,RCA)); double **b = m0_mR(i_mR(RCA,C1)); double **Ab = c_A_b_Ab_mR(AmnssIde,b, i_Abr_Ac_bc_mR(RCA,RCA,C1)); double **Ab_free = i_Abr_Ac_bc_mR(RCA,RCA,RCA); double **b_free = i_mR(RCA,RCA); double **V = i_mR(RCA,RCA); clrscrn(); printf(" An eigenvector associated with an eigenvalue\n" " with single multiplicity is unique, up to a\n" " change in the sign. \n\n\n" " A:"); p_mR(A,S10,P5,C10); gj_PP_mR(Ab,NO); put_zeroR_mR(Ab,Ab_free); put_freeV_mR(Ab_free); gj_PP_mR(Ab_free,YES); c_Ab_b_mR(Ab_free,b_free); c_c_mR(b_free,C2,V,EV); Normalize_mR(V); printf("\n\n\n" " Copy V%d into the last file\n\n" " V%d:",EV,EV); P_mR(V,S10,P12,C10); stop(); f_mR(A); f_mR(EValue); f_mR(Ide); f_mR(sIde); f_mR(AmnssIde); f_mR(Ab); f_mR(b); f_mR(Ab_free); f_mR(b_free); f_mR(V); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: An eigenvector associated with an eigenvalue with single multiplicity is unique, up to a change in the sign. A: +8.14667 +0.92404 +1.08539 +0.92404 +13.82148 +6.83793 +1.08539 +6.83793 +16.03185 Copy V1 into the last file V1: +0.102355700213, -nan, -nan, +0.644840911344, -nan, -nan, +0.757432181579, -nan, -nan Press return to continue.