首页 > Python资料 博客日记

Python工程和科学计算1简介

2024-09-26 20:00:04Python资料围观64

Python资料网推荐Python工程和科学计算1简介这篇文章给大家,欢迎收藏Python资料网享受知识的乐趣

1 简介

本章简要介绍了Python编程语言的可扩展性、应用领域和功能。

如果您需要在科学工作中进行大量计算,并希望以图形化的方式呈现计算结果,那么您应该认真考虑使用 Python。Python 是一种编程语言,其功能与 MATLAB相似, 且是科学计算目前用户最多的首选语言。

1.1 开发环境

1.1.1 IDLE(不推荐使用)

IDLE是一个非常适合Python初学者的IDE。它简单易用,功能齐全,为初学者提供了良好的学习和开发环境。但是,对于大型项目或有较高性能要求的开发者来说,可能需要考虑使用更专业的IDE。

1.1.2 Thonny

Thonny 适用于 Linux、macOS 和 Windows,可从 https://thonny.org 下载。

程序源代码必须输入文本编辑器(左上角区域)。通过 (F5) 功能键或单击 “开始 ”按钮启动程序后,将打开一个窗口,输入程序的文件名。数值计算的结果会在 Python 外壳左下角的命令行窗口中输出。Matplotlib 程序的每个函数图都会在单独的窗口中输出。在 shell(也称为 Python 控制台)中,您还可以直接输入 Python 命令。主窗口右侧的 “助手 ”可以帮助您排除故障,不过您应该降低对其功能的期望值。

Thonny 的一个特别重要的功能是可以轻松安装和更新 NumPy、Matplotlib、SymPy、SciPy 和 VPython 模块。您只需打开 “工具”-“管理包 ”对话框即可完成这些任务。然后,在左上角的文本框中输入要安装的模块名称,点击安装或更新。

要删除模块,必须在左侧窗格中选择相应模块。然后,“卸载 ”命令按钮会出现在 “安装 ”命令按钮的右侧。Thonny 软件包管理器的一个显著优势是,您还可以测试所有可用模块的旧版本。要完成这项任务,只需点击安装按钮右侧的...命令图标,就会打开一个窗口,在其中选择所需的模块版本。

Thonny很适合嵌入式MicroPython开发。

1.1.3 Spyder

Spyder 可在 https://www.spyder-ide.org 免费下载,适用于 Linux、macOS 和 Windows。

要使用 Matplotlib 程序运行动画,必须在 IPython 控制台 - 图形下的设置中选择自动作为后端。启动程序后,将打开一个单独的窗口来运行动画。包含滑块控件的 Matplotlib 程序也只能通过该选项交互执行。

1.1.4 pip

pip允许您轻松下载和更新模块--当您使用 Python 时,Pip 是一个特别重要的工具。

例如,如果您已经安装了 Python,但只想添加 NumPy 模块,您可以在 Windows、Linux 或 macOS 的终端中输入以下命令:

pip install numpy 

使用以下命令可以更新现有的 NumPy 安装:

pip install --upgrade numpy 

1.1.5 Visual Studio Code

Visual Studio Code(简称 VS Code)是一款非常受欢迎的轻量级代码编辑器,支持多种编程语言,包括 Python。VS Code 提供了许多强大的功能,如智能感知(IntelliSense)、调试、Git 集成等,非常适合 Python 开发。

1.1.6 Cursor

基于Visual Studio Code的AI增强IDE:

1.1.7 Wing IDE

Wing IDE(商业软件)是一款专为 Python 编程设计的集成开发环境 (IDE)。它提供了一套全面的工具,旨在帮助 Python 开发者提高效率和代码质量。

1.1.8 PyCharm

PyCharm(商业软件)是由 JetBrains 公司开发的一款专为 Python 编程语言打造的集成开发环境 (IDE)。它提供了丰富的工具和功能,旨在帮助 Python 开发者更高效地编写、调试和维护代码。

功能强大,但是使用的是java语言开发,有点笨重。

参考资料

1.2 Python 的模块

