Similar presentations:
Решение инженерной задачи с помощью программного средства MatLab
1. Курсовая работа
По теме: “решение инженерной задачи с помощью программногосредства MatLab”
Лапухов Алексей гр.9282
1
2. Содержание доклада
• Постановка задачи• Алгоритм решения
• Текст программы
• Листинг результатов
• Дополнительное задание
• Диаграммы
• Заключение
Лапухов Алексей гр.9282
2
3. Постановка задачи
Вариант 20. Даны две функции: y1=tg(x) и y2=lg(x-2). Написатьпрограмму на языке MatLab для определения наименьшего
значения функции, которая будет иметь наибольшее значение в
интервале x [9;10].
Лапухов Алексей гр.9282
3
4. Алгоритм решения
minp1=fminbnd(f1,x1,x2);min1=tan(minp1);
disp('Функция y=tan(x) на интервале
[9;10] больше чем y=log10(x-2).');
disp(['Её минимальное значение
равно: ', num2str(min1)]);
Начало
clc; clear;
minp2=fminbnd(f2,x1,x2);
min2=log10((minp2)-2);
disp('Функция y=log10(x-2) на
интервале [9;10] больше чем
y=tan(x).');
disp(['Её минимальное значение
равно: ', num2str(min2)]);
x1=9; x2=12;
f1=@(x)tan(x);
f2=@(x)log10(x-2);
нет
да
max1=f1(x1);
max2=f2(x2);
пока идет цикл
if max1>max2
x0 = x1:0.001:x2;
f01=tan(x0);
f02=log10(x0-2);
Когда цикл закончен
for x=x1:0.001:x2
max2 = f2(x)
да
if (f1(x)>max1)
нет
нет
if (f2(x)>max2)
да
plot(x0, f01, x0, f02);
title('Графики функций f(x)=tan(x) и
f(x)=log10(x-2)');
legend('log10(x-2)','tan(x)');
xlabel('Координаты по оси
Ox');ylabel('Координаты по оси Oy');
Конец
max1 = f1(x)
Лапухов Алексей гр.9282
4
5. Текст программы
Фрагмент текста программы,демонстрирующий сам метод решения.
%определим функцию, которая будет иметь наибольшее значение
x1=9; x2=12;
%[9; 10], и найдем и выведем ее минимальное значение
f1=@(x)tan(x); %объявляем первую функцию
if max1>max2
в интервале x
f2=@(x)log10(x-2); %объявляем вторую функцию
minp1=fminbnd(f1,x1,x2);
max1=f1(x1);
min1=tan(minp1);
disp('Функция y=tan(x) на интервале [9;10] больше чем
y=log10(x-2).');
max2=f2(x2);
for x=x1:0.001:x2 %ищем максимальное значение функций
if (f1(x)>max1)
max1 = f1(x);
disp(['Её минимальное значение равно: ',
num2str(min1)]);
else
end
minp2=fminbnd(f2,x1,x2);
if (f2(x)>max2)
min2=log10((minp2)-2);
disp('Функция y=log10(x-2) на интервале [9;10] больше
max2 = f2(x);
end
чем y=tan(x).');
disp(['Её минимальное значение равно: ',
end
num2str(min2)]);
end
Лапухов Алексей гр.9282
5
6. Листинг результатов
Результат работы программы:рис.1
Лапухов Алексей гр.9282
6
7. Дополнительное задание
Дополнительным заданием было дополнить программу, чтобы онаискала площадь между кривыми функций на графике.
Математический смысл этой задачи состоит в том, чтобы найти
интегралы функций на заданном интервале.
Код задания:
syms x;
I1=int(tan(x),x1,x2);
I2=int(log10(x-2),x1,x2);
S=double(I2-I1);
if isnan(S)
disp('Невозможно посчитать площадь между кривыми графиков функций, так как одна из функций (или обе) не существуют на
заданном интервале или прерываются')
else
disp(['Площадь между кривыми графиков функций на заданном интервале равна: ', num2str(abs(S))])
end
Лапухов Алексей гр.9282
7
8. Диаграммы
Рис.2 – график, формируемый приработе программы
Лапухов Алексей гр.9282
8
9. Заключение
С помощью программного средства MatLab я построил график двухфункций, определив аналитически и графически минимальное
значение наибольшей функции. Также я нашел площадь между
кривыми функций на графике. Все поставленные задачи легко
решаются с помощью обширного спектра возможностей данного
программного средства и простоте их использования.
Лапухов Алексей гр.9282
9