[Форум] [Помощь] [Поиск] [Выйти] |
Добро пожаловать, ![]() |
|
|
| ||
Помогите чем сможите целую неделю мучаюсь не получается аппроксимация по точкам. Если кто знает где найти подскажите пожалуйсто. Заранее всем спасибо. Аппроксимация на С++ Builder 6.0 //--------------------------------------------------------------------------- #include <vcl.h> #include <math.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { double Ucm[5] = {1, 3, 3, 4, 5}; int i=0; const N=5; double sum_a0=0, sum_ak=0, sum_bk=0, sum_F=0, a0=0, F[100]; double ak[N], bk[N]; int k=0, M=5; i=0; for(i=0;i<N;i++) { sum_a0 = sum_a0 + Ucm; } a0 = (1/(N+1))*sum_a0; i=0; for(k=1;k<=M;k++) { for(i=0;i<N;i++) { sum_ak = sum_ak + Ucm*cos(k*i*0.017); } ak[k]=(2/(N+1))*(sum_ak); } double ZZ; ZZ=cos(60*0.017); Form1->Edit1->Text=ZZ; i=0; k=0; for(k=1;k<=M;k++) { for(i=0;i<N;i++) { sum_bk = sum_bk + Ucm*sin(k*i*0.017); } bk[k]=(2/(N+1))*(sum_bk); } k=0; i=0; for(i=0;i<N;i++) { for(k=1;k<=M;k++) { sum_F = sum_F + (ak[k]*cos(k*i*0.017)+bk[k]*sin(k*i*0.017)); } F = a0 + sum_F; Form1->Series1->AddXY(i,F); Form1->Series2->AddXY(i,Ucm); } } //--------------------------------------------------------------------------- |
| ||
http://www.codeproject.com/cpp/dphull.asp Не оно ли? А вообще, тут есть люди, годами читающие Кнута, наверняка поделятся реализацией ;) |
| ||
> А вообще, тут есть люди, годами читающие Кнута, наверняка поделятся реализацией ;) Oni holodnyy termoyad izobretayut. Ne do figni :-) |