Инженеры Python 4 — упражнения!

Обзор возможностей Python в области инженерии! — #PySeries#Эпизод 01

Привет, вот несколько упражнений, чтобы начать видеть проблемы, решения, проблемы, вещи с другой точки зрения: Python — фантастический научный инструмент! Проверьте это!

01 #PyEx — Python — Механическая устойчивость:

Проблема: Отверстие имеет диаметр 80 мм и допуск от -0,102 до +0,222. Определите минимальный и максимальный размеры этой дыры с помощью Python Jupiter Notebook :)

Рис. 1. Иллюстрация первой проблемы; Если у вас еще нет Jupyter, пожалуйста, следуйте этому руководству :)

01_Solution (python cell code):
D=80
a=-0.102
b=0.222
Dmin=D+a
Dmax=D+b
print('Max Diameter: %.3f' % Dmax)
print('Min Diameter: %.3f' % Dmin)
Max Diameter: 80.222 
Min Diameter: 79.898

      
Fig 2. Solution: Max Diameter: 80.222 Min Diameter: 79.898

vf = vp * (1 + i) ** n

Проблема: какова будущая стоимость инвестиции в размере 144 010 долларов, сделанной через 14 месяцев при сложной процентной ставке 1,3% в месяц ?

02_Solution (python cell code):
c=144010.00 
n=14
i=1.3/100
m=c*(1+i)**n
print('The amount is: $ %.2f' %m)
The amount is: $ 172553.94

      
Fig 3. Solution: The amount is: $ 172553.94

Проблема: каковы корни функции: f(x) = -2x³+7x²-20x + 6?

03_Solution (python cell code):
import numpy as np
c=[-2,7,-20,6]
np.roots(c)
array([1.58217509+2.53665299j, 1.58217509–2.53665299j, 0.33564982+0.j ])

      
Fig 4. oops:/ The ModuleNotFoundError — Please, TO FIX IT, in console, type: pip install numpy
Fig 5. Run the cell again and there you have it! Solution: array([1.58217509+2.53665299j, 1.58217509–2.53665299j, 0.33564982+0.j ]); j is the imaginary part; note that in the third root we have only the real part; while studying quaternions to play in Unity, I understand what complex numbers are \o/ so please consider watching this video too: https://youtu.be/d4EgbgTm0Bg from 3Blue1Brown:)

Таблица 1. Количество загрузок приложений в месяц

Проблема: Используя python, сделайте график линий с кружками для каждого месяца, связанный с количеством загрузок в каждом из этих месяцев;

04_Solution (python cell code):
import matplotlib.pyplot as plt
x=['Jan', 'Feb', 'Mar','Apr', 'May']
y=[127000, 133000, 129000, 134000, 136000]
plt.plot(x,y)
plt.plot(x,y,'r o')
plt.title("Downloads - From January to May")
plt.xlabel('Month')
plt.ylabel('Downloads')
plt. show()
graphic below

      
Fig 6. oops:/ there is no matplotlib installed; TO FIX IT, type this at console: pip install matplotlib
Fig 7. Run the cell again and there you have it! \o/

Проблема: в международной сети закусочных McDonald's (крупнейшая компания быстрого питания в мире), здесь, в Бразилии, ежемесячно продавалось онлайн 5226 BigMac , 2404 McSpicy , 3218 Cheeseburger и 4321 McNuggets ;

Рис. 8. Меню закусок McDonald's \o/

Найдите процент каждого продукта и покажите результаты в круговой диаграмме; выделение самых продаваемых закусок в этом месяце; используйте питон, пожалуйста :)

05_Solution (python cell code):
import matplotlib.pyplot as plt
x=[5226,2404,3218,4321]
snacks=['BigMac','McSpicy','Cheeseburger','McNuggets']
colors=['r','m','y','g']
plt.axis('equal')
plt.pie(x,labels=snacks,colors=colors,shadow=True,explode=  
         (0.1,0,0,0),autopct=('%1.1f%%'))
plt.title('Snacks sold in a month')
plt.show()
graphic below

      
Fig 9. Running 05_Solution: McDonald’s pie o/

Проблема: с помощью python вычислить первую производную функции: f(x)=4x³+12x-7:

