Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.22;
Скачать: CL | DM;

Вниз

Нелинейные функции   Найти похожие ветки 

 
Мазут Береговой ©   (2008-12-24 01:44) [0]

Нужно уравнение для нелинейной функции.
Должны вводиться два параметра: начальное значение и конечное.
Значение функции должно плавно нарастать вначале,а в последней трети резко.

Есть такое выражение в C#:
Math.Round(Math.Tan(0.1 + (step * k1)), 1) * k2;
step - переменная, всегда увеличивающаяся на 1 (step=step+1).
Math.Tan - тангенс.
Math.Round - округление (в данном случае до одной десятичной цифры).

Задача сводится к тому, чтобы через входные параметры n1(начальное значение) и n2(конечное значение) вычислить коэффициенты k1 и k2.

Или может кто знает мат формулу для таких случаев?


 
Дуб ©   (2008-12-24 06:56) [1]

Задача не поставлена.

Когда и при каких обстоятельствах увеличивается step? На каком множестве задана функция? Кроме значений функции, имеются ли значения аргументов? Чем не пригоден для поиска Эксель?


 
Jeer ©   (2008-12-24 10:04) [2]


> Или может кто знает мат формулу для таких случаев?


Можно посмотреть на множество экспоненциальных функций
y=a*e^(b*x+c)
y=a+b*e^(x/c)+d*e^(x/f)
y=a*(1-e^(-b(x-d*x))
и тд


 
Ega23 ©   (2008-12-24 10:07) [3]


> Значение функции должно плавно нарастать вначале,а в последней
> трети резко.
>


Да что угодно может быть. Экспонента, гипербола, даже полином вполне может быть.


 
Jeer ©   (2008-12-24 10:23) [4]

Устроит ?
Y =0.03333+1.03089*X-0.1014 X^2+0.03438 X^3


 
@!!ex ©   (2008-12-24 10:43) [5]

Result:=I*I*I*I;
тупо парабола. при 0<i<1
дает как раз плавное нарастание в первые две трети и резкое в последней трети.


 
Дуб ©   (2008-12-24 11:09) [6]

>
> Jeer ©   (24.12.08 10:04) [2]
> Ega23 ©   (24.12.08 10:07) [3]
> @!!ex ©   (24.12.08 10:43) [5]

Учимся читать внимательно:

> Задача сводится к тому, чтобы через входные параметры n1(начальное
> значение) и n2(конечное значение) вычислить коэффициенты
> k1 и k2.

У него уже есть вид. ТОлько вот раскрыть бы его по пунктам.


 
Jeer ©   (2008-12-24 11:31) [7]


> У него уже есть вид. ТОлько вот раскрыть бы его по пунктам.


А как же ?

> Или может кто знает мат формулу для таких случаев?


В общем, малопонятно, что ему надо.


 
Дуб ©   (2008-12-24 11:49) [8]

>>  Или может кто знает мат формулу для таких случаев?
>
> В общем, малопонятно, что ему надо.

Это да. Но я так понял, что может кто знает решение в квадратурах для приведенного случая.


 
@!!ex ©   (2008-12-24 12:10) [9]

> [6] Дуб ©   (24.12.08 11:09)

Я внимательно прочитал:
Нужно уравнение для нелинейной функции.
Функцию я привел.
Должны вводиться два параметра: начальное значение и конечное.
Не вопрос. Это смещение и масштабирование параболы.
Значение функции должно плавно нарастать вначале,а в последней трети резко.
Моя функция удовлетворяет этому условию.


 
Jeer ©   (2008-12-24 12:15) [10]


> тупо парабола. при 0<i<1


Даже если совсем тупо, то не парабола.


 
Дуб ©   (2008-12-24 12:44) [11]

>@!!ex ©   (24.12.08 12:10) [9]

Ты плохо прочитал. Перечитай! :)


 
Мазут Береговой ©   (2008-12-24 18:32) [12]

Попытаюсь еще раз.
step - увеличивается монотонно от 0 до N с шагом 1.
0,N - входные параметры n1 и n2 соответственно. Эти параметры для вызова функции задаются один раз, но при каждом вызове могут быть разные.

