- •Оглавление
- •Реализация в Excel
- •Численные методы решения нелинейных уравнений
- •Постановка задачи
- •Шаговый метод
- •Метод деления отрезка пополам
- •Метод касательных (Ньютона)
- •Метод хорд
- •Метод простой итерации
- •Численные методы решения определенных интегралов
- •Постановка задачи
- •Метод левых прямоугольников
- •Метод правых прямоугольников
- •Метод центральных прямоугольников
- •Метод трапеций
- •Метод парабол (Симпсона)
- •Метод Эйлера
- •Численные методы решения дифференциальных уравнений
- •Постановка задачи
- •Метод Эйлера
- •Метод Рунге-Кутты 4-го порядка
- •Метод Рунге-Кутты 5-го порядка
- •Метод Адамса
- •Метод прогонки
- •Погрешность результата численного решения задач
- •Задание 1-a
- •Задание 1-b
- •Задание 1-c
- •Задание 1-d
- •Задание 1-e
- •Задание 1-f
- •Задание 2
- •Метод сопряженных градиентов
- •Решение нелинейных уравнений
- •Решение определенных интегралов
- •Формулы Ньютна – Котесса
- •Метод Гаусса
- •Метод Тейлора
- •Решение обыкновенных дифференциальных уравнений
- •Метод Эйлера
- •Метод Рунге-Кутты 4-го порядка
- •Метод Рунге-Кутты 5-го порядка
- •Метод Адамса
- •Прогонка
- •Вывод:
- •Список литературы
Реализация в MAX I M A
MAXIMA - это система для работы с символьными и численными выражениями. Для работы с данной средой необходимо установить пакет MAXIMA. Для того, чтобы
написать файл c исходным кодом для MAXIMA нужно:
1. В любом текстовом редакторе написать код программы;
2.Задать расширение файла “.m a c”;
3.Открыть командный интерпретатор w M a x i m a ;
4.Выполнить в открывшейся командной строке команду : lo a d (“pa t h ”),
где p at h – полный путь до файла с кодом программы плюс имя файла с расширением
“.m a c ” (например: loa d (“C :/lab a 3/so p r g r a d .m a c ”)).
Погрешность результата численного решения задач
Задание 1-a
Определить число верных знаков приближённого числа, если известна абсолютная погрешность:
x=1.609, Ax=0.1*10-2;
Файл 1a.mac:
getRightDigits(w, Ax, x) := block([n:0, m:0], x:abs(x),
while x>=1 do( x:x/10, n:n+1
), n:n-1,
while Ax <= (w*(10.0)^(n-m+1)) do( m:m+1
), m:m-1
)$
print("<Finding number of right digits>")$ x : read("Please, enter x: ")$
Ax : read("Enter Absolute miss: ")$ w : read("Enter omega[0.5 ... 1]: ")$
print("Number of right digits: ", getRightDigits(w, Ax, x));
Рис. 4. Результат задания 1.a.
Задание 1-b
Определить число верных десятичных знаков приближённого числа, если известна абсолютная погрешность:
x=0.06666, Ax=0.5*10-3
Файл 1b.mac:
print("<Finding number of right decimal digits>"); x : read("Please, enter x: ");
Ax : read("Enter Absolute miss: "); w : read("Enter omega[0.5..1]: ");
getRightDecDigits(w, Ax, x) := block([n:0, m:0], x:abs(x),
while x < 1 do( x : x * 10, n : n - 1
),
while Ax <= (w * (10.0)^(n - m + 1)) do( m : m + 1
),
m : m - 2 - n
)$
print("Number of right decimal digits: "); print(getRightDecDigits(w, Ax, x));
Рис. 5. Результат задания 1.b.
Задание 1-c
Определить абсолютную погрешность числа, если известно число верных знаков: x=1.72916, m=3.
Файл 1c.mac:
print("<Finding Absolute miss:>"); x : read("Please, enter x: ");
m : read("Enter number of right digits: "); w : read("Enter omega[0.5...1]: ");
getAbsMiss(x, m, w) := block([out:0.0, n:0.0], x : abs(x),
while x >= 1 do ( x : x / 10, n : n + 1
),
n : n - 1,
out : w * (10.0)^(n - m + 1)
)$
print("Absolute miss: "); print(getAbsMiss(x, m, w));
Рис. 6. Результат задания 1.c.
Задание 1-d
Найти абсолютную погрешность, если известна относительная: x=0.377766, δ x = 0.5%
Файл 1d.mac:
print("<Finding Absolute miss>"); x : read("Please, enter number: ");
relatemis : read("Please, enter Relative miss [0...100]: "); print("X = ", x);
print("Relative miss: ", relatemis); print("Absolute miss: ", abs(x) * relatemis / 100);
Рис. 7. Результат задания 1.d.
Задание 1-e
Найти относительную погрешность, если известна абсолютная: x=32.61516, Ax=0.11*10-2
Файл 1e.mac:
print("<Finding Relative miss>"); x:read("Please, enter number: "); print("X = ", x);
absolutemis:read("Please, enter Absolute miss: ");
print("Absolute miss: ", absolutemis); print("Relative miss: ", 100 * absolutemis / abs(x));
Рис. 8. Результат задания 1.e.
Задание 1-f
Найти абсолютную погрешность функции, если известны абсолютные погрешности аргументов: Ax=0.5*10-3, Ay=0,5*10-2.
Файл 1f.mac:
Ax : 0.0005;
Ay : 0.005;
print("<Finding misses of z(x,y) = exp(x)/y>"); print("Ax = ", Ax);
print("Ay = ", Ay);
x : read("Please, enter x: "); y : read("Enter y: "); print("Absolute miss of z: ");
print(Ax*abs(exp(x)/y)+Ay*abs(-exp(x)/(y*y)));
Рис. 9. Результат задания 1.f.
Задание 2
|
Найти сумму ряда с точностью до ε=0,0001. |
||||
∞ |
(3n + 1)2 |
|
|
||
å |
|
|
|
|
|
(4n |
2 |
− 1) |
2 |
|
|
n = 1 |
|
|
|
||
Файл 2.mac:
print("Series with common term: F(n) = "); print("((3*i + 1)^2)/((4*i*i - 1)^2)"); i:1.0;
f1:((3.0*i + 1)^2)/((4.0*i*i - 1.0)^2);
