курсач 16 вариант / курсач
.docx
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра МНЭ
КурсовАЯ РАБОТА
по дисциплине «Информационные технологии»
Тема: Применение информационных технологий для решения инженерной задачи
Студентка гр. 8206 |
|
Крюкова И.А. |
Преподаватель |
|
Матюшкин Л.Б. |
Санкт-Петербург
2019
СОДЕРЖАНИЕ
стр.
СОДЕРЖАНИЕ 2
1.Постановка задачи 3
2.Алгоритм решения 4
3.Текст программы 6
1Листинг результатов 8
1Диаграммы 8
Заключение 10
Microsoft, MS являются зарегистрированными товарными знаками корпорации Microsoft, а Microsoft Works является торговым знаком корпорации Microsoft в США и других странах.
Microsoft Corporation
-
Постановка задачи
Вариант 16. Даны две функции y1(x)=sin(x) и y2(x)=√x-3. Написать программу на языке MATLAB для определения разницы между значением (по модулю) функции в третьей точке пересечения и значением (по модулю) в первой точке пересечения кривых y1(x) и y2(x).
-
Алгоритм решения
Для решения задачи необходимо с заданной погрешностью eps определить первый и третий корни системы уравнений. Решение системы уравнений производится численно методом деления пополам корневого отрезка, содержащего корень x. Основная процедура заключается в том, что корневой отрезок делится пополам, находится значение для первого корня и для третьего корня. Абсолютная величина полученного значения сравнивается с заданной погрешностью eps=0,0001 и в случае, когда abs(найденного значения) < eps, полученное значение и принимается в качестве корня системы уравнений.
Начало
dx
= 0.1;
dy
= 1;
i
= 0;
Y10
= sin(x);
Y20
= sqrt(x)-3
while
dy>0
i
= i + 1;
xt(i)
= x;
Y1
= sin(x);
Y2
= sqrt(x)-3;
yt1(i)
= Y1
yt2(i)
= Y2
dy
= Y1-Y2;
if
(Y10<Y20)
dy
= -dy xc
= (xr(1)+xr(2))/2; dy1=sin(xr(1))-(sqrt(xr(1))-3); dy2=sin(xc)-(sqrt(xc)-3); dy
= dy1*dy2;
Конец x
= x + dx
while
dx>eps
dy>0 xr(1)=xc xr(2)=xc dx=xr(2)-xr(1);
Нет x=0:0.1:10; plot(x,sin(x),x,sqrt(x)-3); legend
('sin(x)','sqrt(x)-3');
3.Текст программы
clc; clear all; close all;
eps = 1e-6; %точность
mas = zeros(1,3); %массив найденных корней
x = 0;
for m = 1:3
dx = 0.1; %шаг
dy = 1;
i = 0;
xt = [];
yt1 = [];
yt2 = [];
Y10 = sin(x);
Y20 = sqrt(x)-3;
%Нахождение отрезка длинной 0,1, включающего точку
%пересечения заданных функций
while (dy>0)
i = i + 1;
xt(i) = x;%Фиксируем текущее значение аргумента
Y1 = sin(x);%Вычисляем значение функции 1 на данном шаге
Y2 = sqrt(x)-3;%Вычисляем значение функции 2 на данном шаге
yt1(i) = Y1;%Фиксируем текущее значение функции 1
yt2(i) = Y2;%Фиксируем текущее значение функции 2
dy = Y1-Y2;%Вычисляем разницу между двумя значениями
%Если начальные значение функции 1 меньше значения функции 2,тогда
%берем с обратным знаком.
if (Y10<Y20)
dy = -dy;
end
x = x + dx;%Переходим на новый аргумент
end
if(m~=2)
%Для построения графиков
%Фиксируем значения функции на корневом отрезке
y1r(1) = yt1(i-1);
y1r(2) = yt1(i);
y2r(1) = yt2(i-1);
y2r(2) = yt2(i);
%исходные границы корневого отрезка
xr(1) = xt(i-1);
xr(2) = xt(i);
%Нахождение точки пересечения графиков исходных функций с заданной
%точностью с помощью метода деления отрезка пополам
while (dx>eps)
xc = (xr(1)+xr(2))/2;%Середина отрезка
dy1=sin(xr(1))-(sqrt(xr(1))-3);
dy2=sin(xc)-(sqrt(xc)-3);
dy = dy1*dy2;
%Пересчет границ для следующего шага
if (dy>0)
xr(1)=xc;
else
xr(2)=xc;
end
dx=xr(2)-xr(1);
end
Y1=sin(xc);
Y2=sqrt(xc)-3;
mas(m) = xc;
fprintf('Корень №%i\n',m);
fprintf('xc = %g\n',xc);
fprintf('Y1 = %g\n',Y1);
fprintf('Y2 = %g\n',Y2);
figure
plot(xr, y1r, xr, y2r);
legend ('sin(x)','sqrt(x)-3');
grid on;
end
end
dy=abs(sin(y2r))-abs(sin(y1r))
figure
x=0:0.1:10;
plot(x,sin(x),x,sqrt(x)-3);
legend ('sin(x)','sqrt(x)-3');
-
Листинг результатов
Корень №1
xc = 4.31611
Y1 = -0.922505
Y2 = -0.922474
Корень №3
xc = 9.36455
Y1 = 0.0601908
Y2 = 0.0601554
dy = -0.0746
-
Диаграммы
Рис. 1. Графики данных функций на заданном промежутке
Рис. 2. Графики данных функций, выполненный в Excel
Заключение
В ходе данной курсовой работы была разработана программа, которая определяет разницу между значением (по модулю) функции в третьей точке пересечения и значением (по модулю) в первой точке пересечения кривых
Y1(x)=sin(x) и Y2(x)= -3. Разность значений по модулю -0.0746