आप इसे एक प्रोग्राम के साथ ठीक उसी तरह हल कर सकते हैं जैसे आप इसे हाथ से हल करते हैं (गुणा और घटाव के साथ, फिर समीकरणों में परिणाम खिला रहे हैं)। यह सुंदर मानक माध्यमिक-विद्यालय स्तर के गणित है।
-44.3940 = 50a + 37b + c (A)
-45.3049 = 43a + 39b + c (B)
-44.9594 = 52a + 41b + c (C)
(A-B): 0.9109 = 7a - 2b (D)
(B-C): 0.3455 = -9a - 2b (E)
(D-E): 1.2564 = 16a (F)
(F/16): a = 0.078525 (G)
Feed G into D:
0.9109 = 7a - 2b
=> 0.9109 = 0.549675 - 2b (substitute a)
=> 0.361225 = -2b (subtract 0.549675 from both sides)
=> -0.1806125 = b (divide both sides by -2) (H)
Feed H/G into A:
-44.3940 = 50a + 37b + c
=> -44.3940 = 3.92625 - 6.6826625 + c (substitute a/b)
=> -41.6375875 = c (subtract 3.92625 - 6.6826625 from both sides)
तो आप के साथ अंत:
a = 0.0785250
b = -0.1806125
c = -41.6375875
आप इन मूल्यों को ए, बी और सी में प्लग, तो आप वे सही कर रहे हैं मिल जाएगा।
चाल एक साधारण 4x3 मैट्रिक्स का उपयोग करना है जो 3x2 मैट्रिक्स में बदल जाती है, फिर एक 2x1 जो "ए = एन" है, एन वास्तविक संख्या है। एक बार आपके पास यह हो जाने के बाद, आप इसे अगले मैट्रिक्स में एक और मान प्राप्त करने के लिए फ़ीड करते हैं, फिर उन दो मानों को अगले मैट्रिक्स में तब तक फ़ीड करें जब तक आप सभी चर हल नहीं कर लेते।
बशर्ते आपके पास एन विशिष्ट समीकरण हों, तो आप हमेशा एन चर के लिए हल कर सकते हैं। मैं अलग कहते हैं कि इनमें नहीं हैं क्योंकि:
7a + 2b = 50
14a + 4b = 100
वे ही समीकरण दो से गुणा किया तो आप उन लोगों से कोई समाधान नहीं प्राप्त कर सकते हैं - सही लेकिन बेकार बयान के साथ दो तो घटाकर पत्ते आप से पहले गुणा :
0 = 0 + 0
उदाहरण के द्वारा, यहाँ कुछ सी कोड है कि युगपत समीकरण है कि आप अपने प्रश्न में रखा रहे हैं बाहर काम करता है।सबसे पहले कुछ आवश्यक प्रकार, चर, एक समीकरण बाहर मुद्रण के लिए एक समर्थन समारोह, और main
की शुरुआत:
#include <stdio.h>
typedef struct { double r, a, b, c; } tEquation;
tEquation equ1[] = {
{ -44.3940, 50, 37, 1 }, // -44.3940 = 50a + 37b + c (A)
{ -45.3049, 43, 39, 1 }, // -45.3049 = 43a + 39b + c (B)
{ -44.9594, 52, 41, 1 }, // -44.9594 = 52a + 41b + c (C)
};
tEquation equ2[2], equ3[1];
static void dumpEqu (char *desc, tEquation *e, char *post) {
printf ("%10s: %12.8lf = %12.8lfa + %12.8lfb + %12.8lfc (%s)\n",
desc, e->r, e->a, e->b, e->c, post);
}
int main (void) {
double a, b, c;
इसके बाद, दो अज्ञात के साथ दो समीकरणों को तीन अज्ञात के साथ तीन समीकरणों की कमी:
// First step, populate equ2 based on removing c from equ.
dumpEqu (">", &(equ1[0]), "A");
dumpEqu (">", &(equ1[1]), "B");
dumpEqu (">", &(equ1[2]), "C");
puts ("");
// A - B
equ2[0].r = equ1[0].r * equ1[1].c - equ1[1].r * equ1[0].c;
equ2[0].a = equ1[0].a * equ1[1].c - equ1[1].a * equ1[0].c;
equ2[0].b = equ1[0].b * equ1[1].c - equ1[1].b * equ1[0].c;
equ2[0].c = 0;
// B - C
equ2[1].r = equ1[1].r * equ1[2].c - equ1[2].r * equ1[1].c;
equ2[1].a = equ1[1].a * equ1[2].c - equ1[2].a * equ1[1].c;
equ2[1].b = equ1[1].b * equ1[2].c - equ1[2].b * equ1[1].c;
equ2[1].c = 0;
dumpEqu ("A-B", &(equ2[0]), "D");
dumpEqu ("B-C", &(equ2[1]), "E");
puts ("");
इसके बाद, एक अज्ञात के साथ एक समीकरण को दो अज्ञात के साथ दो समीकरणों की कमी:
// Next step, populate equ3 based on removing b from equ2.
// D - E
equ3[0].r = equ2[0].r * equ2[1].b - equ2[1].r * equ2[0].b;
equ3[0].a = equ2[0].a * equ2[1].b - equ2[1].a * equ2[0].b;
equ3[0].b = 0;
equ3[0].c = 0;
dumpEqu ("D-E", &(equ3[0]), "F");
puts ("");
अब जब हम का एक सूत्र है number1 = unknown * number2
टाइप करें, हम unknown <- number1/number2
के साथ अज्ञात मान को आसानी से काम कर सकते हैं। फिर, एक बार जब आप उस मूल्य को समझ लेंगे, तो इसे दो अज्ञातों के साथ समीकरणों में से एक में बदलें और दूसरे मान को कार्य करें। फिर मूल समीकरण में से एक में उन दोनों (अब जाना जाता है) अज्ञात स्थानापन्न और अब आप सभी तीन अज्ञात के लिए मान हैं:
// Finally, substitute values back into equations.
a = equ3[0].r/equ3[0].a;
printf ("From (F ), a = %12.8lf (G)\n", a);
b = (equ2[0].r - equ2[0].a * a)/equ2[0].b;
printf ("From (D,G ), b = %12.8lf (H)\n", b);
c = (equ1[0].r - equ1[0].a * a - equ1[0].b * b)/equ1[0].c;
printf ("From (A,G,H), c = %12.8lf (I)\n", c);
return 0;
}
कि कोड के उत्पादन में इस जवाब में पहले गणना से मेल खाता है:
>: -44.39400000 = 50.00000000a + 37.00000000b + 1.00000000c (A)
>: -45.30490000 = 43.00000000a + 39.00000000b + 1.00000000c (B)
>: -44.95940000 = 52.00000000a + 41.00000000b + 1.00000000c (C)
A-B: 0.91090000 = 7.00000000a + -2.00000000b + 0.00000000c (D)
B-C: -0.34550000 = -9.00000000a + -2.00000000b + 0.00000000c (E)
D-E: -2.51280000 = -32.00000000a + 0.00000000b + 0.00000000c (F)
From (F ), a = 0.07852500 (G)
From (D,G ), b = -0.18061250 (H)
From (A,G,H), c = -41.63758750 (I)
अन्य लोगों को इस का जवाब दे दिया है, लेकिन पुस्तक * संख्यात्मक विश्लेषण की जाँच: वैज्ञानिक कम्प्यूटिंग के गणित * किनकैड द्वारा और चेनी। पुस्तक बड़े पैमाने पर समीकरणों की विभिन्न प्रणालियों को हल करने के बारे में है। – Matthew