Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка_курсовик_ИНФО_2010

.pdf
Скачиваний:
16
Добавлен:
09.02.2015
Размер:
1.4 Mб
Скачать

2. ПОСТАНОВКА ЗАДАЧИ

2.1. Варианты заданий курсовой работы

Вариант 1. Даны две функции: y1 (x) cos(x) и y2 (x) x .

Написать программу на языке MATLAB для нахождения методом последовательных приближений координаты x первой точки пересечения этих функций на интервале [0, ∞). Координатное значение определяется с заданной точностью (ε=0,001). Отобразить графически данные кривые в заданном диапазоне, включая точку пересечения.

Вариант 2. Даны две функции: y1 (x)

cos(x) и y2 (x)

x

 

3 .

 

Написать программу на языке MATLAB для определения количества

корней уравнения y1 (x) y2 (x) в интервале значений x [0, 6).

 

 

 

 

 

Вариант 3. Даны две функции: y1 (x)

 

и y2 (x)

 

 

 

 

3 . Написать

cos(x)

 

 

 

x

программу на языке MATLAB для определения количества корней уравне-

ния y1 (x) y2 (x) в интервале значений x [3, 10).

 

 

 

 

 

 

 

 

 

Вариант 4. Даны две функции: y1 (x)

 

и y2 (x)

 

 

 

 

3 . Написать

cos(x)

 

 

 

x

программу на языке MATLAB для определения максимального значения

наибольшей функции в интервале значений x [0, 7).

 

 

 

 

 

 

 

 

Вариант 5. Даны две функции: y1 (x)

 

и y2 (x)

 

 

 

 

3 . Написать

cos(x)

 

 

 

x

программу на языке MATLAB для определения разницы между максималь-

ным и минимальным корнем уравнения y1 (x)

y2 (x) интервале значений x [0,

10).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант 6. Даны две функции: y (x)

cos(x) и

y (x)

 

 

x

 

 

. Написать про-

 

 

 

 

1

 

 

2

100

 

 

 

 

 

 

 

 

 

 

 

 

грамму на языке MATLAB для определения величины интервала, в который

будут попадать первые 5 корней уравнения y1 (x)

y2 (x) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вариант 7. Даны две функции: y (x)

cos(x) и

y (x)

 

 

x

 

 

. Написать про-

 

 

 

 

 

1

 

 

2

100

 

 

 

 

 

 

 

 

 

 

 

 

грамму на языке MATLAB для определения разницы между значением (по модулю) функции в третьей точке пересечения и значением (по модулю) в первой точке пересечения кривых y1 (x) и y2 (x) .

Вариант 8. Определите, какие из данных функций будут пересекаться на заданном интервале: cos(x), tg(x), sin(x) на интервале [0;1].

Вариант 9. Определите, какие из данных функций x2-1, x , cos(x) будут пересекаться на интервале [0.5;2].

41

Вариант 10. Даны две функции: y1 (x) cos(x) и y2 (x) x . Написать программу на языке MATLAB для нахождения методом последовательных приближений координаты x первой точки пересечения этих функций на интервале [0, ∞). Координатное значение определяется с заданной точностью ( 0.001). Отобразить графически данные кривые в заданном диапазоне, включая точку пересечения.

Вариант 11. Даны две функции: y1 (x) cos(x) и y2 (x) x . Написать программу на языке MATLAB для определения количества корней уравнения y1 (x) y2 (x) в интервале значений x [2, 10). Если точек пересечения в заданном интервале не найдено – определить интервал (с точностью до произвольной заданной изначально погрешности), в котором будет найдет ко-

рень.

 

 

 

 

 

 

 

 

 

Вариант 12. Даны две функции: y1 (x)

cos(x) и y2 (x)

 

x 3 , y1 (x) sin(x) .

Написать программу на языке MATLAB для определения пары функций, ко-

торая будет иметь больше точек пересечения на интервале [3; 8].

Вариант 13. Даны две функции: y1 (x)

tg(x) и y2 (x)

lg(x 2) . Написать

программу на языке MATLAB для определения максимального значения

наибольшей функции в интервале значений x [3, 4).

 

 

 

Вариант 14. Даны две функции: y1 (x)

cos(x) и y2 (x)

lg(x 2) . Написать

программу на языке MATLAB для определения разницы между максималь-

