python解常微分方程

python解常微分方程的步骤如下:

  1. 将计算区间分为n个小段,在每一小段上将求解的曲线作为直线处理;
  2. 将一个n阶常微分方程转换成[y_n,y_n-1,…,y_i,…,y_0]向量的线性方程组,其中y_i表示y的i阶导数;
  3. 确定初始状态
  4. 迭代求解每一个点的y值(欧拉法),最后通过matplotlib做出曲线图。

以下面的三阶常系数微分方程为例:
1. 假设求解区间为0~4,划分为400个小区间
2. 转换成对应的线性方程组,如下图
3. 初始状态设为y2_0 = 2, y1_0 = 1, y0_0 = 0
4. 求解及出图,见代码

from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plty2_0 = 2
y1_0 = 1
y0_0 = 0
y0 = [y0_0, y1_0,y2_0]# 函数func,y是指上面提到的有y的各阶导数组成的向量,t是指自变量
def func(y, t):T=[[1,1,1], [1,0,0],[0,1,0]]return T@yx = np.arange(0, 4.0, 0.1)
t=x
y = odeint(func, y0, t)print(x)
print(y)plt.plot(x,y[:,0])
plt.show()

结果如下:

python求解点绕定轴转动后的坐标

用python计算定点绕定轴转动一定角度的坐标,输出结果如下:

import numpy as npdef main():x = np.array([1,0,0])y = np.array([0,1,0])z = np.array([0,0,1])axis_in = input('Enter the coordinates of rotation axis:\n')axis  = np.array([np.float(n) for n in axis_in.split()])#print (axis)angle_in = input('Enter the rotation angle:\n')angle  = np.float(angle_in)*np.pi/180#print (np.degrees(angle)) point_in = input('Enter the coordinates to be rotated:\n')point = np.array([np.float(n) for n in point_in.split()])#print (point)axis1 = np.array([axis[0],axis[1],0])theta = np.arccos((axis1@x)/np.linalg.norm(axis1))print ('theta: ', np.degrees(theta))t1 = np.array([[np.cos(-theta), -np.sin(-theta),0], [np.sin(-theta), np.cos(-theta),0], [0, 0, 1]])#zprint ('coordinates transform matrix:\n', t1)point1 = t1@pointprint ('transformed coordinates I:\n', point1)phi = np.arccos((axis@z)/np.linalg.norm(axis))print ('phi: ', np.degrees(phi))t2 = np.array([[np.cos(-phi), 0, np.sin(-phi)], [0, 1, 0], [-np.sin(-phi), 0, np.cos(-phi)]])#yprint ('coordinates transform matrix:\n', t2)point2 = t2@point1print ('transformed coordinates II:\n', point2)t3 = np.array([[np.cos(angle), -np.sin(angle),0], [np.sin(angle), np.cos(angle),0], [0, 0, 1]])#zprint ('rotation matrix under new coordinates:\n', t3)rotation = np.transpose(t1) @ np.transpose(t2) @ t3 @ t2 @ t1print ('rotation matrix under original coordinates:\n', rotation)point_rotated = rotation @ np.transpose(point)print ('the coordinates of rotated point is: \n', point_rotated)if __name__ == "__main__":main()

python绘制球面渐开线

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3Dr_theta=np.radians(45)
l=1000cr,ctheta=np.mgrid[0:l*np.sin(r_theta):1000j,0:6.28:50j]
cx=cr*np.cos(ctheta)
cy=cr*np.sin(ctheta)
cz=np.sqrt(cx**2+cy**2)/np.tan(r_theta)gammar=np.linspace(0,1,100)
theta=np.arctan(np.sin(r_theta)*np.tan(gammar))/np.sin(r_theta)-gammar
R=np.arctan(np.tan(r_theta)/np.cos(gammar ))
x=l*np.sin(R)*np.sin(theta)
y=l*np.sin(R)*np.cos(theta)
z=l*np.cos(R)fig=plt.figure()
fig.suptitle('sperical Involute')ax = Axes3D(fig)ax.plot_surface(cx,cy,cz)
ax.plot(x,y,z)
plt.axis('equal')plt.show()

多元酸水解pH值计算

磷酸二氢钾的水解系数

化简得到的平衡方程:

[H+]^5
+ (k1+c) [H+]^4
+ (k1k2-k) [H+]^3
+ (k1k2k3-(kk1+ck1k2)) [H+]^2
- (kk1k2+2ck1k2k3) [H+]^1
- kk1k2k3 = 0

python求解,有点毛病,python算不出来,后来改用的MATLAB。

