标签: simplify

GPS轨迹的简化/优化

我有一个GPS轨道gpxlogger(1)(由gpsd作为客户端提供).GPS接收器更新其坐标每隔1秒,gpxlogger的逻辑是非常简单的,它记位置(lat,lon,ele)和时间戳(time)从GPS接收到的每Ñ秒(n = 3时在我的情况).

写下几个小时的音轨后,gpxlogger会保存几兆字节的GPX文件,其中包含数千个点.之后,我尝试在地图上绘制此曲目并将其与OpenLayers一起使用.它可以工作,但是数千个点使得使用地图变得漫长而缓慢.

据我所知,有几千个不理想的点.有无数的点可以被删除而不会丢失几乎任何东西:当有几个点构成大致直线并且我们在它们之间以相同的恒定速度移动时,我们可以离开第一个和最后一个点然后抛出别的什么.

我想过使用gpsbabel进行这样的轨道简化/优化工作,但是,唉,它的简化过滤器仅适用于路径,即仅分析路径的几何形状,没有时间戳(即不检查速度是否大致恒定).

是否有一些现成的实用程序/库/算法可用于优化轨道?或者可能是我错过了gpsbabel的一些聪明选择?

optimization gps simplify gpx

5
推荐指数
1
解决办法
9521
查看次数

在Mathematica中,如何将a == +/- b等表达式简化为^ 2 == b ^ 2?

在数学,我怎么能简化样表达式a == b || a == -ba^2 = b^2?我尝试过的每个函数(包括Reduce,Simplify和FullSimplify)都没有这样做.

请注意,我希望这适用于任意(多项式)表达式ab.另一个例子,

a == b || a == -b || a == i b || a == -i b
Run Code Online (Sandbox Code Playgroud)

(想象中的i)和

a^2 == b^2 || a^2 == -b^2
Run Code Online (Sandbox Code Playgroud)

应该简化为a^4 == b^4.

注意:解决方案应该在逻辑级别工作,以免损害其他不相关的逻辑案例.例如,

a == b || a == -b || c == d
Run Code Online (Sandbox Code Playgroud)

应该成为

a^2 == b^2 || c == d.
Run Code Online (Sandbox Code Playgroud)

wolfram-mathematica simplify

5
推荐指数
2
解决办法
646
查看次数

表达模板:提高评估表达式的性能?

通过表达模板技术,一个矩阵表达式就像

D = A*B+sin(C)+3.;
Run Code Online (Sandbox Code Playgroud)

就计算性能而言,它与手写for循环几乎相同.

现在,假设我有以下两个表达式

D = A*B+sin(C)+3.;
F = D*E;
cout << F << "\n";
Run Code Online (Sandbox Code Playgroud)

在表达模板的"经典"实现中,计算性能将与for顺序中的两个循环的计算性能几乎相同.这是因为在=遇到运算符后立即计算表达式.

我的问题是:是否有任何技术(例如,使用占位符?)来识别D实际上未使用的值,并且感兴趣的值是唯一的元素F,因此只有表达式

F = E*(A*B+sin(C)+3.);
Run Code Online (Sandbox Code Playgroud)

评估并且整个性能等同于单个for循环的性能?

当然,这种假设技术也应该能够返回来评估表达

D = A*B+sin(C)+3.;
Run Code Online (Sandbox Code Playgroud)

如果稍后在代码D中需要值.

预先感谢您的任何帮助.

编辑:结果试验了Evgeny提出的解决方案

原始说明:

Result D=A*B-sin(C)+3.;
Run Code Online (Sandbox Code Playgroud)

计算时间:32ms

两步说明:

Result Intermediate=A*B;
Result D=Intermediate-sin(C)+3.;
Run Code Online (Sandbox Code Playgroud)

计算时间:43ms

解决方案auto:

auto&& Intermediate=A*B;
Result D=Intermediate-sin(C)+3.;
Run Code Online (Sandbox Code Playgroud)

计算时间:32ms.

总之,auto&&能够恢复单个指令案例的原始计算时间.

编辑:根据Evgeny的建议总结相关链接

复制Elision

汽车告诉我们什么

C++中的通用引用11

C++ Rvalue引用说明

C++和2012年之后:Scott Meyers - C++中的通用引用11

c++ templates expression simplify

5
推荐指数
1
解决办法
993
查看次数

Java:if语句可以简化(box包含点)

我有以下语句来检查Vector2D是否在一个框内,IntelliJ给了我一个警告:"if语句可以简化".

if(point.x < minX || point.x > maxX || point.y < minY || point.y > maxY)
    return false;
Run Code Online (Sandbox Code Playgroud)

我该如何简化这个?

java if-statement simplify compiler-warnings

5
推荐指数
2
解决办法
7883
查看次数

Sympy简化与平方根

我有一个表达,我认为可以在某种程度上简化,并且由于某种原因,同情并没有表现出我认为简单的简化.我的代码示例如下:

# coding: utf-8

# In[1]:

from __future__ import division
from sympy import *
init_printing()

# In[3]:

d, R, c = symbols('d R c', Positive = True, Real = True)
?t = symbols('\Delta_t', Real = True)

# In[4]:

?t = (1/c**2)*(-R*c+sqrt(c**2*(R+d)**2))
?t

