wolfram-mathematica - 在Mathematica中使用实函数

标签 wolfram-mathematica

通常,mathematica总是假设最一般的情况,也就是说,如果我设置一个函数

a[s_]:={a1[s],a2[s],a3[s]}

并想要计算其规范Norm[a[s]],例如,它将返回:
Sqrt[Abs[a1[s]]^2 + Abs[a2[s]]^2 + Abs[a3[s]]^2]

但是,如果我知道所有ai[s]都是真实的,则可以调用:
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[a[s]]]]

它将返回:
Sqrt[a1[s]^2 + a2[s]^2 + a3[s]^2]

这是我所期望的。

例如,尝试派生a[s]然后(注意D)时发生问题:
Assuming[{a1[s], a2[s], a3[s]} \[Element] Reals, Simplify[Norm[D[a[s],s]]]]

再次返回涉及绝对值的结果-来自数字可能是虚数的假设。

解决这个问题的方法是什么?我想定义一个实值函数,并像这样使用它。也就是说,例如,我希望其派生词是真实的。

最佳答案

我会改用自定义函数,例如

vecNorm[vec_?VectorQ] := Sqrt[ vec.vec ]

然后
In[20]:= vecNorm[D[{a1[s], a2[s], a3[s]}, s]]

Out[20]= Sqrt[
Derivative[1][a1][s]^2 + Derivative[1][a2][s]^2 + 
 Derivative[1][a3][s]^2]

关于wolfram-mathematica - 在Mathematica中使用实函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8355477/

相关文章:

wolfram-mathematica - 如何用一对 FrameLabels 制作图网格?

algorithm - Mathematica 生成带锁定位的二进制数

wolfram-mathematica - 如何使用Mathematica绘制经典的状态图?

wolfram-mathematica - Mathematica 中的产量

java - 从 Mathematica 到 Java 的图像

wolfram-mathematica - 从包中加载mathematica 包

wolfram-mathematica - 如何在 Mathematica 中的不同颜色模型之间进行转换?

wolfram-mathematica - ContourPlot3D 中的重叠网格线

wolfram-mathematica - 将坐标列表从Mathematica导出到Matlab的最佳格式是什么?

wolfram-mathematica - 在 Mathematica 中重新排序列表元素的更好方法