Курсовая работа: Решение математических задач с помощью алгоритмического языка Turbo Pascal, Microsoft Excel, пакета MathCAD и разработка программ в среде Delphi
Задание 4. Решение нелинейного уравнения
Задача нахождения корней нелинейных уравнений вида F (x) =0 встречается в различных областях научных исследований. Нелинейные уравнения можно разделить на два класса - алгебраические и трансцендентные. Алгебраическими уравнениями называются уравнения, содержащие только алгебраические функции. Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.) называются трансцендентными.
По условию задачи уравнение cosx-x+4=0 является трансцендентным. Поэтому для нахождения корней будем использовать приближённые методы вычисления (метод касательных и метод половинного деления).
Существуют различные итерационные методы решения трансцендентных уравнений. Наиболее известные: метод касательных, метод половинного деления, метод хорд, комбинированный метод хорд и касательных, метод итераций и т.д.
Метод половинного деления отрезка пополам является одним из простейших методов нахождения корней нелинейных уравнений. Метод довольно медленный, однако он всегда сходится, т.е. при использовании решение получается всегда, причём с заданной точностью. Требуемое обычно большее число итераций по сравнению с некоторыми другими методами не является препятствием к применению этого метода, если каждое значение функции несложно.
Метод касательных или метод Ньютона. В этом методе каждой итерации объём вычислений больший, чем в ранее рассмотренном методе половинного деления, поскольку приходится находить не только значение функции F (x), но и значения её производных. Однако скорость сходимости здесь значительно выше, чем в предыдущем методе.
Решение нелинейного уравнения в среде пакета MathCAD
По условию задачи данное нелинейное уравнение является трансцендентным. Для нахождения корней этого уравнения воспользуемся функцией root.
Решение трансцендентных уравнений методом касательных
program kasatelnie;
uses crt;
label 20;
var a,b,E,U,D,x: real;
function f (x: real): real;
begin
f: =u*u*u-7*u-7;
end;
function f1 (x: real): real;
begin
f1: =3*x*x-10;
end;
function f2 (x: real): real;