- •Алгебраические трансцендентные уравнения
- •Системы линейных алгебраических уравнений.
- •Реализация в Visual Basic
- •Численное решение обыкновенных дифференциальных уравнений
- •1.Метод прямоугольников
- •2. Метод трапеции
- •3. Метод параболы
- •Оду. Численные методы решения обыкновенных уравнений
- •1.Метод Эйлера
- •2.Метод Рунге-Кутта
Министерство науки и образования РФ ФГБОУ ВПО "Казанский Национальный Исследовательский Технологический Университет" Кафедра химической кибернетики |
Отчет по численным методам |
|
В среде Excel Visual Basic |
|
|
Казань 2014. |
Выполнил: студент гр. 1131-71 Балякова Ф.
Магсумова Д.
Проверила: доцент КХК Нуруллина Е. Н.
\
Алгебраические трансцендентные уравнения
Дана функция f = 2 * x + Log(2 * x + 3) / Log(10) - 1:, на интервале [-3;3]
|
|
Находим в столбце переход с положительного числа на отрицательный или наоборот и параллельно в столбце А находим новый участок [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
Вывод: С помощью этих программ можно решить как алгебраические, так и трансцендентные уравнения.