Курсовая работа по ИТ_Решение задач в Matlab_9283_Зикратова
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра радиотехнической электроники
Пояснительная записка к курсовой работе
по дисциплине «Информационные технологии»
Тема: «Решение задач в Matlab»
Студентка гр. 9283 |
|
Зикратова А. А. |
Преподаватель |
|
Мадисон П. А. |
Санкт-Петербург
2019
Содержание
Формулировка задачи………………………………………………………3
Алгоритм решения (блок-схема)………………………………………3
Текст программы…………………………………………………….4
Результаты…………………………………………………….5
Диаграммы……………………………………………….5
Заключение (вывод)……………………………….6
Формулировка задачи:
Даны две функции: , . Найти точку их пересечения на интервале методом бисекции с точностью не менее
Алгоритм решения (блок-схема):
Начало
y1, y2, a, b, p, n
f(p)>ε
f(p)*f(a)<0
p=a
p=b
n=n+1
x0, n
Текст программы:
>> clear
y1= @(x) -sqrt(x);
y2= @(x) 5*cos(x/3);
@(x) y1-y2==f;
f = @(x) -sqrt(x)-5*cos(x/3); % анонимная функция
exp = 0.001; % точность
a = 0; % нижний предел
b = 10; % верхний предел
fplot(f,[a,b]), hold on % рисуем функцию
p=(a+b)/2;
n=1;
while abs(f(p))>exp % условие
if f(a)*f(p)<0
b=p;
else
a=p;
end;
p=(a+b)/2;
n=n+1; % номер итерации
end;
x0 = p; % корень
plot(x0, f(x0),'or'), hold on
set(gca,'XAxislocation','origin'); % отображение оси OX
xlabel('x'); % название оси
ylabel('f');
grid on % отображение сетки на графике
disp(['x0=',num2str(x0)]);
disp(['n=',num2str(n)]); % вывод номера итерации
title(['x0=',num2str(x0)])
Результаты:
Точка пересечения графиков – p(x0) , x0=6,2891, n (кол-во итераций) =8, y(x0)= -2,5078
Диаграммы:
Matlab:
Excel:
Вывод:
В данной работе была найдена точка пересечения графиков и , принадлежащая интервалу (т. е. её координаты), а также было установлено количество итераций.