Answer the question
In order to leave comments, you need to log in
How to interpolate the reduction factor of a value?
Есть значения 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
Answer the question
In order to leave comments, you need to log in
Ну ведь можно использовать формулу суммы арифметической прогрессии. 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-ом шаге.
у вас, таки, ошибки/вопросы в математике:
1. (A - B) / 100 100, в данном случае и есть N (100, а не 10)
2. Нужно указать что значит N=0 тоесть A == B?
вобщем случае формула (с условностями-допущениями) выглядит примерно так:
k = (Math.abs(A - B) < Number.EPSILON) ? 0 : (A-B) / N;
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question