



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
metodo newton raphson.... en visual basic
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




ESCUELA SUPERIOR DE INGENIERÍA Y ARQUITECTURA ACADEMIA DE SISTEMAS
CODIGO FUENTE: Public Class Form 'Puntos de la grafica de la función Dim Puntos(29, 1) As Double Dim n As Integer = 60 / 2 - 1 'Eje x Dim x(,) As Double = {{-2, 0}, {2, 0}} Dim n1 As Integer = x.Length / 2 - 1 'eje Y Dim y(,) As Double = {{0, -4}, {0, 4}} Dim n2 As Integer = y.Length / 2 - 1 Dim iter, imax As Integer 'Declaración de variables Dim xrold, xr, xi, er, dfxi, fxi, x0, tol As Double Function NewtonR(ByVal xi) As Double imax = 20 'incremento(max) iter = 1 'iteracion tol = Val(TxtTolerancia.Text) 'tolerancia Do While iter <= imax xrold = xr fxi = Math.Cos(xi) - (xi ^ 3) 'calculando dfxi = -Math.Sin(xi) - (3 * (xi ^ 2)) If dfxi = 0 Then MsgBox("La derivada f'(x)=0, no se puede realizar el calculo", MsgBoxStyle.Critical) Exit Do End If xr = xi - (fxi / dfxi) If xr <> 0 Then er = Math.Abs((xr - xrold) / xr) '* 100 End If xi = xr 'Actualiza x inicial Dim lvi As ListViewItem = Me.LVmetodoNWRP.Items.Add(iter) lvi.SubItems.Add(xr) 'Impresión de resultados en listview lvi.SubItems.Add(er) lvi.SubItems.Add(fxi) lvi.SubItems.Add(dfxi) iter = iter + 1 If er <= tol Then Exit Do End If If Not er <= tol And iter > imax Then MsgBox("El metodo fracaso despues de " & iter & " iteracion(es)", MsgBoxStyle.Critical) End If Loop NewtonR = xr Call Inicializar_puntos() End Function
ESCUELA SUPERIOR DE INGENIERÍA Y ARQUITECTURA ACADEMIA DE SISTEMAS
'Coordenadas de pantalla xpMin = 0 + margen xpMax = PictureBox1.Height - margen ypMin = 0 + margen ypMax = PictureBox1.Height - margen a = (xpMax - xpMin) / (xmMax - xmMin) c = (ypMax - ypMin) / (ymMax - ymMin) b = xpMin - a * xmMin d = ypMin - c * ymMin For i = 0 To n iCoordPant(i, 0) = CInt(a * Puntos(i, 0) + b) iCoordPant(i, 1) = CInt(c * Puntos(i, 1) + d) Next For i = 0 To n iCoordPantx(i, 0) = CInt(a * x(i, 0) + b) iCoordPantx(i, 1) = CInt(c * x(i, 1) + d) Next For i = 0 To n iCoordPanty(i, 0) = CInt(a * y(i, 0) + b) iCoordPanty(i, 1) = CInt(c * y(i, 1) + d) Next dibujo.TranslateTransform(0, ypMax) dibujo.ScaleTransform(1, -1) For i = 0 To n - 1 dibujo.DrawLine(lapiz, iCoordPant(i, 0), iCoordPant(i, 1), iCoordPant(i + 1, 0), iCoordPant(i + 1, 1)) Next For i = 0 To n1 - 1 dibujo.DrawLine(lapiz, iCoordPantx(i, 0), iCoordPantx(i, 1), iCoordPantx(i + 1, 0), iCoordPantx(i + 1, 1)) Next For i = 0 To n1 - 1 dibujo.DrawLine(lapiz, iCoordPanty(i, 0), iCoordPanty(i, 1), iCoordPanty(i + 1, 0), iCoordPanty(i + 1, 1)) Next End Sub Public Function xMin() As Double Dim i As Integer Dim min As Double min = Puntos(0, 0) For i = 1 To n If Puntos(i, 0) < min Then min = Puntos(i, 0) End If Next Return min End Function Public Function yMin() As Double
ESCUELA SUPERIOR DE INGENIERÍA Y ARQUITECTURA ACADEMIA DE SISTEMAS
Dim i As Integer Dim min As Double min = Puntos(0, 1) For i = 1 To n If Puntos(i, 1) < min Then min = Puntos(i, 1) End If Next Return min End Function Public Function xMax() As Double Dim i As Integer Dim max As Double max = Puntos(0, 0) For i = 1 To n If Puntos(i, 0) > max Then max = Puntos(i, 0) End If Next Return max End Function Public Function yMax() As Double Dim i As Integer Dim max As Double max = Puntos(0, 1) For i = 1 To n If Puntos(i, 1) > max Then max = Puntos(i, 1) End If Next Return max End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNEVAL.Click x0 = Val(TXTXinicial.Text) Call NewtonR(x0) End Sub Protected Overrides Sub Finalize() MyBase.Finalize() End Sub End Class