Lineær regression
hejsa - siden jeg fik så god hjælp sidste gang, kunne jeg godt tænke mig at spørge om noget andet :)Jeg er i igang med at lave en program i c++ der kan udregne simple lineær funktioner vha numerisk regression. Det gøres ved nogen punkter man selv vælger (også antallet af dem).
Til det skal man lave en værdi der ganger det ene x koordinat med den ene y kordinat og plusser med de andre .. altså således
x_1*y_1+x_2*y_2+x_3*y_3+x_4*y_4 ..... dog kan jeg slet ikke få det til at virke. Nedenfor kan i se det kode jeg har nu, jeg har ikke indtastet mit forsøg for at lave det jeg spørger om, da det failede totalt :)
#include <cstdlib>
#include <iostream>
#include <sstream>
using namespace std;
int kontrol(string);
int main(int argc, char *argv[])
{
int antalPunkter = kontrol("Indtast antallet af punkter");
float punkter[antalPunkter*2];
for(int i = 0; i < antalPunkter*2; i++)
{
char type;
if(i % 2 == 0)
{
type = 'x';
}
else
{
type = 'y';
}
cout << "Indtast " << i/2+1 << ". koordinats " << type << "-vaerdi";
punkter[i] = kontrol("");
}
system("PAUSE");
float middelvaerdix = 0;
float middelvaerdiy = 0;
for(int i = 0; i < antalPunkter*2; i++)
{
if(i % 2 == 0)
{
middelvaerdix += punkter[i];
}
if(i % 2 != 0)
{
middelværdiy += punkter[i];
}
}
cout << "middelværdi for x'erne = " << middelvaerdix/(antalPunkter) << endl;
cout << "middelværdi for y'erne = " << middelvaerdiy/(antalPunkter) << endl;
system("PAUSE");
return EXIT_SUCCESS;
}
int kontrol(string opgave) {
bool fejl;
int tal = 0;
string input;
do {
fejl = false;
cout << opgave << endl;
cin >> input;
stringstream ss(input);
if((ss >> tal).fail()) // Hvis strengen ikke er et gyldigt tal.
{
cout << endl << "Det indtastede er ikke gyldigt. Proev venligst igen." << endl;
fejl = true;
}
if(tal < 2) // Hvis tallet er for lille.
{
cout << endl << "Det indtastede tal er for hoejt. Proev venligst igen." << endl;
fejl = true;
}
} while(fejl);
return tal;
}