06_Solution (python cell code):
from sympy import *
x,f=symbols("x f")
init_printing()
f=4*x**3+12*x-7
diff(f,x)
12x²+12

      
Fig 10. oops:/ there is no such thing as sympy! TO FIX IT, type this at the console: pip install sympy
Fig 11. Run the cell again and there you go! f`(x)=12x²+12 is the first derivative of the function f(x)=4x³+12x-7:)

Задача: вычислить неопределенный интеграл функции:

f'(x) = 4x³+12x+7 ;

07_Solution (python cell code):
from sympy import *
x,f=symbols("x f")
init_printing()
f=4*x**3+12*x-7
integrate(f,x)
x⁴+6X²-7

      
Fig 12. Calculating the indefinite integral of the function f’(x) = 4x³+12x-7 which results in f(x)=x⁴+6X²-7

Задача: используя Python, решить следующую линейную систему:

  • 5x+y+3z=76
  • х+2у+5г=35
  • 4x-5y+z=22
  • 08_Solution (python cell code):
    import numpy as np
    A=np.array([[5,1,3],[-1,2,5],[4,-5,1]])
    b=np.array([[76],[35],[22]])
    x=np.linalg.solve(A, b)
    print(x)
    [[10.] [ 5.] [ 7.]]
    
           
    Fig 13. The results of the above linear system: [[10.] [ 5.] [ 7.]]

    Рис 14. БЭП

Проблема: Компания, производящая сотовый поликарбонат , имеет себестоимость производства 129 долларов за единицу. Зная, что продажа продукта составляет 193,57 доллара США, а ежемесячная себестоимость производства составляет 18322,80 доллара США, получите, используя Python, BEP (я буду использовать R для общего дохода, C для общей стоимости, x для проданных единиц, xp — x- ось — количество товаров, проданных для достижения BEP-точки, а yp — ось Y — BEP-точки в долларах).

Рис 15. Лист сотового поликарбоната

09_Solution (python cell code):
from sympy import *
C,R,x=symbols("C R x")
init_printing()
R=193.57*x
C=129*x+18322.80
xp=solve(Eq(R,C),x)
yp=R.subs(x, xp[0])
print(xp[0])
print(yp)
283.766455010067
54928.6726962986

      
Fig 16. The results of the above the break-even point (BEP) equation is 283.766455010067 and 54928.6726962986; which means that the company has to sell 284 products and the revenue will be balanced when the total revenue is $ 54929:)

Проблема: Потребление энергии в жилом доме показано в таблице 2 ниже:

Таблица 2 — Энергопотребление

Проблема: получить с помощью python линию регрессии, коэффициент корреляции и построить график, показывающий линию и данные:

10_Solution (python cell code):
import numpy as np
import matplotlib.pyplot as pyp
from scipy import stats
x=np.array([1,2,3,4,5,6])
y=np.array([134,126,141,145,139,142])
a,b,correlation,p,error=stats.linregress(x,y)
print('Regression line: y=%.2fx+%.2f'% (a,b))
print('Correlation Coefficient: r=%.2f'% correlation)
plt.plot(x,y,'o',label='Original data')
f=a*x+b
plt.plot(x,f,'r',label='Regression Line')
plt.ylim(110, 160)
plt.legend()
plt.show()
Regression line: y=2.37x+129.53 
Correlation Coefficient: r=0.65
graphic below

      
Fig 17. oops:/ Where is the scipy lib? There is no such a lib. TO FIX IT, type this at the console: pip install scipy
Fig 18. And there you have it! Congratulations!!! the equation that best represents the energy consumption of that residence is given by the line: f(x) = 2.37x+129.53; with it, you can estimate what your monthly consumption will be and every month the system will perfect this equation, getting closer and closer to the most likely reality :)

Рис. 19. Мост Сан-Франциско. Мост Золотые Ворота представляет собой висячий мост через Золотые Ворота, пролив шириной в одну милю (1,6 км), соединяющий залив Сан-Франциско и Тихий океан.
Рис. 20. Банан имеет кривизну в форме параболы, знаете ли вы?
Рис. 21. Параболы также используются в спутниковых антеннах для отражения сигналов, которые затем поступают на приемник. Этим конкретным спутником является Национальная радиоастрономическая обсерватория, которая управляет первым в мире астрономическим телескопом, работающим в диапазоне от сантиметровых до миллиметровых волн, и расположена в Грин-Бэнк, Западная Вирджиния. Сигналы, поступающие непосредственно на спутник, будут отражаться и возвращаться к приемнику после отражения от фокуса из-за отражающих свойств парабол.

Задача: составить уравнение параболы, зная, что точки a (0,0), b (10,5) и c (20,0) в метрах принадлежат конструкции моста.

11_Solution (python cell code):
from scipy.interpolate import *
x=[0,10,20]
y=[0,5,0]
f=lagrange(x,y)
print(f)
-0.05x²+x

      
Fig 22. The bridge parabolic function is: f(x) =-0.05x²+x; can it be easier than that?

Проблема: Корпорация перевозчиков оптимизировала свои поставки.

Но в один прекрасный день одна из его машин подверглась необычному нападению :) временно не работала…

Рис. 23. Отслеживание необычной атаки:/

Теперь вам нужно сформулировать план Б для доставки двух наборов важных продуктов А и Б.

Каждая коробка Продукта А весит 20 кг и занимает 0,45 м³.

Каждая коробка продукта B весит 30 кг и занимает 0,35 м³.

Прибыль от перевозки товара А составляет 4,10 доллара.

Прибыль от перевозки Продукта Б составляет 5,40 долл. США.

Грузовик имеет грузоподъемность 2 тонны и объем 30 м³.

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

12_Solution (python cell code):
import sys
!{sys.executable} -m pip install pulp

      
Fig 24. All the requirements are already satisfied \o/
from pulp import * prob=LpProblem('Example', LpMaximize) x1=LpVariable("Product A", 0) x2=LpVariable("Product B", 0) prob += 4.10*x1 + 5.40*x2 prob += 0.45*x1+0.35*x2 <= 30 prob += 20*x1+30*x2 <= 2000 prob.solve() for v in prob.variables(): print(v.name,"=", v.varValue) print("Max Profit = ", value(prob.objective)) Product_A = 30.769231 Product_B = 46.153846 Max Profit = 375.3846155
Fig 25. And there you have it! Congratulations!!! The result is Product_A = 30.769231 Product_B = 46.153846 Max Profit = 375.3846155, which means that to achieve maximum profit, the carrier will have to load its truck with 30 boxes of Product A, 46 boxes of Product B and the maximum profit of $ 375.38 will be reached!

Я надеюсь, что вы можете быть удивлены так же, как я удивлен Силой Python!

Увидимся в следующем PySeries!

Пока, о/

Загрузите все файлы из репозитория GitHub

Ссылки и кредиты

Спасибо, мистер Рикардо А. Декманн Занардини — вы потрясающий учитель! о/; Текст редактировался, пока я учусь на инженера-компьютера в Escola Superior Politécnica Uninter !

Визуализация кватернионов (четырехмерных чисел) со стереографической проекцией — от 3Blue1Brown

Введение в линейное программирование от ufrgs.br (Федеральный университет Риу-Гранди-ду-Сул — Бразилия)

Похожие сообщения:

00Episode#PySeries — Python — Jupiter Notebook. Быстрое начало работы с VSCode — Как настроить среду Win10 для использования Jupiter Notebook

01Episode#PySeries — Python — Инженеры Python 4 — Упражнения! Обзор возможностей Python в области инженерии! (Вот этот:)

02Episode# PySeries — Python — Geogebra Plus Linear Programming — мы создадим программу Geogebra, которая поможет нам с нашим линейным программированием

03Episode# PySeries — Python — Инженеры Python 4 — Больше упражнений! — Еще один раунд, чтобы убедиться, что Python действительно потрясающий!

04Episode# PySeries — Python — Линейные регрессии — Основы — Как понять линейную регрессию раз и навсегда!

05Episode# PySeries — Python — NumPy Init & Python Review — A Crash Python Review & Initialization in NumPy lib.

06Episode# PySeries — Python — Массивы NumPy и Jupyter Notebook — Арифметические операции, индексирование и нарезка, а также условный выбор с массивами np .

07Episode# PySeries — Python — Pandas — Intro & Series — Что это такое? Как это использовать?

08Episode# PySeries — Python — Pandas DataFrames — основная структура данных Pandas! Это диктоподобный контейнер для объектов серии.

09Episode# PySeries — Python — Инженеры Python 4 — Еще больше упражнений! — Больше практических вопросов по программированию на Python!

10Episode# PySeries — Python — Pandas — Hierarchical Index & Crosssection — Откройте блокнот Colab и вот дополнительные упражнения!

11Episode# PySeries — Python — Pandas — Отсутствующие данные — Продолжим упражнения Python — Заполнение и удаление отсутствующих данных

12Episode# PySeries — Python — Pandas — Group By — группировка больших объемов данных и вычислительных операций в этих группах

13Episode# PySeries — Python — Pandas — Слияние, объединение и объединение — Средства для простого объединения серий или фреймов данных

14Episode# PySeries — Python — Pandas — Pandas Dataframe Примеры: операции со столбцами

15Episode# PySeries — Python — Инженеры Python 4 — Хранение в кратковременной памяти — Проверьте себя! Кодирование на Python, снова!

16Episode# PySeries — NumPy — Обзор NumPy, снова;) — Обзор Python Бесплатные упражнения

Suggested posts

5 лучших плагинов VSCode для команд разработчиков

5 лучших плагинов VSCode для команд разработчиков

GitHub Copilot, Swimm, Prettier и другие. Повысьте свою производительность и совместную работу с помощью этих 5 обязательных подключаемых модулей Visual Studio Code для команд разработчиков.

Навыки, необходимые для того, чтобы стать инженером Python в 2023 году

Навыки, необходимые для того, чтобы стать инженером Python в 2023 году

Подробное руководство по овладению основными навыками Python для успешной карьеры инженера Python в 2023 г. Зачем слушать меня? Привет! Вы можете задаться вопросом: «Почему я должен слушать эту статью о том, как стать инженером Python?» Что ж, позвольте представиться. Я 21-летний инженер Python с 3-летним опытом работы.

Related posts

Опасные разговоры

Опасные разговоры

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

Архив этой угрозы: Том 7 Черный Баста

Архив этой угрозы: Том 7 Черный Баста

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

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

Сетевое телевидение Твиттер

Сетевое телевидение Твиттер

То, что было старым, теперь снова новое, а то, что раньше было блестящим, теперь кажется скучным. Я не говорю о джинсах JNCO, которые вернулись среди крутых парней в центре города вместе с другими моделями конца 1990-х годов.