Главная страница
Навигация по странице:

  • 2 Отделение корней.

  • 3 Ручной расчёт.

  • 4.1 Программный код

  • 4.2 Результаты расчёта при точности E = 0.01, E =0.001, E = 0.0001

  • 4.3 Схемы алгоритма для процедур программы 1)

  • 4.4 Результаты расчёта на ПК

  • Численные методы. 1 Лаборторная работа ЧМ. Методы решения нелинейных уравнений


    Скачать 281.48 Kb.
    НазваниеМетоды решения нелинейных уравнений
    АнкорЧисленные методы
    Дата28.02.2023
    Размер281.48 Kb.
    Формат файлаdocx
    Имя файла1 Лаборторная работа ЧМ.docx
    ТипЛабораторная работа
    #959271


    Федеральное агентство связи Ордена

    Трудового Красного Знамени

    федеральное бюджетное образовательное учреждение высшего образования

    «Московский Технический Университет Связи и Информатики»

    (МТУСИ)

    Кафедра Информатики

    Предмет: Вычислительные модели

    Лабораторная работа № 1

    Тема:

    «Методы решения нелинейных уравнений»


    Вариант 00

    Выполнил:

    Проверил(а): Величайший преподаватель

    _________________

    Москва 0000

    1 Задание

    1. Выбрать индивидуальное задание по указанию преподавателя из табл. 1.2-1:

    · нелинейное уравнение;

    · метод решения нелинейного уравнения для «ручного расчета»;

    · метод решения нелинейного уравнения для «расчета на ПК».

    2. Отделить корни уравнения.

    3. Провести исследование нелинейного уравнения для его решения.

    · проверить выполнение условий сходимости вычислительного процесса, в случае расходящегося процесса – сделать необходимые преобразования для обеспечения сходимости;

    · выбрать начальное приближение;

    · сформулировать условия окончания этапа уточнения корня.

    4. Провести «ручной расчет» трех итераций.

    5. Оценить погрешность результата «ручного расчета».

    6. Составить схему алгоритма, написать программу для решения нелинейных уравнений для «расчета на ПК» и провести контрольное тестирование программы, воспользовавшись исходными данными и результатами примера из п.п.1.2-1.5.

    7. Решить нелинейное уравнение с точностью , воспользовавшись написанной программой для «расчета на ПК».

    8. Построить зависимость числа итераций от заданной точности –n(E).

    1.Индивидуальное задание: (уравнение, методы решения).



    t4– хорд ,p1-половинное деление

    t – номер метода для «расчета на ПК»; p– номер метода для «ручного расчета». Номера методов: 1 – половинное деление;2 – итерации;3 – Ньютона; 4 – хорд.

    2 Отделение корней.

    Произведем отделение корней при помощи программы MathCad 15.



    На интервале [-0,5;-0,3] функция имеет один корень, поэтому мы можем использовать этот интервал для расчётов и в этом случае f’(x) и f”(x) непрерывны и знакопостоянны и f(-0,5)*f(-0,3)<0

    3 Ручной расчёт.



    Произведем ручной расчёт методами половинного деления, итераций и Ньютона при помощи программы Microsoft Excel.



    Погрешность после 3 итераций равно



    Правая часть этой формулы в нашем случае будет равна 0.025

    Исходя из этого, можно утверждать, что корень уравнения X после трех итераций методом половинного деления лежит в промежутке

    -0,3625±0.025


    4 Расчёт на ПК.


    4.1 Программный код.

    Option Strict On

    Option Explicit On

    Imports System.Math

    Public Class Form1

    Sub vvod(ByRef x As Double, ByVal t As TextBox)

    x = Val(t.Text)

    End Sub

    Sub vivod(ByVal x As Double, ByRef t As TextBox)

    t.Text = CStr(x)

    End Sub

    Sub vivodint(ByRef x As Integer, ByVal t As TextBox)

    t.Text = CStr(x)

    End Sub

    Function f(ByVal x As Double) As Double 'наша функция f(x)=x-sin(1/x)

    Dim fx As Double

    fx = x - Sin(1 / x)

    Return fx

    End Function

    Sub Hord_Iteraci(ByVal a As Double, ByVal b As Double,_

    ByVal ee As Double, ByRef xn As Double, ByRef fnx As Double, ByRef n As Integer, ByRef lb As ListBox)

    Dim x, fx, l As Double

    Dim s As String = ""
    s = "N" + Space(18) + "x" + Space(27) + "f(x)" +_ Space(18) + "E,погрешность" + vbNewLine

    lb.Items.Add(s)

    xn = a 'подвижная точка

    x = b 'неподвижная точка

    fx = f(x) 'Значение f(b)

    fnx = f(xn) 'Значение f(a)

    Do

    l = xn 'x(n)

    n = n + 1

    xn = xn - (fnx / (fx - fnx)) * (x - xn) 'x(n+1)

    fnx = f(xn) 'f(x(n+1)

    s = Format(n, "00") + Space(10) + Format(xn,_ "0.000000") + Space(14) + Format(fnx, "0.000000") +_ Space(14) + Format(Abs(xn - l), "0.000000") + vbNewLine

    lb.Items.Add(s)
    Loop Until Abs(xn - l) < ee
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As_ System.EventArgs) Handles Button1.Click

    Dim a, b As Double 'границы отрезка

    Dim ee, xn, fnx As Double

    Dim n As Integer = 0

    ListBox1.Items.Clear()

    vvod(a, TextBox1) 'подвижная точка "в нашем случае это а"

    vvod(b, TextBox2) 'неподвижная точка "в нашем случае это b"

    vvod(ee, TextBox3) ' погрешность

    Hord_Iteraci(a, b, ee, xn, fnx, n, ListBox1) 'процедура метод Хорд

    vivod(xn, TextBox4) 'Значения корня x

    vivod(fnx, TextBox5) 'Значение функции при корне f(x)

    vivodint(n, TextBox6) 'количество итераций

    End Sub

    End Class

    4.2 Результаты расчёта при точности E = 0.01, E=0.001, E = 0.0001

    При погрешности 0,01



    При погрешности 0,001



    При погрешности 0,0001



    4.3 Схемы алгоритма для процедур программы

    1)схема процедуры-подпрограммы Hord_Iteraci (),

    вычисления корня методом хор



    2)схема процедура-функция: для вычисления значений нашей функции «x-sin(1/x)»



    4.4 Результаты расчёта на ПК



    4 5 Зависимость числа итераций от точности в логарифмическом масштабе

    E

    0.01

    0.001

    0.0001

    n(E)

    3

    5

    7





    написать администратору сайта