逆Laplace数值逆变换

article/2025/9/28 14:03:05


 

01拉普拉斯变换定义


1.变换公式


2. 常见函数的Laplace变换


 

02 Laplace数值逆变换


根据拉普拉斯逆变换的公式,可以看到,f(t)可以变成如下的公式。

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2020-07-10
#
# Note:
#============================================================from headm import *#################################################################
#   Function InvLap(t,omega,sigma,nint), numerically inverts a  #
#   Laplace transform F(s) into f(t) using the Fast Fourier     #
#   Transform (FFT) algorithm for a specific time "t", an       #
#   upper frequency limit "omega", a real parameter "sigma"     #
#   and the number of integration intervals "nint" .            #
#                                                               #
#   Function F(s) is defined in separate as Fs(s) (see code     #
#   below). Fs(s) has to be changed accordingly everytime the   #
#   user wants to invert a different function.                  #
#                                                               #
#   I suggest to use omega>100 and nint=50*omega. The higher    #
#   the values for omega, the more accurate the results will be #
#   in general, but at the expense of longer processing times.  #
#                                                               #
#   Sigma is a real number which must be a little bigger than   #
#   the real part of rightmost pole of the function F(s). For   #
#   example, F(s) = 1/s + 1/(s-2) + 1/(s+1) has poles for s=0,  #
#   s=2 and s=-1. Hence, sigma must be made equal to, say,      #
#   2.05 so as to keep all poles at the left of this value.     #
#   The analytical inverse for this simple function is          #
#   f(t) = 1 + exp(-t) + exp(2t). For t=1.25, omega=200,        #
#   nint=10000 and sigma=2.05, the numerical inversion yields   #
#   f(1.25) ~= 13.456844516, or -0.09% away from the actual     #
#   analytical result, 13.468998757 (results truncated to 9     #
#   decimal places). This is the example used in this code.     #
#                                                               #
#   Creator: Fausto Arinos de Almeida Barbuto (Calgary, Canada) #
#   Date: May 18, 2002                                          #
#   E-mail: fausto_barbuto@yahoo.ca                             #
#                                                               #
#   Reference:                                                  #
#   Huddleston, T. and Byrne, P: "Numerical Inversion of        #
#   Laplace Transforms", University of South Alabama, April     #
#   1999 (found at http://www.eng.usouthal.edu/huddleston/      #
#   SoftwareSupport/Download/Inversion99.doc)                   #
#                                                               #
#   Usage: invoke InvLap(t,omega,sigma,nint), for t>0.          #
#                                                               #
#################################################################
#   We need cmath because F(s) is a function operating on the
#   complex argument s = a + bj
from math import ceil
from cmath import *#   *** Driver InvLap function  ***
def InvLap(t,omega,sigma,nint):
#   Sanity check on some parameters.omega = ceil(omega)nint = ceil(nint)if omega <= 0:omega = 200if nint <= 0:nint = 10000return (trapezoid(t,omega,sigma,nint))#   *** Function trapezoid computes the numerical inversion. ***
def trapezoid(t,omega,sigma,nint):sum = 0.0delta = float(omega)/nintwi = 0.0#   The for-loop below computes the FFT Inversion Algorithm.
#   It is in fact the trapezoidal rule for numerical integration.for i in range(1,(nint+1)):witi = complex(0,wi*t)wf = wi + deltawfti = complex(0,wf*t)fi = (exp(witi)*Fs(complex(sigma,wi))).realff = (exp(wfti)*Fs(complex(sigma,wf))).realsum = sum + 0.5*(wf-wi)*(fi+ff)wi = wfreturn ((sum*exp(sigma*t)/pi).real)#   *** The Laplace function F(s) is defined here.  ***
def Fs(s):
#    return (1.0/s + 1.0/(s+1.0) + 1.0/(s-2.0))return 1.0/s#   Function InvLap(t,omega,sigma,nint) is invoked.
printf(InvLap(1.25, 200, 3.05, 10000))#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

 

03一些常见函数数值逆变换结果


  • f(t)=sin(t)
def Fs(s):return 1/(s*s+1)

▲ sin(t)数值逆变换结果

▲ sin(t)数值逆变换结果

  • f(t)=t

    ▲ 函数t的Laplace数值逆变换结果

    ▲ 函数t的Laplace数值逆变换结果

  • f(t)=exp(-t)

