| |||||||
| Registracija | FAQ | Lista korisnika | Kalendar | Pretraži | Današnje Poruke | Označi forume pročitanima | Online igre |
| Računala Raspravljate o temi Linearna regresija u C++- u u Tehnologija i Tehnika forumu; Problem je u tome što sam trebao riješiti linearnu regresiju u C++-u i nasao sam neki program koji ... |
![]() |
| | Opcije Teme |
| | #1 (permalink) |
| Cobo Datum registracije: 11-11-05 Lokacija: BikiniLand Godina: 22
Poruka: 12,942
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Linearna regresija u C++- u Problem je u tome što sam trebao riješiti linearnu regresiju u C++-u i nasao sam neki program koji ok radi, ali moram to jos nekako izvesti na drugaciji nacin tako da jedan dio maknem i dodam drugi koji bi se odnosio na upisivanje podataka iz file-a. Konkretno koliko mi je receno trebao bi maknuti ovaj dio izmedju deklariranja x-a i y-a i tu di pocnije deklariranje ovih suma Sx,Sy itd.Na tom mjestu bi nekako trebao izvesti da se ti podaci upisuju iz file-a(navodno trebaju doci 2 for petlje i nesto sa fulaz.open, fulaz.close. Evo ovaj konkretni program koji radi ali ga treba modficirat, koliko sam zapamtio mislim da bi taj dio programa trebalo izbaciti koji sam pocrvenio.Ako je netko ovo sve skuzio i moze pomoci neka pls pomogne, hvala ![]() #include <iostream.h> int main(void) { double x[20],y[20]; int n = 6; x[0] = 2.; x[1] = 4.; x[2] = 4.5; x[3] = 6.; x[4] = 8.5; x[5] = 9.; y[0] = 11.; y[1] = 14.; y[2] = 13.; y[3] = 16.; y[4] = 19.; y[5] = 23.; double Sx,Sy,Sxx,Sxy,det; int i; Sx=0.; Sy=0.; Sxx=0.; Sxy=0.; for(i=0;i<n;i++) { Sx=Sx+x[i]; Sy=Sy+y[i]; Sxx=Sxx+x[i]*x[i]; Sxy=Sxy+x[i]*y[i]; } det=n*Sxx-Sx*Sx; double a0=(Sy*Sxx-Sxy*Sx)/det; double a1=(n*Sxy-Sx*Sy)/det; cout<<a1<<"x + "<<a0<<"\n"; return 0; } |
| | |
| | #3 (permalink) |
| Moderator Foruma Datum registracije: 12-05-05 Lokacija: Zagreb, Trnje Godina: 22
Poruka: 4,668
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Re: Linearna regresija u C++- u fale ti vitičaste iz maina i printf-a, problem je u učitavanju iz datoteke sa harda, ja radim u C-u, ne znam C++, ne znam ni jel se razlikuje šta...
__________________ Od danas ću svaki dodir čuvati za tebe, svaki poljubac za tvoje usne i svaki san da budem s tobom i kad to ne mogu. |
| | |
| | #4 (permalink) |
| Cobo Datum registracije: 11-11-05 Lokacija: BikiniLand Godina: 22
Poruka: 12,942
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Re: Linearna regresija u C++- u Imam neke vrijednosti u tablici za x i y i njihov upis mora biti nekako izveden direktno iz fajla a ne onako di sam pocrvenio na proslom primjeru.Navodno bi mogao uzeti kod iz ovoga programa (crveno) i malo ga modificirati i nekako uklopiti unutra a to neznam kako. /*********************************************** * Program GAUSOVA NAIVNA ELIMINACIJA * * * * * ***********************************************/ #include "iostream.h" #include "math.h" #include "fstream.h" //*********************************************************************** int main(void) { // Deklaracija varijabli ************************************************* int n, status, SOLVED=0,NMAX=20,i,k,j; double a[20][20],c[20],x[20],sum,faktor,SMALL=1e-8; ifstream fulaz; ofstream fizlaz; // Unos podataka ********************************************************* fulaz.open("gauulaz.txt"); // Unos broja jednadžbi fulaz >> n; // Unos elemenata matrice sustava po redovima for(i=0;i<n;i++) { for(j=0;j<n;j++) { fulaz >> a[i][j]; } } // Unos vektora riješenja for(i=0;i<n;i++) { fulaz >> c[i]; } fulaz.close(); // Gausova metoda ************************************************************** // Eliminacija unaprijed******** for(k=0;k<(n-1);k++) { for(i=k+1;i<n;i++) { faktor=a[i][k]/a[k][k]; for(j=k+1;j<n;j++) { a[i][j]=a[i][j]-faktor*a[k][j]; } c[i]=c[i]-faktor*c[k]; } } // Supstitucija unatrag********* for(i=n-1;i>=0;i=i-1) { sum=0.; if(i!=n-1) { for(j=i+1;j<n;j++) { sum=sum+a[i][j]*x[j]; } } x[i]=(c[i]-sum)/a[i][i]; } status=SOLVED; // Ispis rezultata ********************************************************** fizlaz.open("gaurjes.txt"); if (status == SOLVED) { for(i=0;i<n;i++) { fizlaz <<x[i]<<"\n"; } } fizlaz.close(); return 0; } |
| | |
![]() |
| Tagovi: linearna, regresija |
« NetMeeting
|
Prodaja domena »
| Broj korisnika koji trenutno prate ovu Temu: 1 (0 članova i 1 gosta) | |
| Opcije Teme | |
| |
Trenutno vrijeme na forumu: 02:49.