为了让我们初步了解 Python 中模块概念的能力和特性,我首先想用类似关键字的方式来描述五个模块。通常使用库或软件库来代替模块。使用简短的示例程序最能说明 Python 的功能。当然,您还不需要理解本节所示的源代码。毕竟,理解才是其他章节的目的。

1.2.1 NumPy

  • 简单的向量微积分程序。
import numpy as np

A=np.array([1, 2, 3])
B=np.array([4, 5, 6])

print("Vector A:",A)
print("Vector B:",B)
print("Total A+B:",A+B)
print("Product A*B:",A*B)
print("Cross product :",np.cross(A,B))
print("Scalar product:",np.dot(A,B))

执行结果:

Vector A: [1 2 3]
Vector B: [4 5 6]
Total A+B: [5 7 9]
Product A*B: [ 4 10 18]
Cross product : [-3  6 -3]
Scalar product: 32
  • 叉积(Cross product)

叉积,也称为向量积或外积,是一种在三维空间中定义的向量运算。它接受两个向量作为输入,并产生一个新的向量作为输出。这个新向量垂直于输入的两个向量所构成的平面,其方向由右手定则确定。

  • 标量积(Scalar product)

标量积,也称为点积(Dot product)或内积(Inner product),是一种接受两个等长的数字序列(通常是坐标向量),并返回一个单一数字(标量)的代数运算。

1.2.2 Matplotlib

  • 多项式函数图的简单示例。
import numpy as np
import matplotlib.pyplot as plt

x=np.arange(-2,6,0.01)
y=x**3-7*x**2+7*x+15
plt.plot(x,y)
plt.show()

1.2.3 SymPy

  • 符号微分和积分的简单示例。
from sympy import *

x=symbols("x")
y=x**3-7*x**2+7*x+15
y_1=diff(y,x,1)
y_2=diff(y,x,2)
y_3=diff(y,x,3)
Y=integrate(y,x)
print("1. Derivative:",y_1)
print("2. Derivative:",y_2)
print("3. Derivative:",y_3)
print(" Integral :",Y)

执行结果:

1. Derivative: 3*x**2 - 14*x + 7
2. Derivative: 2*(3*x - 7)
3. Derivative: 6
 Integral : x**4/4 - 7*x**3/3 + 7*x**2/2 + 15*x
  • 导数(Derivative)

导数是微积分中的一个基本概念,它表示函数在某一点处的变化率。通俗来说,导数告诉我们函数在这一点上是变大、变小还是保持不变,以及变化的速度有多快。

1.2.4 SciPy

使用 SciPy 进行数值积分

import scipy.integrate as integral
def f(x):
    return x**2

A=integral.quad(f,0,5)
print("Area A=",A[0]) 

输出

Area A= 41.66666666666666

第 6 章将介绍 SciPy 模块。

1.2.5 VPython

使用 VPython编写弹跳球动画的示例。

import scipy.integrate as integral
def f(x):
    return x**2

A=integral.quad(f,0,5)
print("Area A=",A[0]) 

输出

Area A= 41.66666666666666

第 7 章将介绍 VPython 模块。当然,我们提到的 Python 模块的所有功能并不能在本书中详尽阐述。如果您错过了某个特定主题,我建议您参考在线文档作为补充信息来源。

1.3 如何阅读本书?

如何阅读本书?基本上,你可以独立阅读各个章节。如果您已经了解 Python 的基本结构,那么可以跳过第 2 章。如果刚刚开始学习,则必须先阅读这一章,这是理解后续章节的前提。

我们的讲解和知识传授方法基于一个统一的原则: 每个主题都会介绍一至三个来自电气工程、机械工程或物理学的实例。在简要介绍任务之后,打印出完整的源代码。在源代码之后,直接进行输出(计算结果)。然后对源代码进行讨论和分析。

我们对源代码的分析还包括对结果(输出)的分析。结果是否符合预期?程序是否完全解决了设定的任务?通常情况下,只有在仔细查看输出结果后,你才能完全理解程序的源代码。查看输出结果后,你可以再次分析源代码。

在每章的最后,都会提供一个或多个项目任务,并对其进行讨论和全面解决,以巩固和拓展该章所学内容。


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