Курсовая работа: Решение уравнений и интерполяция функций

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

y=x.*exp(x)-2.*exp(x);

figure(1);

plot (x,y,'b');

hold on;

axis ([-10 10 -10 10]);

xlabel ('x');

ylabel ('y');

grid on;

title ('Итераций');

%----Uravnenie----%

eps = 0.001; %tochnost

x0 = -4; % nachalnoe priblijenie

iter = 0; %schetchik

x = x0;

razn = 100; %nachalnoe znachenie

while abs(razn)>eps

xn = x+(x*exp(x)-2*exp(x))/(-20);

razn=xn-x;

x=xn;

iter=iter+1;

end

disp(x);

disp(iter);

disp(razn);

Листинг 1 - Код программы решения нелинейного уравнения методом простых итераций. Лист 1

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

График функции нелинейного уравнения (12) представлен на рисунке 4.

Рисунок 4 - График нелинейной функции y = x ex - 2 ex

Из рисунка 4 видно, что график функции монотонен [1:3.5], точек разрыва нет.

Точный результат работы программы представлен на рисунке 5. В данном случае итерационный процесс сходится; корень уравнения x = 1.9988 найден с заданной точностью е=0.001 за 248 итерацию, погрешность решения составляет ?6.9317e-004.

Рисунок 5 - Результат работы программы

1.4 Решение нелинейного уравнения методом Ньютона

Нелинейное уравнение (вариант 9):

a) выполнить приблизительную оценку корней предложенного уравнения с помощью системы Matlab или с графической программой Advanced Grapher;

б) с помощью программы Matlab уточнить один из корней первого уравнения вида f (x)=0 с точностью е = 10-3, выбрав подходящий отрезок для построения графической иллюстрации работы метода Ньютона;

Код программы решения нелинейного уравнения (13) методом Ньютона в Matlab представленный ниже указывает подходящий отрезок для определения корня графическим способом, а также выводит расчеты для нахождения точного результата с заданной точностью.

x=-10:0.1:-0.1;

y=3*sin(x) + 2.5;

figure(1);

plot(x,y,'b');

axis([-5 0 -2 2]);

xlabel('x');

ylabel('y');

grid on;

title ('Ньютон');

% ---- Uravnenie ---- %

eps=0.001;

kmax=50;

x=-2;

[F F1]=fun1(x);

[x1,D]=Newton(x,F,F1);

k=0;

while (abs(D)>eps)&&(k<kmax)

x=x1;

[F F1]=fun1(x);

[x1,D]=Newton(x,F,F1);

k=k+1;

disp(x1);

end

disp('Root:');

disp(x1);

disp('Number of iterations:');

disp(k);

Листинг 2 - Код программы решения нелинейного уравнения методом Ньютона. Лист 1

function [ x1, D ] = Newton(x, F, F1)

D=-F/F1;

x1=x+D;

end

function [F F1] = fun1(x)

F=3*sin(x) + 2.5; %расчет ф-ции

if nargout>1

F1= 3*cos(x); %1 производная

end

Листинг 2 - Код программы решения нелинейного уравнения методом Ньютона. Лист 2

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

Более подходящая область рассмотрения графика для приблизительной оценки корня представлена на рисунке 9.

Рисунок 9 - График нелинейного уравнения y =

Точный результат работы программы представлен на рисунке 10. Корень уравнения x = -2.1565 найден с заданной точностью е=0.001 за 2 итерации.

Рисунок 10 - Результат работы программы

Были рассмотрены два метода решения нелинейных уравнений: Ньютона и простых итераций.

Метод простой итерации является одним из простейших численных методов решения уравнений. Метод основан на принципе сжимающего отображения, который применяется к численным методам.

Метод Ньютона - это итерационный численный метод нахождения корня заданной функции. Метод обладает квадратичной сходимостью, может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства. Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации.