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

1sem / !_KursachZapiskaVar11

.doc
Скачиваний:
1
Добавлен:
15.01.2024
Размер:
154.11 Кб
Скачать

Федеральное государственное автономное образовательное учреждение

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

электротехнический университет «ЛЭТИ»

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

мафедра МНЭ

Курсовая работа

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

«Применение информационных технологий

для решения инженерных задач»

Выполнил: Корепанов Д.М. гр.3206

Преподаватель: Шевченко С.А.

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

2023

Оглавление

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

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

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

disp('Количество итераций'); disp(w); 7

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

Заключение 10

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

Вариант - 11

Написать программу на языке MatLab для нахождения методом последовательных приближений координаты x n-ой по счету точки пересечения графиков этих функций на интервале [0, ∞). Значение n пользователь вводит с клавиатуры при работе программы. Вычисление корней следует производить с заданной погрешностью (eps). Отобразить графически данные кривые в заданном диапазоне, включая точку пересечения. Найти зависимость количества приближений от погрешности.

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

Для решения задачи пользователю требуется ввести номер точки пересечения двух функций, а также ввести с какой погрешностью будут вычислены корни. Для начала вводятся начально значение х и как оно меняется dx, также вводятся переменные q, r для счетчиков. Далее проводится вычисление разности значений функции в точке 0, далее сравнивая разности функций в значениях х на каждом шаге dx с значению разности функций в точке 0. Если после шага dx разность функций меняет знак на противоположный, значит в этом шаге находится пересечение функций. Мы ставим цикл, чтобы определить значение определенного интервала как можно меньшим и методом половинного деления уменьшаем его до значения меньше погрешности. После чего выводим графики функций.

Для определения зависимости количества итераций метода половинного деления мы вводим счетчик w, который после каждой итерации будет увеличиваться на 1. После чего запускаем код для нахождения 4 точки пересечения с разным значением погрешности.

Рисунок 1 – Блок-схема работы программы

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

clc

clear

close all

%Y1=cos(x) %Y2=sqrt(x)-4

disp('Корепанов Денис Максимович 3206')

disp('Вариант 11')

format long

n=input('Необходимая точка пересечения:');

eps=input('Погрешность:');

xq=0; %начальное значение

dx=0.0001; %изменение аргумента

q=1;

r=1; %переменные для счетчиков

xt(q)=xq;

while r<=n

dy0=cos(xt(q))-(sqrt(xt(q))-4); %разность значений функций в точке 0

q=q+1;

xt(q)=xt(q-1)+dx;

dy1=cos(xt(q))-(sqrt(xt(q))-4);

while dy1*dy0>0 %цикл нахождения точки пересечения

dy1=cos(xt(q))-(sqrt(xt(q))-4);

xt(q)=xt(q)+dx;

xt(q-1)=xt(q-1)+dx;

end

w=1;

c=(xt(q)+xt(q-1))/2;

While (xt(q)-xt(q-1))>eps %точное нахождение точки пересечения путем половинного деления отрезка

c=(xt(q)+xt(q-1))/2;

w=w+1;

dyc=cos(c)-(sqrt(c)-4);

if dyc*dy0>0 %определение приближенного значения x в зависимости от знака

xt(q)=xt(q);

xt(q-1)==xt(q)-(c-xt(q-1));

elseif dyc*dy0<0

xt(q-1)=xt(q-1);

xt(q)=xt(q-1)+(c-xt(q-1));

end

end

q=q+1

xt(q)=xt(q-1)+dx

r=r+1;

end

fplot('cos(x)',[0 c+100*dx],'r'); %Вывод графиков функций y1(x) и y2(x)

hold on

fplot('sqrt(x)-4',[0 c+100*dx]);

grid on

legend('cos(x)','sqrt(x)-4');

disp('Координата пересечения x='); disp(c); %вывод значения х

disp('Количество итераций'); disp(w);

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

Номер точки пересечения:

n=4

Погрешность

eps=0.001

Координата точки пересечения

x=17.458

Рисунок 2 – Скриншот рабочего окна Octave с результатами выполнения программы

Группа 11 Группа 13

Заключение

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

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

Соседние файлы в папке 1sem