Easyelectronics.ru

Электроника для всех
Текущее время: 06 дек 2019, 02:54

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Масштабирование таблично заданной функции.
СообщениеДобавлено: 28 авг 2015, 16:09 
Старожил

Зарегистрирован: 21 мар 2012, 14:33
Сообщения: 542
Создаю таблицу по функции
a(v,t,k)=ATan(Sqrt(k^2+(v*t)^2)/7);
При генерации использую фиксированные v=10, k=3, и пробегаю t=0.0f ... 100.0f с некоторым шагом.
В далнейшем используя эту таблицу возможно получить значения для других значений v,k, масштабируя индекс и значение из массива.

Масштабировать по V у меня получилось. Например, для получения значений функции a(15,t,3) берутся табличные значения с индексом 1.5*t. Беря значения из массива LUT[K1*t] получаем аналог функции
ATan(Sqrt(k^2+((15/10)*v*t)^2)/7);
K1=15/10=1.5

А вот масштабировать по переменной K у меня не получилось. Нужно масштабировать одновременно идекс и амплитуду:
K2*LUT[t*K2] ATan(Sqrt(k^2+(K1*v*t*K2)^2)/7)*K2;

Не получилось найти формулу для K2.
' k=18 K2=0.32 функция a(10,t,18) = K2*LUT[t*K2]
' k=15 K2=0.37
' k=12 K2=0.45
' k=9 K2=0.57
' k=6 K2=0.74
' k=3 K2=1 - табличная функция 1*LUT[t*1] = LUT[t]

поэтому пришлось завести ещё одну таблицу для коэффициента K2.
K2(k)= a(10,t,3)/a(10,t,k)
и определять финальное значение как K2[k]*LUT[K1*t*K2[k]]

В принципе это наверное даже лучше и быстрее, но было бы интересно узнать как выразить этот коэффициент.
ATan(Sqrt(3^2+(10*t)^2)/7) = K2*ATan(Sqrt(3^2+(10*t*K2)^2)/7)

Рисовал графики, K2 очень похожа на функцию простую функцию 1/x.

Может быть через тригонометрическую формулу atan(a)+atan(b)=atan( (a+b)/(1-ab))?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Масштабирование таблично заданной функции.
СообщениеДобавлено: 28 авг 2015, 19:24 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3323
создайте таблицу, для фунции f(r)=ArcTan[r], для r[0..200];
где r=sqrt(k^2+(vt)^2)/7.
корень тоже можно таблично, а возведение в квадрат уж и так посчитать можно.
ну или и корень и арктангенс обоих через cordic посчитать почти без таблиц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Масштабирование таблично заданной функции.
СообщениеДобавлено: 31 авг 2015, 16:17 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 23 май 2015, 11:06
Сообщения: 90
Откуда: Мирный (Якутия)
Возможно компактней будет табулировать функцию А(k,x), где х=v*t.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB