示例#1
0
        public static List <PuntoMedio> puntoMedio2(string expresion, string solucionAnalitica,
                                                    double a, double b, double h, double x0, double y0)
        {
            List <PuntoMedio> listaPuntoMedio = new List <PuntoMedio>();
            PuntoMedio        puntoMedio      = null;
            int    iteracion   = 0;
            double xi          = x0;
            double k1          = 0;
            double xi2         = 0;
            double y0i         = 0;
            double k2          = 0;
            double ypuntoMedio = y0;
            double yt          = 0;
            double errorGlobal = 0;

            while (xi < b)
            {
                if (iteracion == 0)
                {
                    xi          = x0;
                    ypuntoMedio = y0;
                    puntoMedio  = new PuntoMedio(iteracion, xi, k1, xi2, y0i, k2, ypuntoMedio, yt, errorGlobal);
                    listaPuntoMedio.Add(puntoMedio);
                }
                else
                {
                    k1  = calcularK(expresion, xi, ypuntoMedio);// revisar calcular despues
                    y0i = ypuntoMedio + (1.0 / 2.0) * k1 * h;
                    xi += h;
                    xi2 = xi + (1.0 / 2.0) * h;
                    k2  = calcularK(expresion, xi2, y0i);

                    ypuntoMedio = ypuntoMedio + k2 * h;
                    yt          = evaluarFuncion(solucionAnalitica, xi);
                    errorGlobal = yt - ypuntoMedio;

                    puntoMedio = new PuntoMedio(iteracion, xi, k1, xi2, y0i, k2, ypuntoMedio, yt, errorGlobal);
                    listaPuntoMedio.Add(puntoMedio);
                }
                iteracion += 1;
            }

            return(listaPuntoMedio);
        }
示例#2
0
        private void AceptarPuntoMedio_Click(object sender, EventArgs e)
        {
            if (this.Owner != null)
            {
                this.Owner.Hide();
            }

            bool directo = rbDirecta.Checked;

            if (!rbDirecta.Checked && !rbPasoAPaso.Checked)
            {
                return;
            }
            PuntoMedio puntomedio = new PuntoMedio(directo);

            puntomedio.Size = new Size(1392, 703);
            puntomedio.Show();
            puntomedio.Owner = this.Owner;
            this.Hide();
        }