Функция должна быть нелинейной, но так чтобы в начале ее результат был не менее n1 и не более n2. "не менее" и "не более" - понятия условные. Идеальный случай - равны n1 и n2.

Относительно той функции, что я привел - то это только вариант через тангенс, который я пока опробовал, но уперся в коэффициенты.

Вот я и спрашивал про другие варианты.

Примерно вот такие значения (эмпирически):
n1=1, n2=10
step: 1,2,3,4,5,6,7,8,9,10.
func: 1.1, 1.4, 1.9, 2.3, 2.8, 3.5, 5.0, 6.4, 8.7, 9.9

т.е.
если заданы n1=10, n2=300, то функция должна начаться сразу после 10 и закончиться близко к 300.


 
Jeer ©   (2008-12-24 18:51) [13]

Для Ваших значений
Y =1.18333-0.04081*X+0.05962 X^2+0.00346 X^3

также подходит экспоненциальная

Для первого случая аналитически решается система из обратных функций
(куб уравнение)
Можно численно


 
Мазут Береговой ©   (2008-12-24 19:13) [14]


> Jeer ©   (24.12.08 18:51) [13]

Скорее всего не подойдет. Должно быть 10 шагов - 10 значений функции. Первое и последнее должны совпадать по значению с числом шага.
Интересно, Jeer, вы откуда функции берете? :-)


 
Мазут Береговой ©   (2008-12-24 19:15) [15]


> Мазут Береговой ©   (24.12.08 19:13) [14]
>
> > Jeer ©   (24.12.08 18:51) [13]
>
> Скорее всего не подойдет. Должно быть 10 шагов - 10 значений
> функции. Первое и последнее должны совпадать по значению
> с числом шага.
> Интересно, Jeer, вы откуда функции берете? :-)

В смысле не "10 шагов - 10 значений функции", а N шагов - N значений функции..


 
Дуп (пароль вот прпомню)   (2008-12-24 19:38) [16]

> Относительно той функции, что я привел - то это только вариант
> через тангенс,

Понятно. Но ты сказал сам:

> Задача сводится к тому,

и далее. Я зануда - я это знаю.

> Скорее всего не подойдет. Должно быть 10 шагов - 10 значений
> функции.

Тебе сплайн нужен с соответсвующим поведением? Опиши его. Если крутую производную в конце и некрутую вначале - то можно кучу ссылок на кубические подогнать. Но тебе видимо еще надо и монотонность первой производной обеспечить?


 
Мазут Береговой ©   (2008-12-24 19:58) [17]


> Дуп (пароль вот прпомню)   (24.12.08 19:38) [16]

про монотонность не уверен...
вот такого вида:
http://www.purplemath.com/modules/logs/expfcn06.gif


 
Дуп   (2008-12-24 20:04) [18]


> вот такого вида:

Там картинка с текстом.


 
Мазут Береговой ©   (2008-12-24 20:50) [19]


> Дуп   (24.12.08 20:04) [18]

Скопируй ее в строку адреса...


 
Мазут Береговой ©   (2008-12-24 22:24) [20]

Похоже, решение найдено:

основная формула:
f=base^step/2

где step меняется от 0 до N с шагом 1.
(хотел сделать  для общего случая от n1 до n2 для универсальности, но и от 0 в моем случае подойдет).

остается вычислить base:
base=N^(1/(N/2))

Всем спасибо!
И всех с Наступающим Новым Годом!
Всем здоровья и успехов!

PS если есть у кого какие решения интересные продолжайте сюда писать.



Страницы: 1 вся ветка

Текущий архив: 2009.02.22;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.016 c
2-1231835601
b@v
2009-01-13 11:33
2009.02.22
Запрос ACCESS в DELPHI


15-1229937030
Ega23
2008-12-22 12:10
2009.02.22
Любопытная статья.


6-1199280101
Venkin
2008-01-02 16:21
2009.02.22
отправить картинку на radikal.ru (INDY)


2-1231868733
Footballer
2009-01-13 20:45
2009.02.22
Работа с Socks


2-1231570514
RUBEY
2009-01-10 09:55
2009.02.22
Прием параметров через командную строку