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); }
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(); }