freeCodeCamp/curriculum/challenges/chinese/10-coding-interview-prep/rosetta-code/cramers-rule.md

2.8 KiB
Raw Blame History

id title challengeType videoUrl
59713da0a428c1a62d7db430 克莱默的统治 5

--description--

在线性代数中 Cramer规则是一个线性方程组解的显式公式,其中包含与未知数一样多的方程,只要系统具有唯一解,就有效。它通过用方程右边的矢量替换一列来表示(方形)系数矩阵的决定因素和从它获得的矩阵的解决方案。

特定

$ \ left \ {\ begin {matrix} a_1x + b_1y + c_1z= {\ color {red} d_1} \\ a_2x + b_2y + c_2z= {\ color {red} d_2} \\ a_3x + b_3y + c_3z= {\颜色{红} D_3} \ {结束矩阵} \权。$

以矩阵格式表示

$ \ begin {bmatrix} a_1b_1c_1 \\ a_2b_2c_2 \\ a_3b_3c_3 \ end {bmatrix} \ begin {bmatrix} x \\ y \\ z \ end {bmatrix} = \ begin {bmatrix} {\ color {red} d_1} \\ {\ color {red} d_2} \\ {\ color {red} d_3} \ end {bmatrix}。$

然后可以找到$ xy $和$ z $的值,如下所示:

$ x = \ frac {\ begin {vmatrix} {\ color {red} d_1}b_1c_1 \\ {\ color {red} d_2}b_2c_2 \\ {\ color {red} d_3}b_3 c_3 \ end {vmatrix}} {\ begin {vmatrix} a_1b_1c_1 \\ a_2b_2c_2 \\ a_3b_3c_3 \ end {vmatrix}}\ quad y = \ frac {\ begin {vmatrix } a_1{\ color {red} d_1}c_1 \\ a_2{\ color {red} d_2}c_2 \\ a_3{\ color {red} d_3}c_3 \ end {vmatrix}} {\ begin {vmatrix} a_1b_1c_1 \\ a_2b_2c_2 \\ a_3b_3c_3 \ end {vmatrix}}\ text {和} z = \ frac {\ begin {vmatrix} a_1b_1{\ color {red} d_1} \\ a_2b_2{\ color {red} d_2} \\ a_3b_3{\ color {red} d_3} \ end {vmatrix}} {\ begin {vmatrix} a_1b_1 c_1 \\ a_2b_2c_2 \\ a_3b_3c_3 \ end {vmatrix}}。$

任务

给定以下方程组:

$ \ begin {例} 2w-x + 5y + z = -3 \\ 3w + 2x + 2y-6z = -32 \\ w + 3x + 3y-z = -47 \\ 5w-2x-3y + 3z = 49 \\ \ end {cases} $

使用Cramer的规则解决$ w $$ x $$ y $和$ z $ 。

--hints--

cramersRule是一个函数。

assert(typeof cramersRule === 'function');

cramersRule([[2, -1, 5, 1], [3, 2, 2, -6], [1, 3, 3, -1], [5, -2, -3, 3]], [-3, -32, -47, 49])应返回[2, -12, -4, 1]

assert.deepEqual(cramersRule(matrices[0], freeTerms[0]), answers[0]);

cramersRule([[3, 1, 1], [2, 2, 5], [1, -3, -4]], [3, -1, 2])应返回[1, 1, -1]

assert.deepEqual(cramersRule(matrices[1], freeTerms[1]), answers[1]);

--solutions--