close

Вход

Забыли?

вход по аккаунту

?

Отчёт (3)

код для вставкиСкачать
Московский Технический Университет Связи и Информатики
Лабораторная работа по теме
"Методы решения нелинейных уравнений"
Выполнил студент БСТ1201:
Александров Г.Д
Москва
2013 г.
1. Задание для решения нелинейных уравнений:
* Уравнение: x-cos(x/3)=0
* Метод решения нелинейных уравнений для ручного расчета: Хорд
* Метод решения нелинейных уравнений для расчета на ПК: половинного деления
2. Отделение корней:
.
f(0)*f(1) < 0, первая и вторая производные на отрезке [0; 1] знакопостоянны.
Следовательно, x-cos(x/3) = 0 имеет единственный корень на отрезке [0;1]
3. Исследование задания для "ручного расчёта"
Проверка выполнения условий сходимости.Для сходимости метода необходимо знаково постоянство на отрезке [a;b]. ′′f(x) Выбор начального приближения. виде рекуррентной формулы зависит от того, какая из точек a или b является неподвижной. Неподвижен тот конец отрезка [a;b] , для которого знак функции f(x)совпадает со знаком ее второй производной. Тогда второй конец отрезка можно принять за начальное приближение к корню, то есть точку х0. Рекуррентная формула метода хорд (1.2.3-13) в [2]: Где х- неподвижная точка. X(n+1)=X(n)-f(xn)/(f(x)-f(xn))*(x-xn), Выше было показано, что для функцииf(x)=x-cos(x/3) <0 на отрезке [0;1]неподвижной точкой является точка x=b=1, так как f(x)′′⋅f(1)>0
Таким образом, полагая x0=a=0, получим сходящуюся последовательность приближений к корню. В рассматриваемой задаче рекуррентная формула принимает следующий вид X(n+1)=X(n)-f(xn)/(f(x)-f(xn))*(x-xn)
Условие окончания процесса уточнения корня. Оценку погрешности можно проводить по любой из формул (1.2.3-15 или 1.2.3-16) в [2]. 4. "Ручной расчёт" трёх итераций
Представим вычисления в виде следующей таблицы:
nxkf(xk)00210.948-2.675*10^-320.95-6.34*10^-630.95-1.502*10^-8
5. Погрешность численного решения нелинейных уравнений
Погрешность результата, вычисленного методом хорд, оцениваем по формуле 1.2-3-15 в [2]. Тогда после трех итераций
6. Схема алгоритма расчёта на ПК
Метод расчёта: половинного деления
7. Программа расчёта на ПК
Язык программирования: C++
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <iostream>
using namespace std;
double f(double x)
{
// Вернуть значение исследуемой функции
return x-cos(x/3);
}
double reshenie(double a, double b, double e, int& n)
{
/*
Найти корень уравнения f(x) = 0
на отрезке [a; b] с точностью e.
Вернуть найденный корень и кол-во
итераций по ссылке.
*/
n = 0;
while (abs(a-b)/2 > e)
{
double c = (a+b)/2;
if (f(a)*f(c) < 0)
b = c;
else
a = c;
n++;
}
return (a+b)/2;
}
void main()
{
// Основная функция. Организует решение
// задачи и вывод результатов.
setlocale(LC_ALL, "rus");
const int A = 0;
const int B = 1;
printf("Уточнение корня уравнения x-cos(x/3) = 0 на отрезке [%i; %i]:\n",
A, B);
for (int i = 2; i < 5; i++)
{
int n;
double e = 0.1*pow(10.0, 1-i);
double x = reshenie(A, B, e, n);
printf(" x = %f (f(x) = %f, e = %g, n = %i);\n", x, f(x), e, n);
}
cout << "Чтобы выйти, нажмите любую клавишу.";
_getch();
}
8. Результаты расчёта на ПК
Enxf(x)0.0160.945313-0,0054520.00190.497070-0,0000630.0001130.4979860,000004
9. Погрешность результата расчёта на ПК
EПогрешность0.010.00574150.0010.00085950.00010.0000565
10. Зависимость числа итераций от точности в логарифмическом масштабе
Документ
Категория
Рефераты
Просмотров
11
Размер файла
86 Кб
Теги
отчет
1/--страниц
Пожаловаться на содержимое документа