Рефетека.ру / Информатика и програм-ие

Курсовая работа: Решение прикладных задач методом дихотомии

Кафедра

информатики и вычислительной информатики


Дисциплина «ИНФОРМАТИКА»


ОТЧЕТ

по курсовой работе


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


Москва 2009 г.

ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ


Вариант № 11.


Часть 1

Использование численных методов решения нелинейных уравнений, используемых в прикладных задачах.


Для выполнения 1 части необходимо:

Составить программу и рассчитать значение функции в левой части нелинейного уравнения для решения задачи отделения корней;

Составить логическую схему алгоритма, таблицу идентификаторов и программу нахождения корня уравнения методом дихотомии и методом Ньютона;

Ввести программу в компьютер ,отладить, решить задачу с точностью ε=0.0001 и вывести результат;

Предусмотреть в программе вывод на экран дисплея процесса получения корня.


Уравнение: Решение прикладных задач методом дихотомии, [1,2];

Метод численного решения: метод дихотомии,метод хорд.


Решение.


Метод дихотомии


1. Этот метод позволяет отыскать корень уравнения f(Решение прикладных задач методом дихотомии)=0 с любой наперед заданной точностью ε.

Предполагается,что искомый корень уравнения уже отделен,т.е. указан отрезок [ a ; b ] непрерывности функции f(x) такой,что на концах этого отрезка функция принимает различные значения.

Суть метода в том, что [ a ;b ] делится пополам.Половина, где нет корня отбрасывается, а другая делиться на два.

1-й Шаг. Вычисление середины отрезка


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


Если f(Решение прикладных задач методом дихотомии)=0, то мы нашли точный корень уравнения.

Если f(Решение прикладных задач методом дихотомии) · f(x0)<0, то Решение прикладных задач методом дихотомии находится в интервале [Решение прикладных задач методом дихотомии] следовательно Решение прикладных задач методом дихотомии; Решение прикладных задач методом дихотомии

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


2-й Шаг. Вычисление середины отрезка


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


Если f(Решение прикладных задач методом дихотомии)=0, то мы нашли точный корень уравнения.

Если f(Решение прикладных задач методом дихотомии· f(x1)<0 , то Решение прикладных задач методом дихотомии ; Решение прикладных задач методом дихотомии

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


n-ый Шаг. Вычисление середины отрезка

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

Если f(Решение прикладных задач методом дихотомии)=0, то мы нашли точный корень уравнения.

Если f(Решение прикладных задач методом дихотомии·f(xn)<0 , то Решение прикладных задач методом дихотомии ; Решение прикладных задач методом дихотомии

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

Условием нахождения корня является:


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

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


2. Нелинейное уравнение и условие его решения:


Решение прикладных задач методом дихотомии, [1,2], ε = 0,0001;


3. График функции:

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

4. Схема алгоритма:


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

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


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


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

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

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

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

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

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

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

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


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

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

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


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


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


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


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

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

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

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


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

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

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

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

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

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

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

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


5. Таблица идентификаторов:


Обозначение Идентификатор Тип
n n int

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

a double

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

b double

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

eps double
x x double
f(x) f(x) double

6. Листинг программы:


#include<stdio.h>

#include<math.h>

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)<0) b=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. График функции:


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

Таблица идетификаторов:

Обозначение Идентификатор Тип
n n int

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

a double

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

b double

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

eps double
x x double
f(x) f(x) double

6. Листинг программы:

#include<stdio.h>

#include<math.h>

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) направление касательной к искомой интегральной кривой


k0=y'(x0)=f(x0,y0)


Отрезок интегральной кривой, соответствующий xРешение прикладных задач методом дихотомии(x0,x1), x1=x0+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 , соответствующее точке: хnn-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


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<stdio.h>

#include<math.h>

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<=2;i++)

{ s=0;y=1;

fprintf(file,"h(%i)=%lf\n",i,h[i]);

for(x=0;x<=x_max;x+=h[i])

{

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 С позволяет обрабатывать программы ,записанные на языке С++ .Для программирования циклических алгоритмов были использованы операторы организации циклов с параметрами, решение использует форматируемый вывод и оператор присваивания, а также использовались операторы вызова функций. Чем больше шаг, тем точнее вычисления.

Похожие работы:

  1. Решение прикладных задач численными методами
  2. • Производная и ее применение для решения прикладных ...
  3. • Поиск максимума одной функции многих переменных ...
  4. • История развития прикладного программного обеспечения
  5. • По решению прикладных задач на языке FRED
  6. •  ... редактора excel для решения прикладных статистических задач
  7. • Гео-информационные системы и эпидемии гриппа
  8. •  ... обеспечения для решения прикладных задач в области ...
  9. • Применение обобщенного метода Фурье в задаче полого волновода ...
  10. • Принципы разработки алгоритмов и программ для решения ...
  11. • Построение математических моделей при решении задач ...
  12. • Основы инженерной психологии
  13. • Использование информационных технологий при решении ...
  14. • Связь математики с другими учебными дисциплинами ...
  15. • Блочно-симметричные модели и методы проектирования ...
  16. • Управление учебным процессом в колледже в период внедрения ...
  17. • Лингвистика
  18. • Разработка програмного обеспечения для расчёта ...
  19. • Оптимальные решения
Рефетека ру refoteka@gmail.com