Все уже про ChatGPT слышали?
Я только что в глубокий культурный шок повергся от того, ЧТО он умеет.
Только что запутавшись в условно простой и школьной задачке написал ему вопрос, который он понял, и вполне корректно (как оказалось - нет) решил.
Итак, вопрос:
Приборчик измеряет некие показания, для двух случаев, назовём их х1 и х2.
После чего, эти х1 и х2 преобразуются по корректирующей линейной функции y=k1*x+b1, и на экран выводятся уже y1 и y2.
Тут всё просто.
Но при замерах х1 и х2 мы используем ещё и эталонный прибор, который выдаёт свои показания, пусть это будут z1 и z2.
Задача в том, что x1 и x2 я не "вижу", и мне необходимо видя y1 и y2, и зная k1 и b1, сразу получить k2 и b2, установив которые вместо k1 и b1 y совпадут с z.
Ответ:
Для того, чтобы найти k2 и b2, необходимо решить систему уравнений:
y1 = k1*x1 + b1
z1 = k2*x1 + b2
y2 = k1*x2 + b1
z2 = k2*x2 + b2
Выразим из первой и второй уравнений x1 и подставим в третью и четвертую уравнения:
x1 = (y1 - b1) / k1
x1 = (z1 - b2) / k2
x2 = (y2 - b1) / k1
x2 = (z2 - b2) / k2
Теперь можем записать систему из двух уравнений с двумя неизвестными k2 и b2:
(z1 - b2) / k2 = (y1 - b1) / k1
(z2 - b2) / k2 = (y2 - b1) / k1
Решением этой системы будет:
k2 = (y2 - y1) / (z2 - z1) * k1
b2 = (y1 * z2 - y2 * z1) / (z2 - z1)
Итак, имея k1, b1, y1, y2, z1, и z2, мы можем найти k2 и b2 и заменить ими значения k1 и b1 в формуле y = k1*x + b1, чтобы получить корректированные показания y, совпадающие с эталонными показаниями z.
UPD:
Решение оказалось неверным.
Хотя, машина умеет косячить прям как человек, это же тоже круто!
Правильный ответ, уже проверенный табличкой в Экселе -
k2 = k1*(z1–z2) / (y1–y2)
b2 = z1 — y1*k2/k1 + b1*k2/k1
И вот да, вот такая математика бывает нужна в реальной жизни.