Mac OS X 10.7.2上的Mathematica 8.0.1执行此操作:退出内核并执行
MathieuS[MathieuCharacteristicA[ 1, -(1/4)], -0.25`, 15.707963267948966`]
MathieuS[MathieuCharacteristicA[ 1, -(1/4)], -0.25`, 15.707963267948966`]
(*
5.10119 10^-15
MathieuS[MathieuCharacteristicA[1, -(1/4)], -0.25, 15.708]
*)
Run Code Online (Sandbox Code Playgroud)
也就是说,它第一次对表达式进行数值计算,而第二次返回未评估的表单.
为什么?或者我只是花了太长时间盯着我的屏幕而且做了一些愚蠢的事情?
我试图有两个面板,左边显示一个图形和两个定位器,右边一个是定位器定义的区域中的放大版本.
我试过了
ClearAll[mndpt];
mndpt = Compile[{{c, _Complex}, {maxiter, _Integer}},
Module[{z, iters},
iters = 0.;
z = c;
While[(iters < maxiter) && (Abs@z < 2),
iters++;
z = z^2 + c];
Sqrt[iters/maxiter]],
{{z, _Complex}},
CompilationTarget \[Rule] "C",
RuntimeOptions \[Rule] "Speed"];
Run Code Online (Sandbox Code Playgroud)
并做
Manipulate[
Grid[
{{DensityPlot[mndpt[x + y*I, 200],
{x, -2, 1}, {y, -1.5, 1.5},
PlotRange \[Rule] {0, 1}, PlotPoints \[Rule] 80,
ColorFunction \[Rule] "Rainbow"],
DensityPlot[mndpt[x + y*I, 200],
Dynamic@{x, p1[[1]], p2[[1]]}, Dynamic@{y, p1[[2]], p2[[2]]},
PlotRange \[Rule] {0, 1}, PlotPoints \[Rule] 80,
ColorFunction …Run Code Online (Sandbox Code Playgroud) 有谁知道Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]Mathematica中的#in是什么意思?
那究竟是Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]什么意思呢?
谢谢.
是否可以在Mathematica中检索自动生成的绘图范围?
例如,如果我这样做:
Plot[Sin[x], {x, 0, 2 \[Pi]}, PlotRange -> Automatic]
Run Code Online (Sandbox Code Playgroud)
那么我想知道Y轴的范围是-1到1,X轴的范围是0到2 pi.
我这样做:
ClearAll[matrix];
matrix[p_,q_,nu_:0]:=Module[{sigma},
sigma=p/q;
N@SparseArray[
{{m_,m_}\[Rule]2Cos[2\[Pi]*m*p/q+nu],{i_,j_}/;
Abs[i-j]\[Equal]1\[Rule]1},{q,q}]]
ClearAll[attachsigma]
attachsigma[sigma_,lst_]:={sigma,#}&/@lst
Run Code Online (Sandbox Code Playgroud)
然后执行
fracs = Table[p/q, {q, 2, 30}, {p, 2, q}] // Flatten // DeleteDuplicates;
pq = {Numerator@#, Denominator@#} & /@ fracs;
(ens = Eigenvalues[#] & /@
Normal /@ (matrix[#[[1]], #[[2]]] & /@ pq);) // Timing
pts = Flatten[#, 1] &@MapThread[attachsigma, {fracs, ens}];
Run Code Online (Sandbox Code Playgroud)
最后我将点绘制如下(这是问题的真正要点):
plot = ListPlot[pts,
PlotMarkers \[Rule] Graphics[{PointSize[Tiny], Point[{0, 0}]}]]
Run Code Online (Sandbox Code Playgroud)

在我的机器上计算所有点大约需要2.6秒,但是该图需要大约25秒.另一方面,如果我这样绘制它
ListPlot[pts]
Run Code Online (Sandbox Code Playgroud)

然后它几乎是瞬间的,因为它应该(它只是5256点).所以,这似乎让PlotMarkers事情变得非常缓慢.
任何人都可以解释为什么(这个我模糊地理解,与Sort你给它自定义排序功能的情况类比),更重要的是,b)解释如何避免这种减速?我试图创建比这更多点的情节,所以它们真的很慢; 另外,我创造了很多(实际上是一部电影).
一种解决方案是不绘制所有这些,但是当我改变参数时,找出我应该包括哪些以及哪些不存在变得非常重要(如果我只需要这一帧,这当然会起作用).所以,我想在不删除积分的情况下加快情节创作.
编辑:在Sjoerd的提示后回答:
ListPlot[pts] /. Point[List[x___]] \[RuleDelayed] {PointSize[Tiny], Point[List[x]]}
Run Code Online (Sandbox Code Playgroud)
瞬间产生正确的东西.这只是用手将较小的点替换为结构Points内部 …
我有一个(mathematica 8.0.1.0-)问题,我自己无法解决.我有一个矩阵中的测量数据,我想选择其中的一些,然后将它们加起来.
为了更好地解释我的问题,这是一个简单的例子.数据可以由矩阵S产生:
S = Table[ -Sin[i/2] - Sin[j/2], {i,20}, {j,20}];
Run Code Online (Sandbox Code Playgroud)
它们可以很好地绘制:
xmin = N[Min[S]];
xmax = N[Max[S]];
mycolorfun = Function[ Blend[{Blue,Cyan,Green,Yellow,Red},#] ];
Run Code Online (Sandbox Code Playgroud)
和
MatrixPlot[S, PlotRange -> {All,All,All}, AspectRatio -> 1/1,
ColorFunction -> (mycolorfun[ Rescale[ #1{xmin,xmax} ] ]&),
ColorFunctionScaling -> False, MaxPlotPoints -> Automatic,
FrameLabel -> {y,x} ]
Run Code Online (Sandbox Code Playgroud)
那么应该得到一张类似于这张的照片:
现在我想选择棕色绘制多边形内部的数据.这些数据应该在最后加起来.
我怎样才能做到这一点?好吧,我可以使用矩形并通过选择/猜测好的开始和结束索引来构建子矩阵.然后我只需要构建这个子矩阵的总和.但我更喜欢多边形(如果我们不争论矩形值与多边形线交叉的小问题,则更为精确).如果我可以通过将多边形"绘制"到矩阵中来直接选择我感兴趣的区域(ROI),我会喜欢它(不再需要选择/猜测矩阵索引).
有人可以帮助我解决我的问题吗?如果使用mathematica无法解决,是否还有其他可以使用的程序?
我会很乐意提供一些帮助和提示!
我找不到如何在mathematica中使用相对路径.我的目录结构很简单.
Import["G:\\Research\\Acc and Vel Runs\\5-24\\Mathematica\\Data\\250 \
Acc.xls"][[1]] // TableForm
Run Code Online (Sandbox Code Playgroud)
通过使用菜单中的插入路径演示绝对路径.我希望这款笔记本便携.我想给某人"Mathematica"目录,我希望他们能够运行代码.我不希望路径中断,因为它将在不同的机器上运行.基本上我只想使用从上面显示的Mathematica级别开始的相对路径.