ным и минимальным корнем уравнения y1 (x)

y2 (x) интервале значений x [2,

6].

 

 

 

Вариант 15. Даны две функции: y1 (x)

sin(x) и y2 (x)

 

3 . Написать

x

программу на языке MATLAB для определения величины интервала, в ко-

торый будут попадать первые 5 корней уравнения y1 (x) y2 (x) .

 

Вариант 16. Даны две функции: y1 (x)

sin(x) и y2 (x)

 

3 . Написать

x

программу на языке MATLAB для определения разницы между значением (по модулю) функции в третьей точке пересечения и значением (по модулю)

в первой точке пересечения кривых y1 (x) и y2 (x) .

 

 

 

 

 

 

 

Вариант 17. Определите, какие из данных функций

 

x 3 , log(x) 2 ,

cos(x) будут пересекаться на интервале [6; 10].

 

 

 

Вариант 18. Даны две функции: y1 (x) cos(x) и y2 (x)

sin(x) . Написать

программу на языке MATLAB для определения количества корней уравнения y1 (x) y2 (x) в интервале значений x [10, 30]. Если точек пересечения в

заданном интервале не найдено – определить интервал (с точностью до

42

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

Вариант 19. Даны две функции: y1 (x) Re(x 2i 4) и y2 (x) x 3 , y1 (x) sin(x) . Написать программу на языке MATLAB для определения пары функций, которая будет иметь больше точек пересечения на интервале [0;

5].

 

 

 

Вариант 20. Даны две функции: y1 (x)

tg(x)

и y2 (x)

lg(x 2) . Написать

программу на языке MATLAB для определения наименьшего значения наи-

большей функции в интервале значений x [9; 10].

 

 

Вариант 21. Даны две функции: y1 (x) sin(x)

и y2 (x)

lg(x 2) . Написать

программу на языке MATLAB для определения разницы между максималь-

ным и минимальным корнем уравнения y1 (x)

y2 (x) интервале значений x [4,

8].

 

 

 

2.2. Пример постановки задачи

В качестве примера задания к курсовой работе выбрана задача поиска корней системы уравнений:

y cos

x

 

 

P ,

y P x

где P - константа. Для поиска решения используется метод деления отрезка пополам (метод бисекции) – простейший численный метод для решения нелинейных уравнений метод последовательного приближения. Графически метод изображен на рис. 2.1.

1,5

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

P

x

Yc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Xc

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0,5

1

1,5

 

 

2

 

2,5

-0,5

 

 

 

 

x

 

 

 

 

 

 

 

 

 

y

cos

 

 

 

 

 

 

 

 

P

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.1. Графическая интерпретация решения системы уравнений

43

3. МЕТОД И АЛГОРИТМ РЕШЕНИЯ Метод бисекции или метод деления отрезка пополам — простейший

численный метод для решения нелинейных уравнений вида f(x)=0. Предполагается только непрерывность функции f(x). Поиск основывается на теореме о промежуточных значениях.

 

,

тогда

 

.

 

Следствие.

 

 

Пусть функция

, тогда если

, то

 

.

 

Таким образом, если мы ищем ноль, то на концах отрезка функция должна быть разных знаков. Разделим отрезок пополам и возьмѐм ту из половинок, для которой на концах функция по-прежнему принимает значения разных знаков. Если серединная точка оказалось искомым нулѐм, то процесс завершается.

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

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

Описание алгоритма

Задача заключается в нахождении корней нелинейного уравнения

Для начала итераций необходимо знать интервал [xL,xR] значений x, на концах которого функция принимает значения разных знаков:

Из непрерывности функции f и условия (2) следует, что на интервале [xL,xR] существует хотя бы один корень уравнения (в случае наличия нескольких корней метод приводит к нахождению одного из них)

Выберем точку внутри интервала

Если f(xM) = 0, то корень найден. Если разобьѐм этот интервал на два [xL,xM] и [xM,xR]. Теперь найдѐм новый интервал, в котором функ-

ция меняет знак. Пусть и соответственно корень находит-

44

ся внутри интервала [xL,xM]. Тогда обозначим xR=xM и повторим описанную процедуру до достижения требуемой точности. За количество итераций N первоначальный отрезок делится в 2N раз.

Поиск значения монотонной функции

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

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

Например, если длина массива равна 1023, после первого сравнения область сужается до 511 элементов, а после второй — до 255. Т.о. для поиска в массиве из 1023 элементов достаточно 10 сравнений.

Математическая модель поставленной задачи описывается двумя переменными величинами Х и Y, связанными между собой системой двух трансцендентных уравнений вида:

Y=COS(X/P)

Y=SQRT(P*X),

где P=Ng/(Ng+Ns) – параметр системы; Ng – номер учебной группы;

Ns – номер студента в группе.

Искомые значения переменных величин являются корнями системы уравнений и зависят также от значения параметра Р. Для решения задачи необходимо с заданной погрешностью eps=0,0001 определить корни системы уравнений.

Решение системы трансцендентных уравнений производится численно методом деления пополам корневого отрезка, содержащего корень Х. Исходные границы корневого отрезка X1, X2 находятся путем вычисления значений функций обоих уравнений для заданных значений аргумента с фиксированным шагом dX=0,1. Для каждого значения Х вычисляется разница значений функций обоих уравнений – dY. Два соседних знакопеременных значения dY1 и dY2 определяют соответствующие им X1 и X2.

45

Основная процедура заключается в том, что корневой отрезок делится пополам, находится значение Хс в средней точке и затем вычисляется соответствующее ему значение dYc. Абсолютная величина полученного значения сравнивается с заданной погрешностью eps=0,001 и в случае, когда abs(dYc) < eps, полученные значения Хс и Yc принимаются в качестве корней системы уравнений.

В случае, когда abs(dYc) > eps, dYc сравнивается с значениями dY1 и dY2 и из них выбирается то, которое отличается знаком от dYc. Одной из границ нового корневого отрезка становится значение Хс, другой либо Х1, либо Х2. Далее повторяется основная процедура до получения корней системы уравнений.

Количество повторов (шагов) основной процедуры зависит от заданной величины погрешности. Дополнительно исследуется зависимость количества шагов от значений погрешности eps=1.E-5 и eps=1.E-6.

46

4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Ниже приведен программный код в среде MATLAB для решения инженерной задачи, представленной в разделе 4:

%Y1=COS(X/P) %Y2=SQRT(P*X) %P=Ng/(Ng+Ns) Ng=2250; Ns=50;

P=Ng/(Ng+Ns); %eps=1.E-5 %eps=1.E-6 eps=0.0001;

x=0; dx=0.1; dY=1;

i=0;

while dY>0; i=i+1; xt(i)=x; Y1=cos(x/P);

Y2=sqrt(P*x);

yt1(i)=Y1;

yt2(i)=Y2; dY=Y1-Y2; x=x+dx; end;

y1r(1)=yt1(i); y1r(2)=yt1(i-1); y2r(1)=yt2(i); y2r(2)=yt2(i-1); xr(1)=xt(i-1); xr(2)=xt(i);

for n=1:2, xrt(n)=xr(n) end;

j=1;

while abs(dY)>eps; xc=(xr(1)+xr(2))/2; Y1=cos(xc/P); Y2=sqrt(P*xc); dY=Y1-Y2;

if dY>0 xr(1)=xc;

47

else xr(2)=xc; end; j=j+1;

end;

disp(Исходные данные); disp(Ng=); disp(Ng);

disp(Ns=); disp(Ns); disp(P=); disp(P); disp(xc=); disp(xc); disp(Y1=); disp(Y1); disp(Y2=); disp(Y2); disp(Шагов=); disp(j); plot(xrt,y1r,xrt,y2r);

48

5. ШАБЛОН ПОЯСНИТЕЛЬНОЙ ЗАПИСКИ

Пояснительная записка в виде файла под именем PZ_Family_name.doc записывается и хранится в локальной персональной папке и копия в сетевой персональной папке.

Для создания пояснительной записки используется ее макет находящийся в файле KR03_Maket.doc. В тексте макета вставлены указания в форме примечаний, которые после их выполнения следует удалить из пояснительной записки. В свойствах документа следует внести имя автора, подготовившего пояснительную записку.

В макет пояснительной записки вставлены заголовки всех разделов. Каждый раздел должен начинаться с новой страницы, предыдущий раздел при этом должен заканчиваться разрывом страницы.

6. ВЫПОЛНЕНИЕ КУРСОВОЙ РАБОТЫ

Каждый студент выполняет курсовую работу по индивидуальному заданию. Выполнение задания предусматривает четыре основных этапа: выбор метода решения предложенной задачи; разработка алгоритма решения и построение его блок-схемы; написание, отладка и выполнение программы на языке программирования MATLAB; оформление пояснительной записки.

подразумевает определенную свободу выбора метода решения предложенной задачи.

Оценка результатов выполнения курсовой работы выполняется по следующим категориям:

1)Оптимальность выбранного метода решения инженерной задачи. Задача должна быть решена наиболее простым и в то же время обеспечивающим точность ее решения методом.

