ИНЖЕНЕРНАЯ ШКОЛА
Выполнилa: студент
____________Лопатченко С.А.
Проверил: преподаватель
_____________Шишкин.А.В.
______________________________
оценка
г. Владивосток
2019
Оглавление
Введение.................................................................................................................3
Заключение..........................................................................................................25
Список литературы.............................................................................................26
2
Введение
3
текста, оформление таблиц и отчётов, управление базами данных, удобен в
экономико-статистических расчетах и формулах.
Программная система MathCAD [2].
MathCAD — система компьютерной алгебры из класса систем
автоматизированного проектирования, ориентированная на подготовку
интерактивных документов с вычислениями и визуальным сопровождением,
отличается лёгкостью использования и применения для коллективной работы.
MathCAD был задуман и первоначально написан Алленом Раздовом из
Массачусетского технологического института (MIT), соучредителем компании
Mathsoft, которая с 2006 года является частью корпорации PTC (Parametric
Technology Corporation).
MathCAD имеет интуитивный и простой для использования интерфейс
пользователя. Для ввода формул и данных можно использовать как клавиатуру,
так и специальные панели инструментов.
Язык программирования Python [3].
История языка программирования Python началась в конце 1980-х. Гвидо
ван Россум задумал Python в 1980-х годах, а приступил к его созданию в декабре
1989 года в центре математики и информатики в Нидерландах. Язык Python был
задуман как потомок языка программирования ABC, способный к обработке
исключений и взаимодействию с операционной системой Амёба. Ван Россум
является основным автором Python и продолжал выполнять центральную роль в
принятии решений относительно развития языка вплоть до 12 июля 2018 года.
Он позволяет использовать эффективные высокоуровневые структуры
данных и предлагает простой, но эффективный подход к объектно-
ориентированному программированию. Сочетание изящного синтаксиса,
динамической типизации в интерпретируемом языке делает Python идеальным
языком для написания сценариев и ускоренной разработки приложений в
различных сферах и на большинстве платформ.
Система подготовки текстов Word [4]
4
Microsoft Word — текстовый процессор, предназначенный для создания,
просмотра и редактирования текстовых документов, с локальным применением
простейших форм таблично-матричных алгоритмов. Выпускается корпорацией
Microsoft в составе пакета Microsoft Office. Первая версия была
написана Ричардом Броди (Richard Brodie) для IBM PC, использующих DOS, в
1983 году. Позднее выпускались версии для Apple Macintosh (1984), SCO UNIX и
Microsoft Windows (1989). Текущей версией является Microsoft Office Word 2019
для Windows и macOS.
Microsoft Word многим обязан Bravo — текстовому редактору с
оригинальным графическим интерфейсом, разработанному в исследовательском
центре «Xerox PARC». Создатель Bravo Чарльз Симони (Charles Simonyi) покинул
PARC в 1981 году. Тем же летом Симони переманил Броди, с которым вместе
работал над Bravo.
Первый выпуск Word для MS-DOS состоялся в конце 1983 года. Он был
плохо принят рынком, продажи снижало наличие конкурирующего продукта —
WordPerfect.
Microsoft Word позволяет выполнять ввод, форматирование, проверку
текста и выводить его на печать. Кроме текста, документы могут включать
графику, звуковые файлы и видеоклипы, рисунки, диаграммы, формулы, таблицы
и многое другое. С помощью новой версии Word можно не только выводить
документы на печать, но и отправлять их по факсу или электронной почте прямо
из окна программы, а также сохранять на веб-сервере в виде веб-страниц.
5
1 Реализация вычисленной задачи в различных программных пакетах
а) б
а) треугольник существует; б) треугольник не существует.
Рисунок 1.1 Лист электронной таблицы с расчётами
При реализации задачи использовались следующие формулы
Для вычисления длин сторон:
В7: =КОРЕНЬ((B2-B3)^2+(C2-C3)^2)
B8: =КОРЕНЬ((B3-B4)^2+(C3-C4)^2)
В9: =КОРЕНЬ((B2-B4)^2+(C2-C4)^2)
Для проверки существования треугольника:
=ЕСЛИ(И((B9+B8)>B7;(B8+B7)>B9;
(B9+B7)>B8);"Треугольник существует";"Треугольник не
существует");
7
Для вычисления периметра:
В12: =СУММ(B7+B8+B9)
Для вычисления площади:
В15: =КОРЕНЬ(B12/2*(B12/2-B7)*(B12/2-B8)*(B12/2-B9))
Для вычисления углов (в радианах):
В16: =ACOS(((B7)^2+(B9)^2-(B8)^2)/(2*B7*B9))
В17: =ACOS(((B7)^2+(B8)^2-(B9)^2)/(2*B8*B7))
В18: =ACOS(((B8)^2+(B9)^2-(B7)^2)/(2*B8*B9))
Характеристики треугольника
Координаты Треугольник
№ Длины Величины
вершин существует Периметр Площадь
сторон углов
A(6,9) c=3,16228 A=8,13°
1 B(3,5) Да a=1,41421 9,04863 1 B=153,43°
C(-1,6) b=4,47214 C=18,44°
A(1,1)
2 B(2,2) Нет
C(3,3)
A(2,1) c=4 A=90°
3 B(2,5) Да a=5 12 6 B=36,87°
C(5,1) b=3 C=53,13°
A(2,1) c=2,82843 A=45°
4 B(4,3) Да a=2 6,82843 2 B=45°
C(4,1) b=2 C=90°
2 2
b ≔ √ ( x −x ) + ( y − y )
a c a c
(c 2+ a2−b2)
B≔ acos ( 2∙c∙a )
180
B≔ B ∙
π
(a2 +b2−c 2)
C ≔ acos ( 2∙ a ∙ b )
180
C :=C ∙
π
11
а) б)
а) треугольник существует; б) треугольник не существует.
Рисунок 1.4 Результат выполнения программы.
13
Треугольни Характеристики треугольника
Координаты
№ к Длины Перимет Величины
вершин Площадь
существует? сторон р углов
А(3,7) a= 3.162 A=6,343°
1 В(2,-2) Да b= 6.0 p= 18.217 s = 3.001 B=12,102°
С(3,1) с= 9.055 C=161.555°
A(1,1)
2 B(2,2) Нет — — — —
C(3,3)
A(2,1) a= 5.0 A=90.0°
3 B(2,5) Да b= 3.0 p= 12.0 s = 6.0 B=6.87°
C(5,1) с= 4.0 C=53.13°
a=2
A(2,1) A=45°
b=2
4 B(4,3) Да p= 6.828 s = 2.0 B=45°
c=2,82843
C(4,1) C=90°
Таблица 1.3 Результаты вычислений
14
2 Реализация задачи по обработке экспериментальных данных
Верхняя граница : KC i + ∆t
16
Рисунок 2.5 Расчетная форма для обработки экспериментальных данных
Для каждого измерения необходимо посчитать ударную вязкость KC i, при
этом значения высоты hi и ширины b i, выраженные в миллиметрах, необходимо
17
В ячейках интервала F8:I23 используются аналогичные формулы
В таблице 2.2 приведены средние значения ударной вязкости и границы
доверительных интервалов.
Таблица 2.5 Результаты вычислений
Доверительный интервал
КСt,
t, 0C Нижняя Верхняя
кДж/м2
граница граница
60 81,246 68,867 93,625
80 104,825 97,451 112,199 На основе данных из
100 87,654 75,277 100,031 таблицы 2.2 построена диаграмма,
120 72,475 66,087 78,863
140 45,503 37,783 53,224 приведенная на рисунке 2.2. По
средним значениям ударной
вязкости построена линия тренда, описывающая в аналитическом виде функцию
зависимости ударной вязкости от температуры.
120
100
f(x) = 0 x³ − 0.11 x² + 11.66 x − 293.18
80 R² = 0.98
60
40
20
0
40 60 80 100 120 140 160
КСt, кДж/м2
Температура, 0C
Polynomial (КСt, кДж/м2)
Доверительный интервал Нижняя граница
Доверительный интервал Верхняя граница
Для функции:
1
f ( x )=x +
x−1
Найти:
область определения функции;
уравнение касательной в точке 𝑥0 = 0.4;
уравнения вертикальной и наклонной асимптот.
Построить:
график функции;
касательную;
асимптоты.
Следовательно,
x0
k =f ' ( x 0 ) , b=f ( x 0 )−f '( ) ∙ x 0 . (1).
19
Вертикальные асимптоты следует искать в точках разрыва функции.
Прямая 𝑥 = 𝑎 является вертикальной асимптотой графика функции𝑓(𝑥), если хотя
бы одно из предельных значений
lim f (x )или lim f ( x)
→ →
−0 +0
x❑ a x❑ a
равно +∞ или − ∞ .
Прямая y=k ∙ x +b является наклонной асимптотой графика функции𝑓(𝑥),
если
lim |f ( x ) −k ∙ x−b|=0
x→ ∞
k =lim
f (x)
, b=lim (f ( x )−k ∙ x ¿)¿ (2).
x❑ ∞
→
x x❑ ∞
→
20
def y(x, k, b):
z = x * k + b
return z
x = sp.Symbol("x")
print("Функция f(x): ", f(x))
# область определения
print("\nОбласть определения:")
fract = sp.fraction(sp.factor(f(x)))
denomF = fract[1]
print(" знаменатель функции: ", denomF)
xSolve = sp.solve(denomF)
xZ = xSolve[0]
print(" функция не определена в точке: ", xZ)
# уравнение касательной в точке
x0 = 0.4
print("\nУравнение касательной в точке x0 = ", x0)
dF = sp.diff(f(x), x)
print(" производная функции:", dF)
k = dF.evalf(subs = {x : x0})
b = f(x0) - k * x0
print( " уравнение касательной: y = %5.2f * x + %5.2f" % (k, b))
# уравнения асимптот
print("\nУравнение вертикальной асимптоты:")
lim = sp.limit(f(x), x, xZ)
print ( "предел равен: ",lim, ", следовательно x =", xZ)
print("\nУравнение наклонной асимптоты:")
k1 = sp.limit(f(x)/x, x, inf)
b1 = sp.limit((f(x)- k1 * x), x, inf)
print(" y = %5.2f *x + %5.2f" % (k1, b1))
Далее на основе вычислений, проведенных в первой части программы,
строится график функции на интервале [a, a1], касательная, вертикальная и
наклонные асимптоты.
Чтобы получить изображение графика с точками разрыва, нужно разбить
интервал построения функции [a, a1] на несколько интервалов так, чтобы каждый
не включал точку разрыва. А затем построить фрагменты графика на каждом из
полученных интервалов. В нашем случае интервал построения[a, a1]необходимо
разбить на два [a,xZ-]и [xZ+,a1], где xZ – точка разрыва. В качестве можно
взять шаг построения графика, умноженный на некоторую константу, например,
h*3.
Для построения наклонной асимптоты в списки абсцисс и ординат
включены две точки (a,y(a,k1,b1)) и (a1,y(a1,k1,b1)) – точки, в которых асимптота
пересекает левую и правую границу области построения. Аналогично строится
касательная к функции (используются точки (a,y(a,k,b1)) и (a1,y(a1,k,b1))).
21
Чтобы построить вертикальную асимптоту, необходимы две точки,
абсцисса которых – точка разрыва xZ, а значения ординат – минимальное и
максимальное значение функции для правой и левой ветви графика.
# построение графика функций и прямых
a = -2; a1 = 4; h = 0.01
#две части графика функции
xList1 = np.arange (a, xZ - h * 3, h)
xList2 = np.arange (xZ + h * 3, a1, h)
lineF1 = plt.plot(xList1, f(xList1))
lineF2 = plt.plot(xList2, f(xList2))
# касательная к графику
lineY = plt.plot([a, a1], [y(a, k, b), y(a1, k, b)])
#наклонная ассимптота
lineA = plt.plot([a, a1], [y(a, k1, b1), y(a1, k1, b1)])
# вертикальная ассимптота
lineAV = plt.plot([xZ, xZ], [min(f(xList1)), max(f(xList2))])
# задание формата вывода линий
plt.setp(lineF1, color='r', linewidth=2.0)
plt.setp(lineF2, color='r', linewidth=2.0)
plt.setp(lineY, color='y', linewidth=1.0)
plt.setp(lineA, color='g', linewidth=1.0, linestyle='dashed')
plt.setp(lineAV, color='b', linewidth=1.0, linestyle='dashed')
plt.legend((lineF1[0], lineY[0], lineA[0], lineAV[0]),
('f(x)', 'касательная', 'наклонная асимпт.',
'вертикальная асимпт.'), loc='upper right')
# установка координатных осей
plt.gca().spines['left'].set_position('zero')
plt.gca().spines['bottom'].set_position('zero')
plt.gca().spines['top'].set_visible(False)
plt.gca().spines['right'].set_visible(False)
plt.show()
22
Рисунок 3.7– Результат выполнения программы
23
Заключение
24
Список литературы
1. https://ru.wikipedia.org/wiki/Microsoft_Excel#История [1]
2. https://ru.wikipedia.org/wiki/Mathcad [2]
3. https://ru.wikipedia.org/wiki/История_языка_программирования_Python
[3]
4. https://ru.wikipedia.org/wiki/Microsoft_Word [4]
25