@pndr
Программирую: с,pascal,php

Как продифференцировать кривую веса?

Есть реальтаймовые данные веса

По оси X - время (0,1 сек период)
По оси Y - вес (в килограммах)

Надо это вес продифференцировать. Точнее в каждой точке получить значение угла a.

definition-of-differential.jpg

Вот здесь есть все что надо. Посчитать не могу.

Допустим есть 10 точек:
Время—Вес
1—10
2—15
3—95
4—380
5—390
6—370
7—208
8—62
9—12
10—3

Как посчитать для каждой точки угол a ?

В глобальном масштабе задача выглядит так: необходимо зная вес складывать в ДБ записи:
загрузили - 350 кг
выгрузили - 220 кг
выгрузили - 130 кг

В идеале чтобы записи загрузили и выгрузили сменяли каждый раз друг друга, т.е. не было в ДБ записей "загрузили,загрузили" и "выгрузили,выгрузили"
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
@unabl4
ruby on rails web dev
Не знаю, зачем Вам считать производную, но если по-простому:
есть приращение функции: dy (вес), и приращение аргумента dx (время).
Берём попарно две точки, и находим dy.
a (альфа) - есть тангенс угла наклона прямой (касательной), а если это тангенс, то это отношение противолежащей стороны к прилежащей, т.е tan(a) = dy/dx, тогда a = arctan(dy/dx);
Например, для точек 1->2:
tan(a) = (15-10) / 0.1 = 50;
=> a ~= arctan(50) ~= 88 deg.
Для точки 2 -> 3:
a = arctan((95-15)/0.1) ~= 89.92 deg
Для точки 3 -> 4:
a = arctan((380-95)/0.1) ~= 89.97 deg

и так далее.
Только у вас выбран масштаб времени настолько маленький (по сравнению с измеряемым весом), что это всё дело (угол альфа) фактически всегда аппроксимируется на +- 90 градусов.
И я так и не понял, зачем нужен этот угол.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы