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/a0k1

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 : c00b.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R3 #define CA C3 #define Cb C1 /* ------------------------------------ */ int main(void) { double ab[RA*(CA+Cb)]={ -0.34800000, -0.32100000, -0.23300000, -0.58616667, -0.03200000, +0.89700000, +0.82100000, +0.69016667, +0.04500000, -0.55900000, +0.28100000, -0.14083333 }; double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); clrscrn(); printf(" You have this nonlinear system of equations :\n\n"); printf(" (x, y, z not 0)\n"); printf("\n"); printf(" a 1/x + b 1/y + c 1/z = d \n"); printf(" e 1/x + f 1/y + g 1/z = h \n"); printf(" i 1/x + j 1/y + k 1/z = l \n\n"); printf(" We write 1/x = X, 1/y = Y, 1/z = Z\n\n"); printf(" a X + b Y + c Z = d\n"); printf(" e X + f Y + g Z = h\n"); printf(" i X + j Y + k Z = l\n\n"); printf(" Ab :\n"); printf(" a b c d\n"); printf(" e f g h\n"); printf(" i j k l\n\n\n"); stop(); clrscrn(); printf(" With A:"); p_mR(A, S8,P4,C7); printf(" And b:"); p_mR(b, S8,P4,C7); printf(" Ab:"); p_mR(Ab, S8,P4,C7); stop(); clrscrn(); printf(" Copy/Paste into the octave window.\n\n"); p_Octave_mR(Ab,"Ab",P4); printf("\n rref(Ab,.00000000001)\n\n"); printf(" gj_TP_mR(Ab):"); p_mR(gj_TP_mR(Ab), S10,P4,C7); printf(" Then 1/x = X = 1. , 1/y = Y = .5, 1/z = Z = .333 \n\n"); stop(); f_mR(Ab); f_mR(b); f_mR(A); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ Screen output example: You have this nonlinear system of equations : (x, y, z not 0) a 1/x + b 1/y + c 1/z = d e 1/x + f 1/y + g 1/z = h i 1/x + j 1/y + k 1/z = l We write 1/x = X, 1/y = Y, 1/z = Z a X + b Y + c Z = d e X + f Y + g Z = h i X + j Y + k Z = l Ab : a b c d e f g h i j k l Press return to continue. With A: -0.3480 -0.3210 -0.2330 -0.0320 +0.8970 +0.8210 +0.0450 -0.5590 +0.2810 And b: -0.5862 +0.6902 -0.1408 Ab: -0.3480 -0.3210 -0.2330 -0.5862 -0.0320 +0.8970 +0.8210 +0.6902 +0.0450 -0.5590 +0.2810 -0.1408 Press return to continue. Copy/Paste into the octave window. Ab=[ -0.3480,-0.3210,-0.2330,-0.5862; -0.0320,+0.8970,+0.8210,+0.6902; +0.0450,-0.5590,+0.2810,-0.1408] rref(Ab,.00000000001) gj_TP_mR(Ab): +1.0000 -0.0000 -0.0000 +1.0000 +0.0000 +1.0000 +0.0000 +0.5000 +0.0000 +0.0000 +1.0000 +0.3333 Then 1/x = X = 1. , 1/y = Y = .5, 1/z = Z = .333 Press return to continue.