Определение корня нелинейного уравнения методом Ньютона

Страницы работы

2 страницы (Word-файл)

Содержание работы

Задание 2б

Выполнить пример для цикла Do  .. Loop (из лекции)

Составить алгоритм решения квадратного уравнения, составить программу, с использованием операторов условного перехода (домашнее задание), набрать программу, выполнить с различными коэффициентами уравнения.

Определение корня нелинейного уравнения методом Ньютона

-  метод касательной, в методе последовательных приближений   (итераций)

Пример использования цикла Do-Loop While при нахождении корня уравнения f(x)=0 методом Ньютона. В программе решается уравнение . За начальное приближение к корню взято число 3, а корень вычисляется с точностью до 0,00001. Найденное значение корня с помощью метода ActiveCell выводится в активную ячейку.

Option Explicit

Function FF(x As Double) As Double

    FF = x ^ 2 - 2

End Function

Function DFF(x As Double) As Double

         DFF = x * 2

End Function

Sub MN()

Const Eps = 0.00001

Dim x0, x As Double

x = 3

Do

x0 = x

x = x - FF(x) / DFF(x)

Loop While Abs(x - x0) > Eps

ActiveCell.Value = x

End Sub

Более сложный пример ....окна ввода вывода

Выполните упражнения из лекции по разделу:

Область действия переменных, (констант), процедур и функций

Уровень процедуры

Не видны за пределами процедуры, где определены

Пример:

1.  Всавьте новый модуль в проект

2.  Введите:

Sub Macro1()

Dim x As Integer

x = 10

MsgBox "x имеет значение в Macro1 = " & x

'the next line runs Macro2

Macro2

End Sub

Sub Macro2()

MsgBox "x, имеет значение в Macro2 = " & x

End Sub

3.  выполните Macro1

4.  ОК, ОК

Уровень модуля (выше всех процедур)

-  Если определить переменную, как Public, она будет доступна для всех макросов (подпрограмм) проекта

-  Если определить переменную, как dim, private – только внутри модуля, где объявлена

Уровень проекта

Выполните:

1.  Сохраните и закройте все раб. Книги, откройте новую

2.  Выведите окно редактора VBA

3.  Вставьте модуль и введите программу:

Public x As Integer

Sub Macro_1a()

x = 10

MsgBox x

Macro_1b

End Sub

Sub Macro_1b()

x = x * 2

MsgBox x

Macro2

End Sub

4.  Вставьте другой модуль и наберите:

Sub Macro2()

x = x * 3

MsgBox x

End Sub

5.  Выполните Macro_1a  в первом модуле

6.  Объясните результат

7.  Измените объявление в первом модуле

Public x As Integer на

Dim x As Integer

8.  Снова выполните Macro_1a и Объясните результат

9.  Замените

Dim x As Integer на

Private x As Integer

Результат будет тем же

Массивы. Сортировка.

Похожие материалы

Информация о работе

Предмет:
Информатика
Тип:
Контрольные работы
Размер файла:
31 Kb
Скачали:
0