Math 如何在javascript中实现反拉普拉斯变换?

Math 如何在javascript中实现反拉普拉斯变换?,math,javascript,numerical-methods,system-analysis,Math,Javascript,Numerical Methods,System Analysis,我正在编写一个javascript小程序,让其他人很容易看到有无比例控制器的系统是如何工作的,以及输出是什么 首先对小程序做一点解释(如果你愿意,可以跳过这个,真正的问题在最后一段中): 我设法为系统实现了一种输入方式(在频域中),因此小程序可以计算并向用户显示其提供的系统。此时,小程序计算系统的极点和零点,将它们与根轨迹一起绘制,绘制系统的奈奎斯特曲线和系统的波特曲线 下一步我想让小程序做的是计算和绘制脉冲响应。为此,我需要对系统的传递函数进行逆拉普拉斯变换 现在真正的问题是: 我在频域中有一

我正在编写一个javascript小程序,让其他人很容易看到有无比例控制器的系统是如何工作的,以及输出是什么

首先对小程序做一点解释(如果你愿意,可以跳过这个,真正的问题在最后一段中):

我设法为系统实现了一种输入方式(在频域中),因此小程序可以计算并向用户显示其提供的系统。此时,小程序计算系统的极点和零点,将它们与根轨迹一起绘制,绘制系统的奈奎斯特曲线和系统的波特曲线

下一步我想让小程序做的是计算和绘制脉冲响应。为此,我需要对系统的传递函数进行逆拉普拉斯变换

现在真正的问题是: 我在频域中有一个函数(传递函数)。该函数是一个有理函数,作为两个多项式存储在程序中(分子和分母由其系数存储)将此函数转换为时域的最佳方法是什么?(逆拉普拉斯)。或者是否有一个开源库已经实现了这一点。我已经搜索过了,但只找到了一些数学库,用于更简单的数学


提前感谢

这是一个相当复杂和有趣的问题。一些想法

(1) 如果解必须严格为JS:则可通过部分分式分解找到某些有理函数的逆LT。你有多项式的数值系数,对吗?您可以尝试在JS中实现部分分数分解,或者找到一个。这里的困难在于不能保证你能通过部分分数找到逆LT


(2) 使用JS作为粘合代码,并将rational函数发送到另一个进程(运行例如Sympy或Maxima)以计算反向LT。这样,您可以利用所有可用函数,但连接到另一个进程并解析结果需要一些工作。至少对于Maxima,已经有许多项目使用Maxima作为计算后端;请参阅:

问题现在已解决。在检查了一些数值方法之后,我使用系统的极点和最小二乘法来计算系数,进行了部分分数分解。在这之后,反比就不难找到了

谢谢你的建议;)


问我你是否想看一下代码。

Javascript数学函数与大多数其他语言基本相同。你在做什么手术时遇到困难?你试过什么?R-lang可能更容易接受,然后用一些响应提供JS请求。。但是我不知道!目前我还没有尝试过任何东西。我在网上搜索一些关于做逆拉普拉斯的数值算法的清晰解释。已经找到一些方法的:星期法,塔尔博特法,。。。有没有这样的经验?是的,有一点,还有Post的公式,但是对于JS实现来说,很难给你一个答案。严格来说,它不一定是JS,但它必须用JS实现。还要注意的是,该服务器将主机的网站不是我的,所以我不能安装重型程序语言在它。感谢的想法!下周我会看一看(下周需要关注其他事情)。很高兴听到你让它工作起来了。如果可能的话,您可以发布到代码库或其他位置的链接,以便其他人可以看到您是如何解决它的。