Витя |
Кривые второго порядка 11.03.2006, 00:34 |
|
05/03/06 1
|
Поможите где можно найти или скачать программу в Delphi для нахождения кривизны и кручения кривой в любой точке.
|
|
|
|
|
Amigo |
24.03.2006, 02:37 |
|
11/03/06 236
|
1)Функция кривизну которой вы хотите вычислять является наперёд заданной?
Если да то каким образом эта функция представленна? Ввиде y=f(x) или x=x(t), y=y(t)
или F(x,y)=0 ?
Если на первый вопрос Вы отвечаете "да" то задача тривиальна: приведу алгоритм
решения этой задачи, если y=f(x).
Вычислим предварительно на листке первую и вторую производную y' и y'';
Затем оформим эти производные ввиде двух функций "PR1" и "PR1" следущим образом:
function PR1(x:real):real;
Begin
Result:=y'(x);//сюда вы подставляете первую вычисленную на листке
//производную например sin(x)
end;
function PR2(x:real):real;
Begin
Result:=y''(x);//сюда вы подставляете вторую вычисленную на листке
//производную например сos(x)
end;
// а вот функция вычисления кривизны
function Krivizna(x:real):real;
var y:real;
Begin
y:=(1+sqr(PR1(x)))*(1+sqr(PR1(x)))*(1+sqr(PR1(x)));
y:=sqrt(y);
Result:=PR2(x)/y;
end;
//всё
Если функция не является на перёд заданной то опять таки возникает вопрос,
как она представленна? Ввиде таблице или ввиде аналитической зависимости?
Если ввиде таблицы то для вычисления кривизны нужно вначале построить интерполирующую
функцию но поскольку последняя задача является не корректной ( в смысле единственности
решения) то нужно вначале определится с классом X на котором будет строится эта функция.
Взависимости от этого существуют различные подходы, если например X=P[x] - класс
многочленов , то аналитический вид для производных легко найти, а вместе с ним
и коэфициент кривизны. Если же X произвольный класс то производную можно
вычислить приближенно по формуле (f( x+t)-f(t))/t , где t- "достаточно малое число".
P.S
Уточняте задачу!
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 2 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы