Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания к лабораторным работам по дисциплине Вычислительная математика.DOC
Скачиваний:
195
Добавлен:
01.05.2014
Размер:
930.3 Кб
Скачать

Лабораторная работа № 2

  1. В работе предлагается, используя подпрограммы-функции BISECT иRoundиз файлаmethods.cpp(файл заголовковmethods.h, директорияLIBR1), исследовать обусловленность задачи нахождения корня уравнениядля линейной функции. Значения функцииследует вычислить приближенно с точностьюDelta, варьируемой в пределах от0.1 до0.000001.

  2. Порядок выполнения лабораторной работы.

  3. 1) Графически или аналитически отделить корень уравнения, т. е. найти отрезки(Left, Right),на которых функция удовлетворяет условиям применимости метода бисекции (см. 3.1 и 3.2).

  4. 2) Составить подпрограмму вычисления функции для параметровc иd, вводимых с клавиатуры. Предусмотреть округление вычисленных значений функции, используя подпрограмму-функциюRound, с точностьюDelta, также вводимой с клавиатуры.

  5. 3) Составить головную программу, вычисляющую корень уравнения с заданной точностьюEpsи содержащую обращение к подпрограммеподпрограммам-функциямBISECT, Roundи представление результатов.

  6. 4) Провести вычисления по программе, варьируя значения параметровc (тангенс угла наклона прямой),Eps(точность вычисления корня) иDelta(точность задания исходных данных).

  7. 5) Проанализировать полученные результаты и обосновать выбор точностиEpsвычисления корня. Сопоставить полученные теоретические результаты с экспериментальными данными.

  8. Значение параметра dвыбирается каждым студентом самостоятельно и согласовывается с преподавателем.

  9. Текст программы для исследования обусловленности задачи нахождения корня уравнения представлен далее.

  10. #include <math.h>

  11. #include <stdio.h>

  12. #include <stdlib.h>

  13. #include <methods.h>

  14. #include <conio.h>

  15. double delta,c,d;

  16. void main()

  17. {

  18. int k;

  19. long int s;

  20. float a1,b1,c1,d1,eps1,delta1;

  21. double a,b,eps,x;

  22. double F(double);

  23. printf("Введите eps:");

  24. scanf("%f",&eps1);

  25. eps = eps1;

  26. printf("Введите c:");

  27. scanf("%f",&c1);

  28. c = c1;

  29. printf("Введите d:");

  30. scanf("%f",&d1);

  31. d = d1;

  32. printf("Введите a:");

  33. scanf("%f",&a1);

  34. a = a1;

  35. printf("Введите b:");

  36. scanf("%f",&b1);

  37. b = b1;

  38. printf("Введите delta:");

  39. scanf("%f",&delta1);

  40. delta = delta1;

  41. x = BISECT(a,b,eps,k);

  42. printf("x=%f k=%d\n",x,k);

  43. }

  44. double F(double x)

  45. {

  46. extern double c,d,delta;

  47. double s;

  48. long int S;

  49. s = c*(x - d);

  50. if( s/delta < 0 )

  51. S = s/delta - .5;

  52. else

  53. S = s/delta + .5;

  54. s = S*delta;

  55. s = Round( s,delta );

  56. return(s);

  57. }

3. Решение нелинейных уравнений

  1. Задача нахождения корней нелинейных уравнений вида (где- некоторая непрерывная функция) встречается в различных областях инженерной и научной деятельности[1-10].Нелинейные уравнения делятся на два класса - алгебраические и трансцендентные. Алгебраическими называются уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные). Уравнения, которые содержат другие функции (тригонометрические, показательные, логарифмические и т. п.), называются трансцендентными.

  2. Методы решения нелинейных уравнений подразделяются на прямые и итерационные. Прямые методы позволяют записать корни в виде некоторого конечного соотношения. Такие методы для решения ряда трансцендентных, а также простейших алгебраических уравнений известны из школьного курса алгебры. Однако встречающиеся на практике уравнения не всегда удается решить столь простыми методами. Для их решения применяются итерационные методы, при которых алгоритм нахождения корня уравнения в общем случае включает два этапа:

  3. - нахождение приближенного значения корня или содержащего его отрезка;

  4. - уточнение приближенного значения до некоторой заданной степени точности.