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

курсач 16 вариант / курсач

.docx
Скачиваний:
8
Добавлен:
01.05.2020
Размер:
110.45 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра МНЭ

КурсовАЯ РАБОТА

по дисциплине «Информационные технологии»

Тема: Применение информационных технологий для решения инженерной задачи

Студентка гр. 8206

Крюкова И.А.

Преподаватель

Матюшкин Л.Б.

Санкт-Петербург

2019

СОДЕРЖАНИЕ

стр.

СОДЕРЖАНИЕ 2

1.Постановка задачи 3

2.Алгоритм решения 4

3.Текст программы 6

1Листинг результатов 8

1Диаграммы 8

Заключение 10

Microsoft, MS являются зарегистрированными товарными знаками корпорации Microsoft, а Microsoft Works является торговым знаком корпорации Microsoft в США и других странах.

 Microsoft Corporation

  1. Постановка задачи

Вариант 16. Даны две функции y1(x)=sin(x) и y2(x)=√x-3. Написать программу на языке MATLAB для определения разницы между значением (по модулю) функции в третьей точке пересечения и значением (по модулю) в первой точке пересечения кривых y1(x) и y2(x).

  1. Алгоритм решения

Для решения задачи необходимо с заданной погрешностью 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. Листинг результатов

Корень №1

xc = 4.31611

Y1 = -0.922505

Y2 = -0.922474

Корень №3

xc = 9.36455

Y1 = 0.0601908

Y2 = 0.0601554

dy = -0.0746

  1. Диаграммы

Рис. 1. Графики данных функций на заданном промежутке

Рис. 2. Графики данных функций, выполненный в Excel

Заключение

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

Y1(x)=sin(x) и Y2(x)= -3. Разность значений по модулю -0.0746