пятница, 16 декабря 2016 г.

Решение системы двух линейных уравнений методом Крамера (js)

Задание:

Ниже находится система двух линейных уравнений. Напишите программу, которая выводит в консоль значения x и y по заданным переменным a1,b1,c1,a2,b2,c2 с использованием формул Крамера (т.е. через определители)

Решение: 

Формулы для 2х неизвестных:

js код:


<p>
  <input type="text" id="a1" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">X + 
  <input type="text" id="b1" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">Y = 
  <input type="text" id="c1" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">
  <div style="height: 4px;"></div>
  <input type="text" id="a2" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">X + 
  <input type="text" id="b2" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">Y = 
  <input type="text" id="c2" oninput="Change(event)" placeholder="0" pattern="^[+-]?[\d]+($|[\.][\d]+|([\.][\d]+[Ee]|[Ee])[+-]?\d+)$" size="8">
  <div style="height: 4px;"></div>
  <br>X = <span id="X">Please enter data!</span>
  <br>Y = <span id="Y">Please enter data!</span>
</p>
<script>
function Disp(X, Y)
{
  const Fail = 'Solive not found!';
  document.getElementById('X').innerHTML = !isNaN(X) ? X : Fail;
  document.getElementById('Y').innerHTML = !isNaN(Y) ? Y : Fail;
}

function Det2x2(Array)
{
  return Array[0] * Array[3] - Array[1] * Array[2];
}

function Change(e)
{
  let a1 = document.getElementById('a1').value;
  let b1 = document.getElementById('b1').value;
  let c1 = document.getElementById('c1').value;
  let a2 = document.getElementById('a2').value;
  let b2 = document.getElementById('b2').value;
  let c2 = document.getElementById('c2').value;
  
  let Det = Det2x2([a1, b1, a2, b2]); 
  let X = Det2x2([c1, b1, c2, b2]) / Det;
  let Y = Det2x2([a1, c1, a2, c2]) / Det;
  
  Disp(X, Y);
}
</script>

Данный код в работе:

X + Y =
X + Y =
X = Please enter data!
Y = Please enter data!

Комментариев нет:

Отправить комментарий