Войти
ПрограммированиеФорумОбщее

f(x)=? (2 стр)

Страницы: 1 2
#15
3:19, 21 авг. 2009

Mikle
это не важно в моем случае, я привел схематичный график, описывающий примерную форму и ниже указал условия. Касательная х=0 не обязательна


#16
13:00, 21 авг. 2009

Судя по условиям, наблюдаются следующие требования:

f' (-0.5) == 0,
f (-0.5) == -0.5,
f' (0.5) == 0,
f (0.5) == 0.5,
f' (0) == ...(вот тут вопрос. Чтобы было "подобно кубическому корню", касательная тут должна быть вертикальной. Но тогда производная не будет непрерывной, и задать такую функцию некусочно вряд ли можно)... ну пусть будет, скажем, Y,
f (0) == 0.

Простейшая функция, которая может удовлетворять подобному набору требований - многочлен какой-то степени. Судя по кол-ву граничных условий, ориентировочно 5-й (6 условий == 6 неизвестных коэффициентов):
f(x) == A*x^5 + B*x^4 + C*x^3 + D*x^2 + E*x + F

Отсюда и из условий получается система относительно A...F:

5*A*(-0.5)^4 + 4*B*(-0.5)^3 + 3*C*(-0.5)^2 + 2*D*(-0.5) + E = 0;
A*(-0.5)^5 + B*(-0.5)^4 + C*(-0.5)^3 + D*(-0.5)^2 + E*(-0.5) + F = -0.5;
5*A*(0.5)^4 + 4*B*(0.5)^3 + 3*C*(0.5)^2 + 2*D*(0.5) + E = 0;
A*(0.5)^5 + B*(0.5)^4 + C*(0.5)^3 + D*(0.5)^2 + E*(0.5) + F = 0.5;
5*A*(0)^4 + 4*B*(0)^3 + 3*C*(0)^2 + 2*D*(0) + E = Y;
A*(0)^5 + B*(0)^4 + C*(0)^3 + D*(0)^2 + E*(0) + F = 0.

Далее следует немного мрака и линейной алгебры, и получается следующее решение:
A == 16*Y - 24,
B == D == F == 0,
C == 10 - 8*Y,
E == Y

или:

f(x) == (16*Y - 24)*x^5 + (10 - 8*Y)*x^3 + Y*x

К сожалению, эксперимент показывает, что при небольших Y функция некрасиво ведёт себя в 0, а при увеличении Y (приближении к вертикали) - по краям (вылетает далеко за диапазон -0.5...0.5, хотя к концам отрезка в него и возвращается) Таким образом, дальнейшее направление исследований - придумать ещё условий и попробовать многочлен более высокой степени. Либо отказаться от некоторых (скажем, в нуле) и попробовать более низкой (минимально нужный для условий в №0 - 3-й степени). Принцип решения для произвольной степени и набора условий - аналогичный: составляем и решаем линейную систему относительно коэффициентов.

#17
13:04, 21 авг. 2009

Sbtrn. Devil
oO :)

#18
15:23, 21 авг. 2009

Sbtrn. Devil
Слишком умных на форуме не любят :)

#19
18:35, 21 авг. 2009

Ramzes
если брать квадр.ф-ю, с условиями
f(0)=0,f(0.5)=0.5,f'(0.5)=0,f'(x)>0,при 0<x<0.5,f(-x)=f(x)
то
f(x)=  2*(x-x^2), 0<=x<=0.5
f(x)=  2*(x+x^2), -0.5<=x<0
f'(0)=2 (ты сам сказал, то там не надо касательную x=0)
смотри сам, подойдет ли

#20
9:01, 22 авг. 2009

второй вопрос возник, как бы теперь доработать эту функцию чтобы можно было менять точку пересечения графика с осью х? т.е. сместить точку пересечения (0, 0) например на позицию (-0.4, 0)

#21
11:35, 22 авг. 2009

x0,x1-концы отрезка
y0-знач-е в точке 0,y1,y2-на концах
k-наклон кривой при x=0
при i=1,2
ai=(k*xi+2*(y0-yi))/xi^3
bi=-(2*k*xi+3*(y0-yi))/xi^2
ci=k
di=y0
и
f(x)=ai*x^3+bi*x^2+ci*x+di, i=1,при x1<=x<=0, i=2, при 0<=x<=x2

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.