- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 Matlab 中求解方程最耗时的方法是什么:
exp(ax)-ax+c=0
a
和 c
是常量,x
是我要查找的值?目前我正在使用内置的求解器函数,我知道解是单值的,但它花费的时间比我想要的要长。
最佳答案
仅仅希望某些东西运行得更快是不够的。
而且,抱歉,如果 fzero 不够快,那么对于通用的根查找工具来说,您也不会做得更好。
如果您不使用 fzero,那为什么不呢?毕竟,这是您没有命名的内置求解器。 (明确!否则我们必须猜测。)也许您正在使用符号工具箱中的 solve。它会更慢,因为它是一个符号工具。
综上所述,我可能会指出,您可以通过认识到这确实是单个参数 c 的问题来进行改进。即把问题转化为求解
exp(y) - y + c = 0
在哪里
y = ax
一旦知道 y 的值,除以 a 即可得到 x。
当然,这种看待问题的方式很明显表明您的陈述不正确,解是单值的。对于小于 -1 的 c 的任何负值,有两种解决方案。当c=-1时,解唯一,当c大于-1时,实数无解。 (如果你允许复杂的结果,那么那里也会有解决方案。)
因此,如果您必须经常解决上述问题,而 fzero 是不够的,那么我会考虑一个样条模型,在该模型中,我已经针对足够数量的不同 c 值预先计算了问题的解决方案。对该样条模型进行插值以获得任何 c 的 y 预测值。
如果我需要更高的准确性,我可能会从该点开始采取单个牛顿步。
如果您可以使用 Lambert W 函数,那么 solve 实际上确实为我们提供了一般问题的解决方案。 (如你所见,我只是在猜测你试图用什么来解决这个问题,你的目标是什么。明确的问题可以帮助试图帮助你的人。)
solve('exp(y) - y + c')
ans =
c - lambertw(0, -exp(c))
lambertw 的零第一个参数产生负解。事实上,我们可以使用 lambertw 为任何不大于 -1 的 c 提供正实数解和负实数解。
X = @(c) c - lambertw([0 -1],-exp(c));
X(-1.1)
ans =
-0.48318 0.41622
X(-2)
ans =
-1.8414 1.1462
关于matlab - 在 matlab 中求解 x 的 exp(ax)-ax+c=0 最快的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264572/
如果我在 sympy 中使用 simplify() 函数,log((exp(x)+1)/exp(x)) 会简化为 log (1+exp(-x)),但是,当我阅读文档时,简化函数“可能会不必要地慢”,我
我正在创建一个 Validator类(class)。我正在尝试实现 Linq SelectMany我的验证器的扩展方法能够使用 Linq 查询组合表达式并验证最终结果,即使基础值发生变化也是如此。 下
我正在尝试编写一个程序来计算 exp(-x) 和 exp(x) 的泰勒级数最多 200 次迭代,对于大 x。 (exp(x)=1+x+x^2/2+...). 我的程序非常简单,看起来应该可以完美运行。
我正在看书,看到这段代码: public Animal getWinner(List animals) { return animals == null || animals.size() =
我正在将脚本从 matlab 复制到 C++ 函数中。但是,对于 exp 函数,我不断得到不同的结果。例如,以下片段: std::complex final_b = std::exp(std::com
我不太了解 Python,但下面的代码片段结果是 0.367879441171 from math import exp window = 10000 td = 1 print exp(-td/win
为什么/何时使用其中一种?我刚刚遇到了一个问题,我在使用一个时收到警告,而在使用另一个时没有警告。 例子: tableView.tableHeaderView = label; // worked [
这个问题在这里已经有了答案: java.lang.Math.log replaced by intrinsic call, why not java.lang.Math.exp()? (1 个回答)
我正在将一些 Python 代码转换为 C 代码。 下面的复数输出上的 Python NumPy exp (6.12323399574e-17-1j) 为 k=1、l=4。 numpy.exp(-2.
我正在尝试学习或生成任何代码来学习字符串day("26.02.2009") --->给我“星期三” 我需要C#中的静态datefunction。 例如: datetime Str_day= Retur
[编辑:整个事情有一个非常简单的解决方案:矩阵使用单数据类型而不是默认的双数据类型] 我刚刚注意到 matlab 中的一个有点奇怪的(我认为)行为,想知道是什么导致了它。我有一个 10000x500
我创建了一个运行良好的网站,但我想添加干净的 url,如 exp.com/sec1 而不是 exp.com/#sec1,我有点用 History.pushState 实现了它,但是当有人重新加载链接将
我目前正在听一个关于自动语音识别 (ASR) 的讲座。最后一讲是关于矢量量化(VQ)和k最近邻(kNN)以及二叉树和高斯混合模型(GMMs)。 据讲师介绍,VQ只是通过计算GMM的一个近似值来加速GM
在 oracle 中,我们有 exp效用。我们将其用作 exp username/password@database .这里我们可以使用提供主机和端口详细信息来导出到远程数据库表吗?如果是,提供这些的
如何使用 at-exp 来包含 blew 原始字符串: package foo } import ( 我是这样写的,但是不能包含“}”字符: #lang at-exp racket/base
我试图了解 http://gruntthepeon.free.fr/ssemath/sse_mathfun.h 中 exp_ps() 的实现或 http://software-lisc.fbk.eu/
我正在使用模板类 ( Pol ) 来计算多项式,并希望使用成员函数 ( .exp() ) 将多项式 P 转换为其指数 e^P。 重载指数函数工作正常,编译器选择原始指数 exp(double)如果T
在python中,我们说万物皆对象, 例如:表达式x
您认为可以使用多个线程来计算指数函数吗?我有一个代码,瓶颈是 long double expl( long double ) 的计算。所有其余的都已经并行化了。我尝试了几种近似值,但到目前为止没有任何
我正在尝试将 exp(x) 函数扩展为泰勒级数。这是代码: double CalcExp(){ double eps = 0.0000000000000000001; double elem = 1.
我是一名优秀的程序员,十分优秀!