|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Составить прогибаемую функцию с заданной площадью
Область определения условно: от 0 до 10.
Помогите пожалуйста составить такую функцию, в которой можно было бы задавать определённый коэффициент, изменяя величину "прогиба" графика, но при этом, общая площадь должна оставаться заданной. k1 - Изменяемый коэффициент k2 - Заданная площадь (Коэффициент k1 должен быть динамическим, изменяя который мы прогибаем функцию, не изменяя её площади)
__________________
Дети не должны знать о своих родителях |
|
|||||
если диапазон (0..10 ) не меняется, то можно просто степенной функцией
Добавлено через 26 минут var coef:Array = [0.5, 1, 1.5, 3]; graphics.lineStyle(0); for (var i:int = 0; i < coef.length; i++) { for (var x:Number = 0, s:Number=0; x < 10; x+=0.05) { var k:Number = coef[i]; var y:Number = (1 + k) * Math.pow(x / 10, k); s += y; x? graphics.lineTo(x * 20, 300-50 * y): graphics.moveTo(x * 20, 300-50 * y); } trace( "s : " + s ); } |
|
|||||
listener
|
Для степенной функции, где k1 - показатель степени, и фиксированного отрезка, [0,10] как у вас, боюсь, не существет множества коэффициентов (показателей степени). Другими словами, вид функции должен быть специальным (не степенная, это слишком простой вид).
Действительно, x^k1*x/k2 = x^(k1+1)/k2. Первообразная - x^(k1+2)/((k1+2)*k2). Подставив граничные значения, получим 10^(k1+2)/((k1+2)*k2) = 50. Это уравнение разрешается относительно k1 и имеет единственное решение k1=2(при k2=50). Т.е. нет множества решений, оно одно. Вывод - искать другой вид параметризуемой функции с "прогибом". Можно попробовать искать вид функции в виде полинома. Но визуально "прогиб" заметно вряд ли будет сильно меняться. |
|
|||||
silin,
Ты просто гений. Рабочий практичный пример. Однако ещё подумаю над другими вариантами, может зашёл не с того боку.. alexcon314, Спасибо.
__________________
Дети не должны знать о своих родителях |
|
|||||
listener
|
да, silin - гений. Я сам себя запутал. Не дотумкал подсунуть множитель (k+1). Твое решение - то что нужно.
(k+1)*(x^k)/A^k ->(интеграл) x^(k+1)/A^k = C; x^(k+1) = C*A^k; C=A (это фиксированная площадь, A - диапазон) при любом k и при фиксированном x=A. Респект. Для визуализации самое то. Дешево и сердито. Для пущей красоты Тогда и трейсы выведут ~A. Последний раз редактировалось alexcon314; 02.04.2014 в 17:32. |
Часовой пояс GMT +4, время: 18:26. |
|
« Предыдущая тема | Следующая тема » |
|
|