Реферат по предмету "Информатика"


Решение прикладных задач методом дихотомии

Кафедра
информатики и вычислительной информатики
Дисциплина «ИНФОРМАТИКА»
ОТЧЕТ
по курсовой работе
Тема: «Решение прикладных задач методом дихотомии »
Москва 2009 г.
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Вариант № 11.
Часть 1
Использование численных методов решения нелинейных уравнений, используемых в прикладных задачах.
Для выполнения 1 части необходимо:
Составить программу и рассчитать значение функции в левой части нелинейного уравнения для решения задачи отделения корней;
Составить логическую схему алгоритма, таблицу идентификаторов и программу нахождения корня уравнения методом дихотомии и методом Ньютона;
Ввести программу в компьютер, отладить, решить задачу с точностью ε=0.0001 и вывести результат;
Предусмотреть в программе вывод на экран дисплея процесса получения корня.
Уравнение: />, [1,2];
Метод численного решения: метод дихотомии, метод хорд.
Решение.
Метод дихотомии
1. Этот метод позволяет отыскать корень уравнения f(/>)=0 с любой наперед заданной точностью ε.
Предполагается, что искомый корень уравнения уже отделен, т.е. указан отрезок [ a; b ] непрерывности функции f(x) такой, что на концах этого отрезка функция принимает различные значения.
Суть метода в том, что [ a ;b ] делится пополам.Половина, где нет корня отбрасывается, а другая делиться на два.
1-й Шаг. Вычисление середины отрезка
/>
Если f(/>)=0, то мы нашли точный корень уравнения.
Если f(/>) · f(x0) находится в интервале [/>] следовательно />; />
Иначе />
2-й Шаг. Вычисление середины отрезка
/>
Если f(/>)=0, то мы нашли точный корень уравнения.
Если f(/>· f(x1); />
Иначе />
n-ый Шаг. Вычисление середины отрезка
/>
Если f(/>)=0, то мы нашли точный корень уравнения.
Если f(/>·f(xn); />
Иначе />
Условием нахождения корня является:
/>
/>
2. Нелинейное уравнение и условие его решения:
/>, [1,2], ε = 0,0001;
3. График функции:
/>
4. Схема алгоритма:
/>

/>

/>/>

/>

/>

/>

/>

/>

/>

/>

/>/>

/>/>/>

/>/>/>/>

/>

/>/>

/>/>

/>

/>/>

/>/>

/>/>/>/>

/>

/>/>

/>/>

/>/>/>/>

/>

/>/>

/>/>

/>/>/>/>

/>/>
--PAGE_BREAK--
5. Таблица идентификаторов:
Обозначение
Идентификатор
Тип
n
n
int
/>
a
double
/>
b
double
/>
eps
double
x
x
double
f(x)
f(x)
double
6. Листингпрограммы:
#include
#include
double f(double x)
{
return 0.25*(pow(x,3))+x-1.2502;
}
int main(void)
{
int n=0;
double x,a=0.,b=2.,eps=0.0001;
while (fabs(a-b)>2*eps)
{
x=(a+b)/2,
n++;
printf(«step=%3i x=%11.8lf f(x)=%11.8lf\n»,n,x,f(x));
if (f(x)==0)
{
printf(«Tothnii koreni x=%lf\nkolithestvo iteratsii n=%i\n»,x,n);
return 0;
}
else if (f(a)*f(x)
else a=x;
}
printf(«Reshenie x=%11.8lf pri Eps=%lf\nkolithestvo iteratsii n=%i\n»,x,eps,n);
return 0;
}
7. Листинг решения:
step= 1x= 1.50000000f(x)=-0.21392288
step= 2x= 1.25000000f(x)=-0.00893133
step= 3x= 1.12500000f(x)= 0.08982692
step= 4x= 1.18750000f(x)= 0.04080796
step= 5x= 1.21875000f(x)= 0.01602415
step= 6x= 1.23437500f(x)= 0.00356738
step= 7x= 1.24218750f(x)=-0.00267680
step= 8x= 1.23828125f(x)= 0.00044659
step= 9x= 1.24023438f(x)=-0.00111478
step= 10 x= 1.23925781f(x)=-0.00033401
step= 11 x= 1.23876953f(x)= 0.00005631
step= 12 x= 1.23901367f(x)=-0.00013885
step= 13 x= 1.23889160f(x)=-0.00004127
Reshenie x= 1.23889160 pri Eps=0.0001
kolithestvo iteratsii n=13
Метод хорд:
1. Этот метод заключается в том, что к графику функции проводится хорда. Находим точку пересечения с осью OX и опускаем из этой точки прямую параллельную OY. Из точки пе-ресечения прямой и графика проводим хорду и операция повторяется до тех пор, пока точка пересечения хорды с осью OX не приблизиться к корню функции до заданной погрешности.
Шаг первый:
/>
Нас интересует точка пересечения с осью ОХ.
Сделаем допущение: х=x1
y=0
Введем обозначение
/>x0
f(/>)=f(x0)
Подставим в уравнение
/>
Отсюда
x1=x0-/>
Шаг второй:
x2=x1-/>
Для n-го шага:
xn=xn-1-/>
Условием нахождения корня является: />
2. Нелинейное уравнение и условие его решения:
/>, [1,2], ε = 0,0001;
3. График функции:
/>
Таблица идетификаторов:
Обозначение
Идентификатор    продолжение
--PAGE_BREAK--
Тип
n
n
int
/>
a
double
/>
b
double
/>
eps
double
x
x
double
f(x)
f(x)
double
6. Листингпрограммы:
#include
#include
double f(double x)
{
return (0.25*(pow(x,3)))+x-1.2502;
}
int main(void)
{
int n=0;
double x,a=1.,b=2.,eps=0.0001,xn;
xn=a;
while (fabs(xn-x)>eps)
{
x=xn;
n++;
xn=x-f(x)*(b-x)/(f(b)-f(x));
printf(«step=%3i x=%11.8lf f(x)=%11.8lf\n»,n,xn,f(xn));
}
printf(«pribligennoe znathenie x=%lf pri Eps=%lf\nkolithestvo iterasii n=%i\n»,xn,eps,n);
return 0;
}
7. Листинг решения:
step= 1 x= 1.22334934 f(x)= 0.01236182
step= 2 x= 1.23796144 f(x)= 0.00070219
step= 3 x= 1.23879055 f(x)= 0.00003951
step= 4 x= 1.23883720 f(x)= 0.00000222
pribligennoe znathenie x=1.238837 pri Eps=0.0001
kolithestvo iterasii n=4
Анализ результатов:


метод дихотомии
метод хорд
значение корня
1.23889160
1.23883720
значение функции
-0.00004127
0.00000222
количество итераций
13
4
Вывод: Метод дихотомии прост в реализации, но обладает малой скоростью сходимости по сравнению с методом хорд, что выражается в количестве шагов. Метод хорд к тому же обладает большей точностью.
Часть 2
Решение дифференциального уравнения.
Вариант №11.
Метод Эйлера
1.Математическое описание
/>
Геометрический смысл метода Эйлера состоит в следующем: дифференциальное уравнение определяет в точке (x0,y0) направление касательной к искомой интегральной кривой
k=y'(x)=f(x,y)
Отрезок интегральной кривой, соответствующий x/>(x,x1), x1=x+h заменяется участком касательной с угловым коэффициентом k. Найденная точка (x1,y1) используется в качестве нового начального условия для уравнения y(x1)=y1, в ней вновь вычисляется угловой коэффициент поля направлений и процедура повторяется.
На n-ом шаге имеем точку (xn-1,yn-1), задающую начальное условие для уравнения:
y(xn-1)=yn-1
Уравнение определяет угловой коэффициент касательной к интегральной кривой в этой точке
/>
Соответствующее уравнение касательной:y-yn-1=k(x-xn-1)
Отсюда получаем значение х=хn, соответствующее точке: хn=хn-1+h,
А именно: yn-yn-1=kn-1(xn-1+h-xn-1), или
yn=yn-1+h·kn-1
yn=yn-1+h·f(xn-1,yn-1)
Полученная формула является основной расчетной формулой метода Эйлера.
Процесс вычислений заканчивается, когда аргумент после очередного приращения выйдет за пределы исследуемого отрезка />.
2. Дифференциальное уравнение:
/>x0= 0, y0 = 1, xmax=1, Δx = 0.01; 0.005; 0.001    продолжение
--PAGE_BREAK--
3. Схема алгоритма:
/>

/>

/>

/>

/>

/>

/>/>/>/>

/>

/>

/>/>

/>/>

/>/>/>

/>/>

/>

/>

/>/>

/>

/>

/>/>

/>

/>

/>/>

/>

/>

/>/>

5. Таблица идентификаторов:
Обозначение
Идентификатор
Тип
s
s
int
i
i
int
x
x
double
xmax
x_max
double
x1
x1
double
Δx/>
h[i]
double
y
y
double
d
d
double
f(x)
f(x)
double
k
k(x,y)
double
6. Листинг программы:
#include
#include
double k(double x,double y )
{
return ((x/exp(x*x))-2.*x*y);
}
double f(double x)
{
return ((1./exp(x*x))*(1+x*x/2.));
}
int main(void)
{
int s,i;
double x,x1,x_max=1,y,d;
double h[3]={0.01,0.005,0.001};
FILE*file;
file=fopen(«result.txt»,«w+»);
for (i=0;i
{ s=0;y=1;
fprintf(file,«h(%i)=%lf\n»,i,h[i]);
for(x=0;x
{
s++;
x1=x+h[i];
y=y+k(x,y)*h[i];
d=y-f(x1);// y- pribl. f(x)- tochnoe
printf(" step =%4.i x=%6.4lf y=%6.4lf yt=%6.4lf d=%10.8lf\n",s,x1,y,f(x1),d);
fprintf(file," step =%4.i x=%10.8lf y=%10.8lf yt=%10.8lf d=%10.8lf\n",s,x1,y,f(x1),d);
}
}
fclose(file);
return 0;
/>
/>
/>
/>
/>
/>
Вывод: Интегрированная среда Visual С позволяет обрабатывать программы, записанные на языке С++.Для программирования циклических алгоритмов были использованы операторы организации циклов с параметрами, решение использует форматируемый вывод и оператор присваивания, а также использовались операторы вызова функций. Чем больше шаг, тем точнее вычисления.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Методы комплексной оценки хозяйственно финансовой деятельности
Реферат Экономика и менеджмент внутрифирменных структур
Реферат Манифест систем объектно-ориентированных баз данных
Реферат Методика преподавания процентов
Реферат Сценарий рекламного ролика пива Budweiser
Реферат Понятие статистики
Реферат О становлении и этапах развития валютного рынка Вьетнама
Реферат Педагогические условия развития детей раннего возраста
Реферат Зовнішньоекономічна діяльність ВАТ Nadiya
Реферат Культуры Древнего Востока
Реферат Эмоциональные реакции на ситуацию по формуле АВС
Реферат Перыядычны друк як спецыфічная сістэма гістарычных крыніц
Реферат Адаптивное управление гидроагрегатами гэс с поворотно-лопастными турбинами
Реферат Река играет
Реферат "Методы оценки управленческого персонала в организации"