Как проинтерполировать коэфициент уменьшения значения?
Есть значения A и B. И есть начальный коэффициент уменьшения k, к примеру я беру его равным (A - B) / 100.
Есть кол-во шагов N, к примеру = 10;
Надо за N раз уменьшить/увеличить A = A - k до значения B, уменьшая k на каждом шаге.
Другими словами мне надо за N операций изменения значения(вычитание/сложения) добиться нужного значения, уменьшая размер вычитаемого/слагаемого (k).
Это мне нужно для задания линейного торможения вращения объекта.
Допустим надо изменить к примеру значение от 50 до 20 c начальным коэф-м уменьшения 10 за 5 итераций. Мне известны A=50 ,B=20, N=5, k0=10.
i k значение
1 10 50 - 10 = 40
2 8 40 - 8 = 32
3 6 32 - 6 = 26
4 4 22
5 2 20
Мне нужно формулу расчета k(i), i=1..N
если изменение от А к В линейное, то шаг константа (значит ваше k == const). у вас степенная функция, а не линейная, и степень меньше 1. попробуйте рассмотреть обратную задачу - ускорение от В к А за N итераций, причем так чтобы в последней итерации приращение было равно k0. затем легко выведете обратную (нужную вам) формулу
Ну ведь можно использовать формулу суммы арифметической прогрессии. S = (a_1 + a_n)*n/2;
a_1 = A;
n = N;
S = B;
Выражайте a_n, затем считайте шаг прогрессии d = ((a_n - a_1) / n). Из шага прогрессии i-ый член вычисляется легко, из него вычитайте a_1, получите k на i-ом шаге.
uniquenicknqame: Вы не совсем внимательное прочли, либо я не совсем прочувствовал вашу мысль.
надо изменить к примеру значение от 50 до 20 c начальным коэф-м уменьшения 10 за 5 итераций. Мне известны A=50 ,B=20, N=5, k0=10.
N k значение
1 10 50 - 10 = 40
2 8 40 - 8 = 32
3 6 32 - 6 = 26
4 4 22
5 2 20
K=K+- (b-a)*di, где di = 1/10 в данном случае, а вообще это шаг интегрирования. Только если будет больше итераций, чем запланировано, то К линейно падать и дальше будет.