2)Правильность работы разработанной программы. Программа должны корректно решать поставленные задачи. Оптимальность программного кода. Программа должна быть достаточно краткой, не содержать избыточных частей, иметь необходимые комментарии.

3)Корректность оформления. Пояснительная записка должна быть оформлена с соблюдением стилей, установленных в шаблоне, и иметь обоснованные выводы о результатах, полученных при выполнении работы.

Оценка по курсовой работе определяется как среднее арифметическое оценок по каждой из категорий.

49

ЛИТЕРАТУРА

Дьяконов В. П. Справочник по применению системы PC MATLAB. — М.: «Физ-

матлит», 1993. — С. 112. — ISBN 5-02-015101-7

Дьяконов В. П. Компьютерная матеметика. Теория и практика. — СПб: «Пи-

тер», 1999,2001. — С. 1296. — ISBN 5-89251-065-4

Дьяконов В. П. MATLAB 5 - система символьной матеметики. — М.: «Нолидж»,

1999. — С. 640. — ISBN 5-89251-069-7

Дьяконов В. П., Абраменкова И. В. MATLAB. Обработка сигналов и изображений. Специальный справочник. — СПб.: «Питер», 2002. — С. 608. — ISBN 5- 318-00667-608

Дьяконов В. П., Круглов В. В. MATLAB. Анализ, идентификация и моделирование систем. Специальный справочник. — СПб.: «Питер», 2002. — С. 448. — ISBN 5-318-00359-1

