Страница: 1 |
Страница: 1 |
Вопрос: Интерп. полином Лагранжа( перевод в mathematica)
Добавлено: 30.04.06 09:23
Автор вопроса: ViktorZ | ICQ: 271202919
Вопрос конечно вообще даже не оффтоп ;-)))
Ну мало ли мож кто сталкивался: как в Mathematica сделать интерполяционный полином Лагранжа. В Делфи пример лежит готовый, а M-ca не могу, так как в Delphi все решалось функцией.
DELPHI:
function Ln(k: integer): Real;
var Proizved1, Proizved2: Real;
begin
t:=StrToFloat(Form3.Edit1.Text);
i:=1;
Proizved1:=1;
Proizved2:=1;
repeat
if k<>i then begin
Proizved1:=Proizved1*(t-x[i]);
Proizved2:=Proizved2*(x[k]-x[i]);
end;
i:=i+1;
until i>A;
Ln:=Proizved1/Proizved2;
end;
function Pol( ): Real;
var
Sum: Real;
i: Integer;
begin
i:=1;
Sum:=0;
repeat
Sum:=Ln(i)*Y[i]+Sum;
i:=i+1;
until i>A;
Pol:=Sum;
end;
Mathematica:
For[k = 1, k <= n, k++,
If[i != k,
pr1 = pr1*(t - x1[[k]]);
pr2 = pr2*(x1[[i]] - x1[[k]])
];
(*AppendTo[tes, ln];
Print["Y[i]=", y[[i]]];
Print["Y[k]=", y[[k]]];*)
Print["y[i]=", y[[i]]];
(*Print["X1[k]=", x1[[k]]];*)
];
ln = pr1/pr2
В общем вся проблема в том что я не могу записать в ln данные при i=1,2,3,4,5.
Или вариант с функциями, но я не нашел функции в пакете, вернее нашел, но что-то не сложилось
В общем мож кто то сталкивался, Заранее спасибо.
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #1
Добавлено: 30.04.06 18:49
Сам себя корю за такую глупость. Вот решение:
[CODEъ
n = 6;
t = 13;
pr1 = 1;
pr2 = 1;
i = 1;
ln = {};
For[i = 1, i <= n, i++,
pr1 = 1;
pr2 = 1;
For[k = 1, k <= n, k++,
If[i ≠ k,
pr1 = pr1*(t - x1[[k]]);
pr2 = pr2*(x1[] - x1[[k]])
];
]
AppendTo[ln, pr1/pr2]];
ln;
sumofln = 0;
For[i = 1, i <= n, i++,
sumofln = y[]*ln[] + sumofln;
][/CODE]
Номер ответа: 2
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #2
Добавлено: 11.05.06 14:06
да ну твою математику! Бери WATERLOO MAPLE V5 и все! ОДНА функция!
Номер ответа: 3
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #3
Добавлено: 11.05.06 14:14
Гы,ты думаешь в Математике ее нет? идея вся в том что научится его делать самому, правда я хз почему нас в Матем-ке это длеать заставляют(скорее всего из-за синтаксиса, на сишный чем то похож), НО WATERLOO MAPLE V5, так же матем-ка продукты платные, а у нас платить не любят.
Номер ответа: 4
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #4
Добавлено: 11.05.06 14:47
Весь прикол, что в Maple можно глянуть исходники функции. А затем перевести их в С или Fortran. Могу поспорить, ты не знал!
Номер ответа: 5
Автор ответа:
ViktorZ
ICQ: 271202919
Вопросов: 56
Ответов: 837
Профиль | | #5
Добавлено: 11.05.06 19:33
А затем перевести их в С или Fortran. Могу поспорить, ты не знал! Поспорь, тока как ты докажешь что я не знал? Это ничего не меняет, так как мне надо вначале разбираться с кодом Мапле, хотя спасибо если что то это на крайняк выход.