Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otchet1_1__1.docx
Скачиваний:
10
Добавлен:
23.03.2016
Размер:
973.49 Кб
Скачать

Министерство науки и образования РФ ФГБОУ ВПО "Казанский Национальный Исследовательский Технологический Университет" Кафедра химической кибернетики

Отчет по численным методам

В среде Excel Visual Basic

Казань 2014.



Выполнил: студент гр. 1131-71 Балякова Ф.

Магсумова Д.

Проверила: доцент КХК Нуруллина Е. Н.

\

Алгебраические трансцендентные уравнения

Дана функция f = 2 * x + Log(2 * x + 3) / Log(10) - 1:, на интервале [-3;3]

x

fn1

-3

#ЧИСЛО!

-2

#ЧИСЛО!

-1

-3

0

-0,522878745

1

1,698970004

2

3,84509804

3

5,954242509

Находим в столбце переход с положительного числа на отрицательный или наоборот и параллельно в столбце А находим новый участок [a;b]. В нашем случае будет: [0;1].

метод

x

fx

n

пол.дел

0,22998

-0,00097

10

кас.

0,23041

-2,5E-07

3

хорд.

0,230412

4,27E-06

3

 

 

 

 

Доказательство:

Метод половинного деления.

Дана монотонная, непрерывная функция f(x), которая содержит корень на отрезке [a,b], где b>a. Определить корень с точностью ε, если известно, что f(a)*f(b)<0, е=0.001. Поделим отрезок пополам. Получим точку  и два отрезкаи два отрезка

.

Решение задачи в Visual Basic:

Function f(x)

f = 2 * x + Log(2 * x + 3) / Log(10) - 1

End Function

Sub пол_дел1()

a = 0

b = 1

E = 0.001: n = 0

Do

x = (a + b) / 2

f1 = f(a)

f2 = f(x)

If f1 * f2 > 0 Then

a = x

Else: b = x

End If

n = n + 1

Loop While Abs(b - a) > E

x = (a + b) / 2

Worksheets("Уравнение1").Range("G12").Value = x

Worksheets("Уравнение1").Range("H12").Value = f(x)

Worksheets("Уравнение1").Range("I12").Value = n

End Sub

Чисто итераций при использовании этого метода значительна и поэтому сходимость ее “медленная”. При этом при любой ширине отрезка ab сходимость гарантирована.

Метод прост своей реализацией.

Метод касательных

Дана функция f(x), необходимо найти точку х, лежащую на отрезке [a;b] и превращающую функцию в ноль.

В качестве начального приближения ( выбираем точку b, то есть x0=b, через точку P1 с координатами (x0;f(x0) ) проводим к функции касательную. Пересечение касательной с осью ОХ дает точку второго приближения х1, через точку P2 с координатами (х1;f(х1)). Вновь стоим касательную к функции. Поучаем точку следующего приближения и так далее, пока не выполниться критерий окончания.

Критерий окончаний. Разница по модулю между последующим и предыдущим приближением должна стать меньше заданной точности: .

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

Function f(x)

f = x ^ 3 + x - 3

End Function

Sub kasat1()

x = 1

E = 0.001: n = 0

h = 0.1

Do

pr = (f(x + h) - f(x)) / h

x1 = x - (f(x) / pr)

c = Abs(x1 - x)

x = x1

n = n + 1

Loop While c > E

Worksheets("Уравнение").Range("H13").Value = x

Worksheets("Уравнение").Range("I13").Value = f(x)

Worksheets("Уравнение").Range("J13").Value = n

End Sub

Метод хорд

В этом методе не линейная функция f(x) на интервале [a;b] заменяется линейной, в качестве которой берется хорда, то есть прямая, стягивающая концы не линейной функции. Через точки с координатами (a, f(a))=a и(b,f(b))=b проводим хорду. Находим точку ее пересечения с осью ОХ. Точку х1 принимаем за новую границу интервала, в котором находится корень. Следующую хорду проводим через точку а1 с координатами (х1; F(x1)) и

b(b; f(b)) и так далее, пока с заданной точностью не окажемся в точке х.

Критерием окончания процесса является тоже самый критерий, что и в методе касательных.

В данном методе один из концов интервала является подвижным, а другой неподвижным. Условие сходимости данного процесса является правильный выбор подвижного и неподвижного конца.

Должно выполняться условие: значение произведения функции на вторую производную функции должна быть < 0:.

Итерационная формула метода. Обозначаем первую точку подвижного конца , а неподвижногоP = B, тогда формула:

Function f(x)

f = x ^ 3 + x - 3

End Function

Sub hord1()

x = 0

p = 1

E = 0.001: n = 0

Do

x1 = x - (f(x) * (x - p)) / (f(x) - f(p))

c = Abs(x - x1)

x = x1

n = n + 1

Loop While c > E

Worksheets("Уравнение").Range("H14").Value = x

Worksheets("Уравнение").Range("I14").Value = f(x)

Worksheets("Уравнение").Range("J14").Value = n

End Sub

Вывод: С помощью этих программ можно решить как алгебраические, так и трансцендентные уравнения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]