美文网首页
scipy一维热传导方程的求解

scipy一维热传导方程的求解

作者: 一路向后 | 来源:发表于2020-12-27 16:19 被阅读0次

1.源码实现

from scipy.integrate import odeint
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

h = 0.1                         #空间步长
N = 30                          #空间步数
dt = 0.0001                     #时间步长
M = 10000                       #时间的步数
A = dt / (h**2)                 #lambda*tau/h^2
U = np.zeros([N+1,M+1])         #建立二维空数组
Space = np.arange(0,(N+1)*h,h)  #建立空间等差数列,从0到3,公差是h

#边界条件
for k in np.arange(0,M+1):
        U[0,k] = 0.0
        U[N,k] = 0.0

#初始条件
for i in np.arange(0,N):
        U[i,0]=4*i*h*(3-i*h)

#递推关系
for k in np.arange(0,M):
        for i in np.arange(1,N):
                U[i,k+1]=A*U[i+1,k]+(1-2*A)*U[i,k]+A*U[i-1,k]

def defun(i, k):
        return U[i,k]

x = np.arange(0,N)
t = np.arange(0,M)

x,t = np.meshgrid(x, t)
s = defun(x, t)

x = x * h
t = t * dt

#print(x)
#print(t)
#print(s)

# 绘图
fig = plt.figure()
ax = Axes3D(fig)
ax.invert_xaxis()
ax.plot_surface(x, t, s, cmap="viridis")

plt.savefig("test.png")

2.运行程序

$ python3 example.py

3.执行结果

test.png

相关文章

  • 使用scipy库的root和fsolve函数求解方程

    求解非线性方程 使用scipy库的 root, fsolve 函数求解非线性方程。 求解传热方程(热辐射+热传导)...

  • scipy一维热传导方程的求解

    1.源码实现 2.运行程序 3.执行结果

  • 使用Python+SymPy 求解线性方程组

    最近几天在复习线性代数,想用Python求解线性方程组,最开始想用SciPy,但是SciPy求解方程组好像要求系数...

  • 热传导方程

    热传导方程 方程及其定解问题的导出 齐次热传导方程: 非齐次热传导方程: 当物体体积很大,考虑时间很短和较小范围...

  • 安装Scipy库

    Scipy库在Numpy的基础上增加了众多的数学计算。例如常微分方程数值求解,稀疏矩阵等。 但因Scipy库的安装...

  • 第二章:Python数据分析简介

    2.1Scipy求解非线性方程组和数值积分 2.2Matplotlib作图基本代码 如果使用的是中文标签,就会发现...

  • Scipy数据操作归纳总结

    Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、...

  • 利用蒙特卡罗法求解热传导方程

    蒙特卡罗方法简介 蒙特卡罗(Monte Carlo, abbr. MC)方法是利用独立重复的统计实验来对物理及数学...

  • 2020-01-16

    机器学习概念统计学样本 —— 数据集待求解方程(待求解方程中的未知数为参数) —— 预训练模型求解参数后的N元方程...

  • 10. python的优化算法包

    sciPy优化算法包sciPy中的optimize中的函数linprog使用simplex方法来求解线性规划问题,...

网友评论

      本文标题:scipy一维热传导方程的求解

      本文链接:https://www.haomeiwen.com/subject/dvvonktx.html