▲ exp(-t)函数数值逆变换结果

▲ exp(-t)函数数值逆变换结果

 

※ 结论


本文测试了 一个简易版本的数值Laplace逆变换的程序。

这个算法需要人工给出积分的上下限,积分限的实部等。如果参数给定不合适,计算出来的数值误差较大。


http://chatgpt.dhexx.cn/article/V6mFUfVZ.shtml

相关文章

Laplace变换

众人推荐的 MIT公开课——拉普拉斯变换简介 用级数来理解 拉普拉斯变换比傅里叶变换多了一个衰减因子&#xff0c;使得不满足绝对可积的信号也能转化为频域信号。 两者都能描述幅值信息和相位信息。 --------------------------------------------------------------------…

信号与系统(Python) 学习笔记 (6) 拉普拉斯变换 Laplace Transform

【总目录】 (1) 简介 Intro(2) 傅里叶 Fourier 常用函数的傅里叶变换汇总 (3) LTI 系统 与 滤波器 二次抑制载波振幅调制接收系统 Python (4) 取样 Sampling(5) 离散傅里叶 Discrete Fourier(6) 拉普拉斯变换 Laplace Transform 文章目录 6. 拉普拉斯变换6.1. 拉普拉斯变换 L…

实验八、拉普拉斯变换

实验八、连续系统的复频域分析 一、实验目的二、实验器材三、实验原理1、用MATLAB进行Laplace正、反变换例1&#xff1a;分别用Laplace和ilaplace函数求 2、用MATLAB进行部分分式展开3、用MATLAB分析LTI系统的特性 三、实验内容1、验证实验原理中所述的相关程序&#xff1b;2、…

Laplace变换笔记(2)

对实域内f(t)的Laplace变换函数如下 对s域 Laplace变换收敛域&#xff08;边界条件&#xff09;&#xff1a; 拉普拉斯变换乘以衰减因子以后要保证衰减和可积&#xff0c;这样的衰减因子所满足的条件则为收敛域 Laplace变换逆变换&#xff1a; 定义式 线性性质拆分&#xff1…

MATLAB——拉氏变换及反其变换、Z变换及其反变换

