Klasa główna programu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Aproksymacja {
class Program {
static List<Punkt> punkty = new List<Punkt>()
{
new Punkt(1, 3), new Punkt(2, 4), new Punkt(3, 5), new Punkt(4, 6)
}; static void Main(string[] args)
{ Macierz macierz = GenerujMacierz(punkty); Console.WriteLine("{0} {1}\n{2} {3}", macierz.zawartosc[0, 0], macierz.zawartosc[0, 1], macierz.zawartosc[1, 0], macierz.zawartosc[1, 1]); Console.WriteLine("a: {0}, b: {1}", macierz.wektorWyrazowWolnych[0], macierz.wektorWyrazowWolnych[1]);
double[] wynik = macierz.Gausse();
Console.WriteLine("a: {0}, b: {1}", wynik[0], wynik[1]); Console.ReadLine();
} static Macierz GenerujMacierz(List<Punkt> punkty)
{
int ilosc = punkty.Count;
double[,] tymczasowaMacierz = new double[2, 2];
double[] tymczasowyWektor = new double[2];
double sumaX = 0;
double sumaPowX = 0;
double sumaY = 0;
double sumaXY =0; foreach(Punkt punkt in punkty)
{ sumaX += punkt.x; sumaPowX += punkt.x* punkt.x; sumaY += punkt.y; sumaXY += punkt.x* punkt.y;
}
Console.WriteLine(sumaX); Console.WriteLine(sumaY); Console.WriteLine(sumaPowX); Console.WriteLine(sumaXY);
tymczasowaMacierz[0, 0]= ilosc; tymczasowaMacierz[0, 1]= sumaX; tymczasowaMacierz[1, 0]= sumaX; tymczasowaMacierz[1, 1]= sumaPowX; tymczasowyWektor[0]= sumaY; tymczasowyWektor[1]= sumaXY; return new Macierz(2, tymczasowyWektor, tymczasowaMacierz);
}
}
}
Klasa punktu
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Aproksymacja {
public class Punkt {
public double x;
public double y; public Punkt(double x, double y)
{
this.x= x;
this.y= y;
}
}
}
Klasa macierzy jest taka sama jak w dziale Eliminacji Gaussa