from sympy import *x = Symbol('x')k1 = 0.00752
k2 = 0.0000000623
k3 = 0.00000000000022
k = 0.00000000000001
c =0.01
p4=k1+c
p3=k1*k2-k
p2=k1*k2*k3-(k*k1+c*k1*k2)
p1=-(k*k1*k2+2*c*k1*k2*k3)
p0=-k*k1*k2*k3print(p4,p3,p2,p1,p0)
print(solve([x**5+p4*x**4+p3*x**3+p2*x**2+ p1*x+0.1+p0],[x]))

python科学计算的几个例子相关推荐

  1. python 科学计算基础教程电子版-自学Python 编程基础、科学计算及数据分析

    自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 ☆☆☆☆☆ 李金 著 ...

  2. python科学计算基础教程pdf下载-python科学计算 第二版 PDF 下载

    相关截图: 资料简介: 本书详细介绍Python科学计算中最常用的扩展库NumPy.SciPy.matplotlib.Pandas.SymPy.TTK.Mayavi.OpenCV.Cython,涉及数 ...

  3. Python科学计算之Pandas基础学习

    Python科学计算之Pandas基础学习 导入Pandas 我们首先要导入我们的演出明星--Pandas. 这是导入Pandas的标准方式.显然,我们不希望每时每刻都在程序中写'pandas',但是 ...

  4. numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy

    文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...

  5. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...

    第1章 Python科学计算环境的安装与简介 1 1.1 Python简介 1 1.1.1 Python 2还是Python 3 1 1.1.2 开发环境 2 1.1.3 集成开发环境(IDE) 5 ...

  6. python科学计算是什么意思_Python科学计算和数据分析(NumPy详细介绍)

    本文介绍的科学计算.数据分析必备基础知识. 本文全文约2600字,阅读时间约15分钟,请你耐心观看. 本文使用的开发环境是Python3.8,Numpy版本是1.19,本文的例子全部经过验证,你可以直 ...

  7. Python 科学计算和绘图

    转自:http://python.jobbole.com/87471/ 原文出处: 達聞西    给深度学习入门者的Python快速教程 基础篇 numpy和Matplotlib篇 本篇部分代码的下载 ...

  8. python科学计算2 数据组织形式与numpy入门

    文章目录 1 数据组织 1.1 单个数据 1.2 数据组织 1.3 数据组织的形式 1.3.1一维数据 1.3.2 二维数据 1.3.3 多维数据 1.3.4 高维数据 1.4普通数据组织的缺点 2 ...

  9. python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环

    展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...

  10. 一文带你熟悉简单实用的Python科学计算库NumPy

    Python科学计算库NumPy 安装 数组的创建 array创建 **arange** 创建 **随机数创建** 方法numpy.random.random(size=None) 方法numpy.r ...

最新文章

  1. [笔记]C#基础入门(八)——C#标识符的命名规则
  2. 【以前的空间】主席树
  3. DWRUtil的方法使用说明
  4. @Async的使用、原理及使用时可能导致的问题
  5. Jquery通过ajax请求NodeJS返回json数据
  6. 成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra
  7. python区块链开发_10个开源的Python区块链项目
  8. .NET 程序集单元测试工具 SmokeTest 应用指南
  9. mysql innodb flush method_对innodb_flush_method的一点解释
  10. STM32F10x_RTC秒中断
  11. Conditional Expectation Entropy
  12. 为什么selenium定位不到元素
  13. 认知维度与API的可用性评估
  14. linux操作系统关闭防火墙,linux操作系统关闭防火墙的方法
  15. 30个外贸业务员常用邮件模板案例分享
  16. 深度解析“中国制造2025”VS德国“工业4.0”,一场没有硝烟战争
  17. Android打开自启动设置页面
  18. DP之Warshall算法和Floyd算法
  19. android 版本更新和下载安装适配7.0 8.0 9.0
  20. [PRIMITIVE TECHNOLOGY]澳洲小哥的黑皮豆/black been/摩顿湾板栗(栗子)/Moreton Bay Chestnut...

热门文章

  1. 如何用计算机截部分屏,电脑如何长屏幕的截图?电脑截取长屏的方法
  2. MATLAB/Simulink系统建模与仿真
  3. 【板栗糖GIS】如何将3dmax数据导入到超图软件中
  4. 计算机组成原理-计算机硬件的基本组成
  5. 知网被引第一、第二的论文,都出自这位双一流大学教授
  6. ngrok转发mysql连接_使用小米球 -Ngrok 实现内网转发
  7. 7、IPsec 实验
  8. java读取中文_java读写中文文件
  9. C51系列单片最小机原理图及L298N接线图
  10. 终于搞定了一个C#的聊天室 使用的SQLServer+VS 用的Socket 整理下搜的书签