Методичка_курсовик_ИНФО_2010
.pdfДьяконов В. П. MATLAB 7.*/R2006/2007. Самоучитель. — Москва.: «ДМК-
Пресс», 2008. — С. 768. — ISBN 978-5-94074-424-5
Дьяконов В. П. SIMULINK 5/6/7. Самоучитель.. — Москва.: «ДМК-Пресс», 2008.
— С. 784. — ISBN 978-5-94074-423-8
Дьяконов В. П. Вейвлеты. От теории к практике. Полное руководство пользователя. Изд-е 2-е переработанное и дополненное.. — Москва.: «СОЛОН-Пресс»,
2004. — С. 400. — ISBN 5-98003-171-5
Чарльз Генри Эдвардс , Дэвид Э. Пенни Дифференциальные уравнения и про-
блема собственных значений: моделирование и вычисление с помощью
Mathematica, Maple и MATLAB = Differential Equations and Boundary Value Problems: Computing and Modeling. — 3-е изд. — М.: «Вильямс», 2007. — ISBN 978- 5-8459-1166-7
Курбатова Екатерина Анатольевна MATLAB 7. Самоучитель. — М.: «Диалек-
тика», 2005. — С. 256. — ISBN 5-8459-0904-X
Джон Г. Мэтьюз, Куртис Д. Финк Численные методы. Использование MATLAB
= Numerical Methods: Using MATLAB. — 3-е изд. — М.: «Вильямс», 2001. — С. 720. — ISBN 0-13-270042-5
1)www.mathworks.com – англоязычный сайт американской компании
MathWorks, разработчика MATLAB
2)www.mathworks.com/products/matlab/ – MATLAB язык технических вычислений
3)www.mathworks.com/products/matlab/description1.html – описание программного продукта MATLAB® 7.2
4)http://ru.wikipedia.org/wiki/Метод_бисекции – метод деления отрезка пополам
5)http://matlab.exponenta.ru/ - консультационный центр компании MATLAB
51
ПРИЛОЖЕНИЕ
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Санкт-Петербургский государственный электротехнический университет "ЛЭТИ"
Факультет электроники Кафедра радиотехнической электроники
"Применение программного продукта MATHLAB для решения математической задачи"
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе по дисциплине "Информатика"
Доцент, к.т.н. |
А.С. Иванов |
Студент гр.8202 |
Е.В. Можаев |
Санкт-Петербург
2011
52
|
Содержание |
|
|
|
стр. |
1. |
Постановка задачи и метод решения |
............................................. 3 |
2. |
Алгоритм решения ............................................................................ |
4 |
3. |
Текст программы............................................................................... |
6 |
4. |
Листинг результатов ......................................................................... |
7 |
5. |
Диаграммы ........................................................................................ |
9 |
|
Заключение ..................................................................................... |
10 |
Microsoft®, MS® являются зарегистрированными товарными знаками корпорации Microsoft, а Microsoft Word® является торговым знаком корпорации Microsoft в США и других странах.
® Microsoft Corporation
53
1. Постановка задачи
Математическая модель задачи описывается двумя переменными величинами Х и 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.
Основная процедура заключается в том, что корневой отрезок делится пополам, находится значение Хс в средней точке и затем вычисляется соответствующее ему значение 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.
54
2. Алгоритм решения |
|
|
|
ИСХОДНЫЕ ДАННЫЕ |
|
|
|
Ng=2250; Ns=50; |
|
|
|
P=Ng/(Ng+Ns); |
|
|
|
eps=0.0001; |
|
|
|
x=0; dx=0.1; dY=1; |
|
|
|
i=0; |
|
|
|
ВЫЧИСЛЕНИЕ ГРАНИЦ ИСХОДНОГО КОРНЕВОГО ОТ- |
|||
РЕЗКА |
|
|
|
|
|
Да |
i=i+1; |
|
|
xt(i)=x; |
|
dY>0 |
|
|
|
|
|
Y1=cos(x/P); |
|
|
|
|
|
|
|
|
Y2=sqrt(P*x); |
|
|
|
yt1(i)=Y1; |
Нет |
|
|
yt2(i)=Y2; |
|
|
|
dY=Y1-Y2; |
|
|
|
x=x+dx; |
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 |
|
|
|
|
j=j+1 |
|
abs(dY)>eps |
|
|
Нет |
Да |
|
xr(2)=xc |
|
|
||
|
|
|
|
xc=(xr(1)+xr(2))/2; |
Нет |
||
|
|||
Y1=cos(xc/P); |
|
dY>0 |
|
Y2=sqrt(P*xc); |
|
||
|
|
||
dY=Y1-Y2; |
|
Да |
|
|
|
|
|
|
|
|
xr(1)=xc |
ВЫВОД РЕЗУЛЬТАТОВ |
|
|
|
55
ВЫВОД РЕЗУЛЬТАТОВ
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);
56
3. Текст программы
%Ввод исходных данных
%Y1=COS(X/P) %Y2=SQRT(P*X) %P=Ng/(Ng+Ns)
Ng=8202;
Ns=14;
P=Ng/(Ng+Ns); %eps=1.E-5 %eps=1.E-6 eps=1.E-6; dx=0.1;
x=0;
dY=1;
%Нахождение отрезка, длинной 0.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;
57
%Нахождение точки пересечения графиков исходных функций с заданной точностью с помощью метода деления отрезка пополам
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; 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); disp('Eps='); disp(eps);
%Вывод графика plot(xrt,y1r,xrt,y2r);
58
4. Листинг результатов |
|
|
||
1) Погрешность 1.E-4 |
2) Погрешность 1.Е-5 |
3) Погрешность 1.Е-6 |
||
xrt =0.6000 |
xrt =0.6000 |
xrt =0.6000 |
0.7000 |
|
xrt =0.6000 0.7000 |
xrt =0.6000 0.7000 |
xrt =0.6000 |
0.7000 |
|
Исходные данные |
Исходные данные |
Исходные данные |
||
Ng=8202 |
Ng=8202 |
Ng=8202 |
|
|
Ns=14 |
Ns=14 |
Ns=14 |
|
|
P=0.9983 |
P=0.9983 |
P= 0.9983 |
|
|
xc=0.6418 |
xc=0.6417 |
xc=0.6417 |
|
|
Y1=0.8004 |
Y1=0.8004 |
Y1=0.8004 |
|
|
Y2=0.8004 |
Y2=0.8004 |
Y2=0.8004 |
|
|
Шагов=9 |
Шагов=14 |
Шагов=14 |
|
|
Eps=1.0000e-004 |
Eps=1.0000e-005 |
Eps=1.0000e-006 |
||
|
|
|
||
Таблица. Зависимость числа шагов от значения погрешности |
|
|||
Погрешность |
|
Число шагов |
|
|
1.0000e-004 |
|
9 |
|
|
1.0000e-005 |
|
14 |
|
|
1.0000e-006 |
|
14 |
|
|
59
5. Диаграммы
Рис 1. Графическая иллюстрация решения на корневом отрезке
Рис 2. График зависимости
60