一、拉式正反变换 1、拉式变换 【时域转s域】 laplace(F) 2、拉式反变换 【s域转时域】 ilaplace(L) 二、Z正反变换 1、Z变换 【ztrans 时域转Z域】 ztrans(f); ztrans(f,w); ztrans(f,k,w); 2、Z反变换 【iztrans Z域转时域】 iztrans(f); iztrans(f,w); iztrans(f…

【高数+复变函数】Laplace变换

文章目录 【高数复变函数】Laplace变换1. 问题引入及定义2. 存在定理3. 常见Laplace变换 【高数复变函数】Laplace变换 1. 问题引入及定义 上一节&#xff1a;【高数复变函数】傅里叶积分 回顾之前我们讲的傅里叶变换要满足的条件有&#xff08;也就是傅里叶积分要满足的条件…

[Matlab-5]Laplace变换

[Matlab-5]Laplace变换 Laplace 变换&#xff08;数学&#xff09;Laplace 变换和逆变换Laplace 变换与Fourier变换的关系极点(pole)与零点&#xff08;zero&#xff09;作3D曲面图&#xff08;surface plot&#xff09;标题会用到的函数颜色挑选栗子 给定微分方程求Laplace变换…

拉氏变换

拉氏变换 拉氏变换的理解 一个函数f(t)的Laplace变换定义为 这个式子说的是一件这样的事情&#xff1a;F(s)是实空间函数f(t)在复空间中以为基底的投影。 解释 首先&#xff0c;定义复空间上两个函数f,g的内积为 很容易知道是复空间中的一组正交基。那么根据内积的意义——…

【模拟电路建模与控制系统分析】01Laplace变换

0.若没有拉氏变换会怎样&#xff1f; 根据上述微分方程&#xff0c;求输入输出关系&#xff0c;即求解微分方程。 以上为一个卷积关系&#xff0c;求解设计卷积、微分方程&#xff0c;求解困难。而拉氏变换将微分方程变成代数方程&#xff0c;得出系统传递函数&#xff0c;卷积…

信息与通信的数学基础——Laplace变换

文章目录 1. Laplace变换的概念1.1 Laplace变换的引入1.2 Laplace变换的定义1.2.1 常见的Laplace变换 2. Laplace变换的性质2.1 线性性质与相似性质[1]2.2 延迟性质与位移性质2.2.3 利用延迟性质求逆变换[2] 2.3 微分性质2.3.1 复合性质的Laplace变换[3] 2.4 积分性质 3. Lapla…

Eclipse配置JDK、Maven

一、配置JDK 1.1、打开电脑eclipse&#xff0c;进入到eclipse的主页面&#xff0c;点击【window】–【preferences】选项&#xff0c;进入eclipse的首选项管理 1.2、进入【preferences】设置后&#xff0c;在左上角的搜索栏中输入【jdk】关键&#xff0c;就可以搜索出jdk的相…

MAC上配置jdk

如何在MAC上配置jdk 相信每个拿到MAC的小伙伴都是很欣喜的&#xff0c;但是由于MAC系统与WIN系统有着极大的不同&#xff0c;所以使用起来会有一些小困扰。这是我个人的第一篇博客&#xff0c;我目前应该完全算是个小菜鸡&#xff1b;我会在这里分享使用MAC的心得和做一些技术…

Eclipse配置JDK,Tomcat

配置JDK 选择“Window→Preferences→在搜索框中输入 jre→Java →Installed JREs 并双击→Add→Standard VM→Next→在‘JRE home’ 栏浏览选择 JRE 安装目录→Finish→勾选 jre1.8.0_121 项→Apply and Close”&#xff0c;设置 Eclipse 所关联的 JRE。若只安装有一个版本的 …

1.1 Android Studio环境配置-配置JDK

文章目录 下载JDK配置环境变量检测环境配置 下载JDK 1、进入Oracle官网&#xff1a;https://www.oracle.com/java/technologies/javase-downloads.html 2、当前最新JDK 已经出到14了&#xff0c;我们选择JDK8就可以了&#xff08;当然你想尝鲜Java SE 14也可以&#xff09;&…

Ubuntu中安装配置JDK1.8

JDK1.8安装配置 下载JDK 点击下载jdk 解压 将下载的压缩包解压到/opt目录下 tar -zxvf 下载的jdk压缩包名字 -C /opt设置软链接 切换到/opt目录下 cd /opt为了避免jdk的多次下载以及修改&#xff0c;我们设置软链接&#xff0c;我们的所有配置都朝向链接 ln -s 下载的j…

手把手教你安装并配置JDK

前言 JDK是学习JAVA中不可或缺的一部分&#xff0c;本篇文章将手把手教你如何安装并配置JDK 一、JDK的下载 前往oracle官网下载JDK。 常用的JDK有JDK1.8&#xff0c;JDK12等。 二、JDK的安装 JDK的安装基本属于傻瓜式安装&#xff0c;全程下一步即可。 需特别注意&#x…

IDEA配置JDK1.8

1、下载 官方下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/#java8-windows 2、安装 01、下一步 02、修改安装路径 03、不安装公共JRE 04、关闭 3、环境变量 添加JAVA_HOME对应JDK的安装目录 Path新建变量%JAVA_HOME%\bin

Ubuntu配置jdk环境

文章目录 一、前言二、配置过程1、在/usr/lib下创建jvm文件夹2、指向下载jdk包的文件夹3、解压缩jdk包到/usr/lib/jvm4、打开环境文件5、修改环境变量6、使环境生效7、在系统注册此jdk8、查看JAVA版本 三、总结 一、前言 通过本文记录Ubuntu配置jdk环境&#xff0c;供自己以后…

一本通题解——1433 愤怒的牛

题目链接 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1433。 自己OJ&#xff1a;http://47.110.135.197/problem.php?id4458。 题目 题目描述 农夫 John 建造了一座很长的畜栏&#xff0c;它包括 N (2 ≤ N ≤ 100,000)个隔间&#xff0c;这些小…

大牛给计算机专业学生的 7 个建议

老羊快跑&#xff0c;一个安静低调的公众号&#xff0c;我们关注教育、科技和互联网。 Joel Spolsky的双重身份&#xff08;昔日耶鲁大学计算机系学长&#xff0c;今日Fog Creek软件公司的CEO&#xff09;&#xff0c;所以听听他的建议&#xff0c;对于当今无数困扰于就业压力…