Реализация приближенного метода решения уравнения - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Риализация приближенного метода решения уравнения средствами VB. (првоести отделение корней графически на форме, и уточнить корни методом половинного деления X^6-2x^5+3x-8=0)

Решение задачи: «Реализация приближенного метода решения уравнения»

textual
Листинг программы
Public Class Form3
    Private ww, hh As Integer
    Private xy() As PointF
    Private isLoad As Boolean
    Private pn0, pn2 As Pen
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        With PictureBox1
            ww = .Width / 2
            hh = .Height / 2
            .BorderStyle = BorderStyle.FixedSingle
            .BackColor = Color.White
        End With
        pn0 = New Pen(Brushes.Black, 1)
        pn2 = New Pen(Brushes.Red, 1)
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        isLoad = True
        Dim ff = Function(x) x ^ 6 - 2 * x ^ 5 + 3 * x - 8
        Dim stp As Double = 0.2
        ReDim xy(4 / stp)
        Dim i As Integer
        For xx = -2 To 2 Step stp
            xy(i) = New PointF(xx, ff(xx))
            i += 1
        Next
        PictureBox1.Invalidate()
    End Sub
    Private Sub PictureBox1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        If Not isLoad Then Exit Sub
        Dim k As Integer = 20
        Dim g As Graphics = e.Graphics
        g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
        g.TranslateTransform(ww, hh)
        g.ScaleTransform(1, -1)
        'оси координат
        g.DrawLine(pn0, New Point(0, hh), New Point(0, -hh))
        g.DrawLine(pn0, New Point(-ww, 0), New Point(ww, 0))
        'отметки на осях
        Dim ax() As Point = {New Point(-2, 0), New Point(-1, 0), New Point(1, 0), New Point(2, 0)}
        Dim ay(19) As Point
        Dim t As Integer = 1
        For i = 0 To ay.Length / 2 - 1
            ay(i) = New Point(0, -t)
            ay(i + ay.Length / 2) = New Point(0, t)
            t += 1
        Next
        'масштабирование
        Dim mm As New Drawing2D.Matrix
        mm.Scale(k, k, Drawing2D.MatrixOrder.Append)
        mm.TransformPoints(xy)
        mm.TransformPoints(ax)
        mm.TransformPoints(ay)
        'отметки на осях
        Dim ss As Integer = 5
        For i = 0 To ax.Length - 1
            g.DrawLine(pn0, ax(i), New Point(ax(i).X, ax(i).Y + ss))
        Next
        For i = 0 To ay.Length - 1
            g.DrawLine(pn0, ay(i), New Point(ay(i).X + ss, ay(i).Y))
        Next
        'кривая
        g.DrawLines(pn2, xy)
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5
Похожие ответы