Exemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            var duomenys = File.ReadAllLines("matrica.txt");
            var a_input  = duomenys[0];
            var b_input  = duomenys[1];
            var c_input  = duomenys[2];
            var d_input  = duomenys[3];

            var a_converted = Array.ConvertAll(a_input.Split(' '), Double.Parse);
            var b_converted = Array.ConvertAll(b_input.Split(' '), Double.Parse);
            var c_converted = Array.ConvertAll(c_input.Split(' '), Double.Parse);
            var d_converted = Array.ConvertAll(d_input.Split(' '), Double.Parse);

            var triistrizaine = new TriistrizainesSistemosSprendimoLogika(a_converted, b_converted, c_converted, d_converted);

            if (triistrizaine.ArKonvergavimoSalygosTenkinamos())
            {
                var ats = triistrizaine.PerkeltiesMetodas();
                MessageBox.Show("Atsakymas: " + string.Join("\t", ats));
            }
            else
            {
                MessageBox.Show("Konvergavimo salygos netenkinamos!");
            }
        }
        public List <double> SprestiSistema()
        {
            double[] a_values = new double[Funkcija.Points.Count];
            double[] b_values = new double[Funkcija.Points.Count];
            double[] c_values = new double[Funkcija.Points.Count];
            double[] d_values = new double[Funkcija.Points.Count];

            a_values[0] = 0;
            a_values[Funkcija.Points.Count - 1] = 0;

            c_values[0] = 0;
            c_values[Funkcija.Points.Count - 1] = 0;

            b_values[0] = 1;
            b_values[Funkcija.Points.Count - 1] = 1;

            d_values[0] = 0;
            d_values[Funkcija.Points.Count - 1] = 0;

            for (int i = 1; i < Funkcija.Points.Count - 1; i++)
            {
                a_values[i] = 1;
                b_values[i] = 4;
                c_values[i] = 1;
                d_values[i] = (6 * ((Funkcija.Points[i + 1].Y - 2 * Funkcija.Points[i].Y + Funkcija.Points[i - 1].Y) / (Math.Pow(Funkcija.h, 2))));
            }


            _triistrizaine = new TriistrizainesSistemosSprendimoLogika(a_values, b_values, c_values, d_values);
            u_values       = _triistrizaine.PerkeltiesMetodas();
            return(u_values);
        }