barti82 Napisano Wrzesień 4, 2006 Zgłoś Share Napisano Wrzesień 4, 2006 Witam, tym razem mam problem z wrysowaniem do TChart linii regresji liniowej, mam ja policzona jak to bedzie pokazane w kodzie ponizej tylko problem jest taki ze wykres nie jest linia prosta a polaczeniem kolejnych pktow, ktore nie wiem czemu nei leza na linii prostej, jesli ktos wie dlaczego i co poprawic bede wdzieczny Wzor funkcji do ktorej robiona byla regresja log(n) = log®*df, gdzie n - ilosc czastek, r - promien, df - wymiar fraktalny jesli kogos interesuje Kod regresji:Pascal tab_x[w] = log; //zapis do tablic nowych x i y tab_n[w] = log(n); i=0; while (i<w) //algorytm regresji konczacy sie... { suma1 = suma1 + tab_x[w]*tab_n[w]; //suma x*y suma2 = suma2 + tab_x[w]; // suma x suma3 = suma3 + tab_n[w]; // suma y suma4 = suma4 + tab_x[w]*tab_x[w]; // suma x^2 i++; } srednia1 = suma1/(w+1); srednia2 = suma2/(w+1); srednia3 = suma3/(w+1); srednia4 = suma4/(w+1); srednia5 = srednia2*srednia2; // (srednia x)^2 w++;Kod ten wykonuje sie co pewien czas, gdy przybedzie kolejna ilosc czastek, srednia tak gdzies co 10 cykl glownej petli programu.Pozniej gdy uzytkownik chce zobaczyc wykres i klika na odpowiedni Button robi sie dalsza czesc kodu:Pascal Dane->Wykr->Series[1]->Clear(); a = ((srednia1-(srednia2*srednia3))/(srednia4-srednia5)); b = srednia3-a*srednia2; i=0; while (i < w) { wykr_x = tab_x[i]; y = a*wykr_x+b; Dane->Wykr->Series[1]->Add(wykr_x,log(y),clBlack); i++; }gdzie a i b to wspolczynniki regresji, i jak juz mowilem wykresem nie jest linia prosta a lamana :/ i nei wiem dlaczego, z gory dziekuje za pomoc! Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.