# In[5]:

simplify(?t)
Run Code Online (Sandbox Code Playgroud)

我已将上面的代码放在剪切和粘贴乐趣上...... iPython的图形输出如下:

在此输入图像描述

我原以为最终结果如下:

在此输入图像描述

我认为根据我如何定义变量,简化会发生,至少sqrt((R + d)**2)......我做错了什么?

python sympy simplify

5
推荐指数
1
解决办法
3781
查看次数

在 Sympy 中定义符号的范围

在 Sympy 中,可以定义符号可以采用的值的约束

x = symbols('x', real=True)
Run Code Online (Sandbox Code Playgroud)

是否可以说一个符号只能在一定范围内取值-1 < x < 1?我对此感兴趣的原因是因为我试图让 sympy 自动简化表达式,如下所示

expr = sqrt(1+x) * sqrt((1-x)*(1+x)) / sqrt(1-x)
Run Code Online (Sandbox Code Playgroud)

运行simplify(expr)不会产生任何简化,而-1<x<1简化后的结果应该是1+x. 我如何获得 sympy 来简化上面的表达式?

sympy simplify sqrt

5
推荐指数
1
解决办法
2301
查看次数

如何结合指数?(x**a)**b => x**(a*b)?

如何简化方程中的方程中的指数

from sympy import symbols 
a,b,c,d,e,f=symbols('abcdef')
j=(a**b**5)**(b**10)
print j 
(a**(b**5))**(b**10) #ans even after using expand simplify 
# desired output 
a**(b**15)
Run Code Online (Sandbox Code Playgroud)

如果不能与sympy在python中导入哪个模块?

编辑 即使我将'b'定义为真实,也包括所有其他符号

b =符号('b',real = True)没有得到简化的指数,只有当指数是常数时它才会简化

a=symbols('a',real=True)
b=symbols('b',real=True)
(a**5)**10
 a**50  #simplifies only if exp are numbers
(a**b**5)**b**10


(a**(b**5))**b**10  #no simplification
Run Code Online (Sandbox Code Playgroud)

python sympy exponent simplify

4
推荐指数
1
解决办法
731
查看次数

简化冗余jQuery代码

我想简化我的jQuery代码以获取页脚弹出/工具提示动画,因为它是冗余的并且不是非常可扩展的.我发现这篇文章:jQuery代码简化但无法弄清楚如何将它应用于我的情况.谢谢!

<div id="footer-wrap">
    <div id="footer">
        <ul>
            <li class="copyright"><a href="#" >copyright</a></li>
            <li class="facebook"><a href="#" target="_blank">facebook</a></li>
            <li class="twitter"><a href="#" target="_blank">twitter</a></li>
            <li class="wordpress"><a href="#" target="_blank">blog</a></li>
        </ul>       
    </div>
    <div class="popup">
        <p class="popup-wordpress"><span class="popup-icon"></span><span class="popup-text">Check Out Our Blog</span></p>
        <p class="popup-twitter"><span class="popup-icon"></span><span class="popup-text">Follow us on Twitter</span></p>
        <p class="popup-facebook"><span class="popup-icon"></span><span class="popup-text">Become a fan on Facebook</span></p>
        <p class="popup-copyright"><span class="popup-text">Copyright &copy; 2011<br />All Rights Reserved</span></p>
    </div>
</div>


$(function() {
   $('.copyright').hover(
    function() {
        $('.popup-copyright').stop().animate({ marginTop: -52 }, 100);
    },
    function() {
        $('.popup-copyright').stop().animate({ marginTop: 0 }, 100);
});
$('.copyright').click(function() …
Run Code Online (Sandbox Code Playgroud)

html jquery popup tooltip simplify

4
推荐指数
1
解决办法
343
查看次数

如何用sympy简化矩阵中的分数?

我正在使用sympy查找矩阵的逆矩阵。我有下一个问题。当我计算矩阵的逆A并想证明它时,我得到了一个带分数的矩阵;我的意思是

>> import sympy
>> from sympy import pprint
>> from sympy.abc import *
>> import sys
>> sys.displayhook = pprint
>> from sympy.matrices import *
>> A = Matrix([[a, b],[c, d]])
>> B = A.inv()
>> B
>> [1       b*c           -b     ]
>> [- + ------------  -----------]
>> [a    2 /    b*c\    /    b*c\]
>> [    a *|d - ---|  a*|d - ---|]
>> [       \     a /    \     a /]
>> [                             ]
>> …
Run Code Online (Sandbox Code Playgroud)

python matrix inverse sympy simplify

4
推荐指数
2
解决办法
2692
查看次数

Flutter 分配主题文本样式

我想知道是否有比这种方法更好的方法将主题的某种默认文本样式分配给文本小部件。

Text(
 'Hello world',
  style: Theme.of(context).textTheme.headline1,
),
Run Code Online (Sandbox Code Playgroud)

我确实认为应该有一个单独的小部件或文本方法 Text.headline1 或简单的样式命令样式:TextStyle.headline1。

但似乎我必须通过 Theme.of(context) 才能得到这个。

有人有更好的解决方案吗?

text themes simplify flutter

4
推荐指数
1
解决办法
6144
查看次数