Дьяконов В. П. Simulink 4. Специальный справочник. — СПб.: «Питер», 2002. —

С. 528. — ISBN 5-318-00551-9

Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Основы применения.Полное руководство пользователя.. — Москва.: «СОЛОН-Пресс», 2002. — С. 768. — ISBN 5-98003-007-7

Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и моделировании. Основы применения.Полное руководство пользователя.. — Москва.: «СОЛОН-

Пресс», 2003. — С. 576. — ISBN 5-93455-177-9

Дьяконов В. П. MATLAB 6.0/6.1/6.5/6.5+SP1 + Simulink 4/5. Обработка сигналов и изображений. Полное руководство пользователя.. — Москва.: «СОЛОН-

Пресс», 2005. — С. 592. — ISBN 5-93003-158-8

Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6. Основы применения.Библиотека профессионала.. — Москва.: «СОЛОН-Пресс», 2005. — С. 800. — ISBN 5- 98003-181-2

Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6 в математике и моделировании. Библиотека профессионала.. — Москва.: «СОЛОН-Пресс», 2005. — С. 576. — ISBN 5-98003-209-6

Дьяконов В. П. MATLAB 6.5/7.0 + Simulink 5/6. Обработка сигналов и проекти-

рование фильтров. Библиотека профессионала.. — Москва.: «СОЛОН-Пресс», 2005. — С. 576. — ISBN 5-98003-206-1

Дьяконов В. П. MATLAB 6.5/7.0/7 SP1 + Simulink 5/6. Работа с изображениями и видеопотоками. Библиотека профессионала.. — Москва.: «СОЛОН-Пресс», 2005. — С. 400. — ISBN 5-98003-205-3

Дьяконов В. П. MATLAB 6.5/7.0/7 SP1/7 SP2 + Simulink 5/6. Инструменты искус-

ственного интеллекта и биоинформатики. Библиотека профессионала.. —

Москва.: «СОЛОН-Пресс», 2005. — С. 456. — ISBN 5-98003-255-X

Дьяконов В. П. MATLAB R2006/2007/2008 + Simulink 5/6/7. Основы применения.

Изд-е 2-е, переработанное и дополненное. Библиотека профессионала.. —

Москва.: «СОЛОН-Пресс», 2008. — С. 800. — ISBN 978-5-91359-042-8

50