METODO DE NEWTON
Enviado por carlos92acost • 2 de Junio de 2013 • 2.720 Palabras (11 Páginas) • 394 Visitas
Método de Newton
El algoritmo fue programado en Visual.net
El programa consiste en hallar las raíces de los polinomios de hasta tercer grado, dando como parámetros los coeficientes del polinomio, el valor a iniciar, y la tolerancia. Un esquema sería:
Ejercicio
Hallar una de las raíces del polinomio X3+2x2 +2x+3
Xi= valor inicial
Ea= tolerancia
La raíz es: -1.8105
Código del programa
namespace NewtonRaphson
{
public partial class Form1 : Form
{
public double[] vec=new double[10];//polinomio
public double[] vec1=new double[10];//polinomio derivada
double Xi,resp,Ea,grado,expo,eps;
int i;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnCalcular_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
int k;
vec[0] = Convert.ToDouble(txtX3.Text);
vec[1] = Convert.ToDouble(txtX2.Text);
vec[2] = Convert.ToDouble(txtX1.Text);
vec[3] = Convert.ToDouble(txtX0.Text);
Xi =Convert.ToDouble(txtXi.Text);
Ea=Convert.ToDouble(txtEa.Text);
//*** obtiene la derivada del polinomio ***
grado = 3;
expo = grado;
for (i = 0; i <= grado; i++)
{
vec1[i] = expo * vec[i];
expo--;
}
k = 0;
do
{
eps = Math.Abs(Evaluar1(Xi) / Evaluar2(Xi));
resp = Xi - Evaluar1(Xi) / Evaluar2(Xi);
listBox1.Items.Add(" " +k + " " + Xi);
k++;
Xi = resp;
} while (eps > Ea);
//*********
}
public double Evaluar1(double x)
{
double expo = grado;
double suma1 = vec[Convert.ToInt32(grado)];
for (i = 0; i < grado; i++)
{
suma1 += vec[i] * Math.Pow(x, expo);
expo--;
}
return suma1;
}
public double Evaluar2(double x)
{
double expo = grado-1;
double suma2 = vec1[Convert.ToInt32(grado-1)];
for (i = 0; i < grado-1; i++)
{
suma2 += vec1[i] * Math.Pow(x, expo);
expo--;
}
return suma2;
}
private void btnCerrar_Click(object sender, EventArgs e)
{
Close();
}
private void btnNuevo_Click(object sender, EventArgs e)
{
txtEa.Clear();
txtX0.Clear();
txtX1.Clear();
txtX2.Clear();
txtX3.Clear();
txtXi.Clear();
txtX3.Focus();
listBox1.Items.Clear();
}
}
}
Campos Vectoriales
El algoritmo fue programado en Visual Basic
El programa consiste en dibujar el campo vectorial dando puntos en el eje x y y en donde los parámetros son los coeficientes de la ecuación del campo vectorial, longitud del plano.
Ejercicio
Graficar el siguiente Campo Vectorial F= xi-yj
Código del programa
Public Delta As Integer
Dim VecX() As Integer
Dim VecY() As Integer
Public xmax As Integer, Ymax As Integer, i%
Public cx As Integer, cy As Integer
Dim ejex As Integer, ejey As Integer
Dim x As Double
Dim y As Double
Dim X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer
Dim a As Integer, b As Integer
Dim PuntoMax As Integer
Dim px As Integer, py As Integer
Dim Dista As Integer
Dim inicio As Boolean
Dim Npuntos As Integer
Private Sub CmdGraficar_Click()
Frame3.Enabled = True
inicio = False
xmax = Val(TxtXmax)
Ymax = Val(TxtYmax)
PuntoMax = xmax
If Ymax > xmax Then
PuntoMax = Ymax
End If
If PuntoMax > 20 Then
MsgBox ("Escala No debe ser mayor a 20")
Else
inicio = True
Select Case PuntoMax
Case 1 To 5
Delta = 70
xmax = 5
Dista = 10
Case 6 To 10
Delta = 60
xmax = 10
Dista = 8
Case 11 To 15
Delta = 50
xmax = 15
Dista = 6
Case 16 To 20
Delta = 40
...