Определить коэффициенты полинома
От: dapa  
Дата: 03.10.08 11:13
Оценка:
Люди, добрый день!

подскажите плиз, есть такая задача:

есть значения углов наклона касательной в некоторых точках кривой.
необходимо определить коэффициенты для построения участка кривой Безье по этим данным или
хотя-бы полинома 3й степени.

т.е. известно, что кривая задана полиномом 3й степени, значение параметра [0..1],
значения угла касательной в точках кривой f(t)
f[0] = 45 grad
f[0.4] = 0 grad
f[1] = 135 grad

Необходимо определить коэффициенты A,B,C для
f(t) = A*t^3 + B*t^2 + C*t + D


Может имеется пример расчета.

Сорри, если кривое изложение


Спасибо


07.10.08 20:36: Перенесено модератором из 'Этюды для программистов' — Кодт
Re: Определить коэффициенты полинома
От: MBo  
Дата: 03.10.08 12:23
Оценка:
Здравствуйте, dapa, Вы писали:

D>Люди, добрый день!


D>подскажите плиз, есть такая задача:


D>есть значения углов наклона касательной в некоторых точках кривой.

D>необходимо определить коэффициенты для построения участка кривой Безье по этим данным или
D>хотя-бы полинома 3й степени.

D>т.е. известно, что кривая задана полиномом 3й степени, значение параметра [0..1],

D>значения угла касательной в точках кривой f(t)
D>f[0] = 45 grad
D>f[0.4] = 0 grad
D>f[1] = 135 grad

D>Необходимо определить коэффициенты A,B,C для

D>f(t) = A*t^3 + B*t^2 + C*t + D



Только по углам наклона в трех точках однозначно задать кривую нельзя. Три уравнения, а неизвестных 4 (считая, что конечные точки заданы, и нужно найти две контрольных)
Получится бесконечное количество (семейство) кривых, так что нужен еще какой-либо параметр (или, например, ограничение на форму кривой)
Re: Определить коэффициенты полинома
От: deniok Россия  
Дата: 03.10.08 12:58
Оценка:
Здравствуйте, dapa, Вы писали:



D>т.е. известно, что кривая задана полиномом 3й степени, значение параметра [0..1],

D>значения угла касательной в точках кривой f(t)
D>f[0] = 45 grad
D>f[0.4] = 0 grad
D>f[1] = 135 grad

D>Необходимо определить коэффициенты A,B,C для

D>f(t) = A*t^3 + B*t^2 + C*t + D


Дифференцируем:
f'(t)=3*A*t^2+2*B*t+C

и решаем линейную систему 3x3
f'(0)=1
f'(0.4)=0
f'(1)=-1
Re[2]: Определить коэффициенты полинома
От: dapa  
Дата: 03.10.08 13:46
Оценка:
Здравствуйте, deniok, Вы писали:

D>Дифференцируем:

D>
D>f'(t)=3*A*t^2+2*B*t+C
D>

D>и решаем линейную систему 3x3
D>
D>f'(0)=1
D>f'(0.4)=0
D>f'(1)=-1
D>


Всем спасибо — все заработало
типа решить систему:
f'(0)=tg(45)
f'(0.4)=tg(0)
f'(1)=tg(135)
Re[2]: Определить коэффициенты полинома
От: Sinclair Россия https://github.com/evilguest/
Дата: 08.10.08 06:29
Оценка:
Здравствуйте, deniok, Вы писали:



D>Дифференцируем:

D>
D>f'(t)=3*A*t^2+2*B*t+C
D>

D>и решаем линейную систему 3x3
D>
D>f'(0)=1
D>f'(0.4)=0
D>f'(1)=-1
D>

Ну то есть очевидно, что мы получаем бесконечное множество решений, т.к. от D ничего не зависит.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Определить коэффициенты полинома
От: deniok Россия  
Дата: 08.10.08 12:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну то есть очевидно, что мы получаем бесконечное множество решений, т.к. от D ничего не зависит.


Да, ответ определён с точностью до произвольной аддитивной константы. Но по условию задачи требовалось найти A, B и C; про D в вопросе речи не было.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.