Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
Мазут Береговой ©   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
15-1230012779
Slider007
2008-12-23 09:12
2009.02.22
С днем рождения ! 23 декабря 2008 вторник


15-1229817686
Eraser
2008-12-21 03:01
2009.02.22
Java &amp; MS CryptoAPI


2-1231835371
Кирил
2009-01-13 11:29
2009.02.22
Как узнать - сколько дней в месяце?


15-1230055660
TUser
2008-12-23 21:07
2009.02.22
О теории кайфа


2-1231683091
Cj
2009-01-11 17:11
2009.02.22
Handle Type..???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский