Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 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 &#8800; 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. Могу поспорить, ты не знал! Поспорь, тока как ты докажешь что я не знал? Это ничего не меняет, так как мне надо вначале разбираться с кодом Мапле, хотя спасибо если что то это на крайняк выход.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам