这是我在执行时遇到的一个设计问题。假设您需要自动生成以下形式的表达式
(来源:)
对于每个这样的表达式,会自动生成sum、固定变量和“SUMMETER over”变量内的术语,“f”函数是单独定义的。要生成上面的表达式,我可能需要调用
sumProduct(factors,fixedVariables,fixedValues,freeVariables,freeRanges)
在哪里
factors={{1,4},{3,4},{3,4,5}}
fixedVariables={1,3}
fix
可以使用此构造在Mathematica中实现有限形式的:
f[a_][b_][c_] := (a^2 + b^2)/c^2
允许某人做,例如:
f[4][3] /@ Range@5
{"2 + 2", "2", "8"}
我的意图是在列表中返回“8/4”和“3+5”
因此:
有没有办法将属性扩展到此构造
是否有其他方便的结构来实现这一点
除了属性之外,还有其他方法可以在Mathematica中扩展咖喱吗
我不知道有什么方法可以将属性扩展到第二个或更高版本的curried参数列表中——
如何在不使用Prepend的情况下更改单元格的$ContextPath:
$ContextPath = Prepend[$ContextPath, "PackageName`"]
我查看了$ContextPath的文档,决定评估其中的第一个输入单元格
评估前:
评估后:
我猜这里的区别在于,当编写此文档时,WebServices没有为编写它的人启用。我们可以看到,Global位于该单元格的上下文中,因为已经明确提到了这一点。通过转到Cell>Show expression查看表达式
选项
我已经检查了Mathematica文档中心的所有示例和设置,但是找不到任何关于如何选择轴上显示的数字的示例
如何更改绘图轴编号,如2,4,6,。。对于PI,2PI,3PI,…?您可以找到一个示例:
Howard已经给出了正确答案,如果您希望标签Pi,2pi等的值为Pi,2pi等
有时,您可能希望在特定值处使用替换记号标签,而无需重新缩放数据
文档中的另一个示例说明了如何:
Plot[Sin[x], {x, 0, 10},
Ticks -> {{{Pi, 180 \[Degree]},
每次计算一组点的凸出面积时,我得到以下结果:
CompiledFunction::cflist: Nontensor object generated; proceeding with uncompiled evaluation. >>
输出似乎是正确的
这正常吗
有没有办法解决这个问题?永久静音
谢谢是否关闭[CompiledFunction::cflist]使其静音?我不知道你为什么会得到它,我不知道;你能举个例子吗?Id确实使其静音,我将尝试隔离问题,列表太大,无法在这里给出
我试着用它。对于一些情节来说,这真的很好,但是当它要制作一个三角形的时候,我发现它相当复杂。我知道怎么画一个三角形,但怎么加上那个角度标记,那个些曲线
既然我是这项工作的初学者,写一本书,谁能推荐我哪种方法是完成漂亮图形的最好方法,比如下图。哪些程序最适合使用。
谢谢你的建议和建议 一个优秀的钨支持产品是。这不是一个495美元的廉价附加组件,但它将生成像您这样的图表,比在原始MMA Mathematica中进行要容易得多。它基本上是评论中Szabolcs方法的一个非常大的扩展-一个用于绘制素材
关于这篇文章,我根据Mathematica上的表达式(23-27)和偶数(47)绘制了希格斯四次势λ(mu)的函数。事实上,仅(25)就足以给出所需的形状。我仔细检查了我的代码,在实验误差范围内改变了希格斯质量和顶夸克质量的值,但无法重现论文图1中的lambda图。从下面看,耦合是无界的,而实际上,在mu的大值下,耦合应该是正的。我对这个结果感到困惑
希望得到你的帮助。
我的Mathematica代码:这似乎离题了。试着在这里提问:请将代码复制到你的问题中,而不是将其作为图像。你似乎在要求人们去
在数学中
a = FactorInteger[44420069694]
分配
{{2, 1}, {3, 1}, {7, 1}, {11, 2}, {13, 1}, {23, 2}, {31, 1}, {41, 1}}
到a。现在,我希望这些列表中的每一个都展开,而不是带指数的因子。然后,上述因子分解将成为
{2, 3, 7, 11, 11, 13, 23, 23, 31, 41}
我编写了以下函数:
b = {}; Do[Do[b = Append[b, a[[i]][[1]]], {a[
我的意思是:
有时我不知道为什么,我得到了蓝色函数的名称。有什么特殊原因吗?它只是表示它是一个尚未定义的符号。它是一种语法着色和/或拼写检查形式。这意味着名为“saveploggts”的符号尚未定义。一旦计算该单元格,它将定义符号,并将变为黑色
是否可以使用Mathematica的操纵来更改已声明的变量
例如:
changeme = 8;
p = SomeSortOfPlot[changeme];
manipulate[Show[p],{changeme,1,10}]
基本的想法是,我想制作一个具有某个可变值的绘图,但在外部声明它
有什么想法吗?一个选项是使用Dynamic[]和LocalizeVariables->False
例如:
changeme = 8;
p[x_] := Plot[Sin[t], {t, 1, x}];
{
我在笔记本电脑界面中使用Mathematica 7,我想重新排列一个不等式,以便在一侧得到某个变量。例如
FullSimplify[x^3+L+r>3x^3+2r]
给予
不过,我想:
r < L-2x^3
编辑:以下是实际表达式:
{L - (m^2 ((-2 + e)^2 \[Delta] + (5 +
2 e (-7 + 4 e)) \[Tau]) \[Omega])/(36 (2 - 3 e + e^2)^2)} > {0}
In[4]:=Simpli
通过使用Insert>Automatic number…菜单插入自动编号对象CounterBox[“Section”],可以对笔记本分区进行自动编号。然而,这个对象只控制节号的显示,我想得到它的数值,以便在程序中使用。你知道怎么做吗
编辑
我想使用它的原因已经概述了。必须有更好的方法来实现这一点,但如果我了解您想要做什么,下面是一些有效的方法
创建要使用的笔记本:
nb = CreateDocument[{
Cell["My Title", "Title"],
Cell["My
有几次我发现我有一个系统,我需要指定所有变量得到不同的值(即不重复)
我通常做这样的事情:
k = {a, b, c, d, e, f, g};
Reduce[
a != 2 && f == a + b && g == c - d && f == (d + e)/2 && f == e + g &&
First[And @@@ {0 < # < 8 & /@ k}] &&am
我在简化mathematica中的一些函数时遇到了一些问题。在我编写的一个程序中,我用求和函数计算了一些函数,其中许多项最终被乘以零。我想打印功能,但要简化。我尝试使用FullSimplify,但它需要永远运行。然后我尝试使用Simplify,但它不起作用。这是我得到的一个函数的例子
2. Sqrt[-(-1+x) x]+
0. Sin[2 ArcCos[-1+2 x]]+
0. Sin[3 ArcCos[-1+2 x]]+
0. Sin[4 ArcCos[-1+2 x]]+
0. Sin[5
如何分别标记这些行中的每一行:
Plot[{{5 + 2 x}, {6 + x}}, {x, 0, 10}]
有一些很好的代码,允许您在中动态地执行此操作
技术说明中还定义了一个LabelPlot命令
当然,如果你没有太多的图像要制作,
例如,在using中手动添加标签并不困难
fns[x_] := {5 + 2 x, 6 + x};
len := Length[fns[x]];
Plot[Evaluate[fns[x]], {x, 0, 10},
Epilog -> Table
您好,我无法理解以下函数的输出
ListPointPlot3D[Table[Sin[x^2 + y],
{x, 0, 3, 0.15}, {y, 0, 3, 0.15}],
AxesLabel -> {"X axis", "Y axis", "Z axis"}
]
我已经告诉过X和Y在区间[0,3],但图表显示的这些变量的范围与[0,21]完全不同
这是怎么发生的 每个
有没有办法让矩阵变换在行上水平显示行向量,而不是像在列向量上那样垂直显示行向量?因为这有时让我困惑。您认为围绕矩阵表单编写包装器来调整这种行为会很困难吗
例如,这里是一个2乘2的矩阵。行显示与列相同。两者都垂直显示
问题:是否可以使MatrixForm显示水平而非垂直排列的行向量
抱歉,如果以前有人问过这个问题,快速搜索不会显示任何内容
谢谢
更新(1)
仅供参考,这是在Matlab中,它可以自动水平打印行和垂直打印列,我希望这样。但我将在下面使用Heike的建议,因为它解决了这一问题,只需花
这似乎是一个显而易见的问题,但我找不到任何答案。我正在使用Mathematica 8,并使用(格式->样式->显示公式编号)顺序编号我的方程式。这很好,但是我如何在文本中引用特定的方程式,以便在引用的方程式之前添加新的方程式时,它们将相应地更改
我知道LateX做得非常好,而且这似乎是一个简单的过程。具体来说,如果我有方程
布拉赫=布拉赫布拉赫(1)
能=flarg(2)
将方程式(2)插入方程式(1)。。。
但是我想在方程(1)之前加上一个方程,我怎么能自动将文本更改为“将方程(3)插入方程(
我想知道是否有可能为Show[]函数创建一个保存信息的变量。因此,每当我想在Show[]中显示绘图时,我将在Show[]中插入该变量以设置样式选项
我想要这样的东西
OPTIONS=
AxesOrigin -> Automatic,
LabelStyle -> Directive[14, Black, Bold, Italic],
ImageSize -> {450}
Show[
ListLinePlot[data],
我有一个非常复杂的积分,必须用数值计算。被积函数p是两个变量z,Lx的函数,积分在Lx上
我得到了一个输出错误,从这里得到的问题是,我也需要对另一个变量进行积分,这正是我想要避免的
有没有办法解决这个问题?
代码是有效的,因此如果您尝试运行它,您将看到我想要获得的结果,唯一的问题是,与文献中的系数3或5相比,结果略有错误,这取决于所采用的参数
这是我的密码,提前谢谢
constants = {A -> 1.21/10^6, p1 -> 4.62, p2 -> -1.15, zc
我有一个来自Wolfram示范项目的小程序(链接:)
我想看看如果我将矩阵大小增加到1000甚至更大,会发生什么,但Mathematica拒绝了我。如果我在操纵中做了更改,它只显示“操纵已中止”。如果没有操纵,则退出内核
我不知道我的版本(9.00)是否有问题,或者仅仅因为Mathematica的限制
非常感谢您抽出时间
L = 1000;
p1 = 0.6;
seed = 2000;
perColation[{i_, j_}] :=
If[1 <= i <= L &
我正在寻找一些命令或一些例行程序,允许清洁工作区(屏幕),以便结果显示在一个干净的屏幕上。命令不是用来清理变量之类的东西,而是用屏幕
用其他语言这样的Qbasic是cls我不知道Mathematica中内置了什么可以做到这一点,但是如果您在像xterm这样的Unix终端上工作,您可以调用外部程序来清除屏幕:
Run["tput cl"]
或者更简洁地说
!tput cl
这将查找当前终端的并将其写入stdout,为您清除屏幕
您还可以运行clear命令(如果有):
!clear
如果你
我在理解Mathematica中的尖锐符号时遇到一些问题。我把#&理解为变量的占位符。但是在下面的代码中如何理解#1和#2
x = {0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1};
Split[x, #1 =!= 0 && #2 =!= 0 &]
这里的#1和#2是什么?这些行的输出是
{{0}, {1, 1, 1}, {0}, {0}, {1, 1, 1}, {0}, {0}, {1}}
该版本的格式为Split[list,test],其中
我想知道是否有可能在Mathematica中围绕另一个现有点旋转一个点。我尝试过这样做:
one = Graphics[Point[{1, 1}]];
two = Graphics[Point[{2, 2}]];
two = Rotate[{two}, 60 Degree, {one}]
但它不起作用。甚至可以这样做吗?
谢谢 将一个替换为{1,1},将两个替换为{2,2}。还有一个专用的,你可能会得到更好的响应时间比上所以。请注意图形自动缩放其绘图范围,所以一个单一的点将看起来相同,无论你如
以下是带有标记单元格的矩阵图:
list = {{1, 1, 0, 1}, {0, 0, 1, 1}, {1, 0, 1, 0}};
collab = Row[{0.1*#}] & /@ Range[4];
rowlab = Row[{0.1*#}] & /@ Range[3];
rowticks = Thread[{Range[3], rowlab}];
colticks = Thread[{Range[4], collab}];
MatrixPlot[list, FrameT
假设你有一个关于y,x的函数,还有一些未知的系数,例如y=ax^2+bx+c,有没有可能在不知道a,b和c的情况下绘制这个图?我希望能够看到一些东西,比如临界点和截距,我们可以在后面插入系数。这可能吗?如果是这样,我在Mathematica怎么做
像坐着一样
I ArcCosh[x]
哪一个是
ArcCos[x]或-ArcCos[x]
如何强制Mma这样做?Mathematica不会这样做,因为它通常是不正确的:很容易找到这个“身份”不适用的(复数)数字:
In[1]:=Table[{I ArcCos[y],ArcCosh[y]}//Chop,{y,{0.5,-0.5-0.5I}}]
Out[1]={{1.0472 I,1.0472 I},{-0.530638+2.02307 I,0.530638-2.02307 I}}
如果你想强迫
如何获取列表中的奇怪索引元素?我正在考虑选择,但没有找到任何返回元素位置的内容,特别是考虑到列表中有重复的元素
一般来说,如何选择索引满足某些特定条件的元素?有很多方法,下面是其中的一些:
In[2]:= a = Range[10];le = Length@a;
In[3]:= Table[a[[i]], {i, 1, le, 2}]
In[5]:= Pick[a, Table[Mod[i, 2], {i, 1, le}], 1]
In[6]:= a[[1 ;; le ;; 2]]
一般
有没有办法将打开的Mathematica笔记本分开,这样它们就不会共享任何变量?让一些变量共享,而不是全部共享怎么样?我不确定这样做是否明智,但无论如何
这是两台笔记本电脑的示意图解决方案。它可能是广义的,但并不简单
打开两本笔记本
在每一个菜单中,进入菜单
(评估->笔记本的默认设置
上下文->此笔记本独有)
这样,符号就不再共享了
在每个笔记本中输入一些内容
如Context[]获取笔记本
上下文
现在在每个笔记本中输入
以下代码
其中,笔记本$$17$799580是另一个笔记本的上下文(
我正在尝试Mathematica编程,我想我会尝试手动计算(E&m类的磁场相量计算),使用球面极坐标。我创建了一个变量,并尝试获取它的旋度:
Needs["VectorAnalysis`"]
SetCoordinates[Spherical]
SetAttributes[ k, Constant ]
eE := {0, 0, (Sin[Ttheta]/Rr) ( 1 - I/(k Rr)) e^{I k Rr}}
Curl[ eE ]
这实际上并不像我想象的那样评估导数,只给出:
我想完成以下工作:在对输入单元求值时,它应该自毁(即删除自身)。我试图用SelectionMove和NotebookDelete来破解一些东西,但没有完全得到我想要的
以下是潜在的用例:
该命令可能是动态生成并插入笔记本的一系列其他命令的简写
该命令可能仅用于副作用(例如设置笔记本选项或打开新笔记本);评估后将命令留在笔记本中没有任何意义,会造成混乱
编辑:根据先生向导,答案是SelectionMove[EvaluationNotebook[],Previous,Cell];Notebook
旧习惯很难改掉,我意识到我一直在使用opts\uuuu规则模式匹配和类似thispoption/的结构。{opts}/。选项[myfunction]在我目前正在开发的非常大的软件包中。Sal Manango的“Mathematica Cookbook”提醒我,第6版后的实现方法是opts:options模式[]和option值[thispoption]。无论如何,这个软件包需要版本8,但多年来我从未改变过编写这种代码的方式
是否值得从我6版之前的做法中重构所有这些?是否有绩效或其他好处
问候
韦
有没有办法避免做⋮[[⋮获取零件的那些好看的括号
运行函数或定义后,是否有方法自动执行此操作?我在/Applications/Mathematica.app/SystemFiles/FrontEnd/TextResources/Macintosh/KeyEventTranslations.tr中添加了以下内容,它允许我输入带组合键的双括号。您可以通过修改文件来执行相同操作(在你们的操作系统上的任何地方)。我第一次从网站上了解到这一点。他有其他与mathematica相关的东西,可能对你们有帮助
只要打开任务管理器,就可以看到Windows操作系统中运行的进程列表。现在我的问题是,是否有可能从Mathematic前端关闭一个这样的进程
我的意思是,如果进程占用了95%以上的系统RAM,或者需要超过X分或秒才能完成,我们需要编写一个脚本,比如杀死“进程树”。我不知道这是否可以从MMA完成,但如果可能的话,它将在我的项目中非常方便
BR您可能需要使用Run函数和TSKILLshell命令
TSKILL processid | processname [/SERVER:servername]
我有一个矩阵{{2,1,2,2,1},{1,3,0,1,2},{3,3,0,3,1},{1,1,2,1,1},我想生成一个3d图,比如总共有4*5=20条
在小正方形(1,1)上有一个高度为2的条(即在x-y平面上由点{0,0}、{0,1}、{1,1}、{1,0}形成的正方形)
另一个高度为1的条形,以小正方形(1,2)为基础(即在x-y平面上由点{0,1}、{0,2}、{1,2}、{1,0}形成的正方形)
以小正方形(2,2)为基础的另一个高度为3的条(即在x-y平面上由点{1,1}、{2,
如何检测是否可以执行?或者,如何检测前端令牌是否未能执行
示例:如果未选择任何内容,则“编辑->复制”命令不可用FrontEndTokenExecute[“Copy”]在这种情况下只会发出嘟嘟声,但它没有(编程)指示它失败。我找到了一种方法来处理您的第二个问题,但它并不优雅:
在Preferences>Interface>Message and Warning actions中,将次要用户界面警告设置为嘟嘟声并打印到控制台
确保消息窗口中至少有一条错误消息
获取消息窗口笔记本的句柄(使用笔记本[
编辑:只需确认您是否可以复制此内容即可。只需一台计算机即可尝试此操作(无需远程连接)
更新似乎其他人无法在Mac或Win7上复制此功能,因此它要么是WinXP特定的,要么是我的机器特定的。在这一点上,我放弃了
最好有一个关于前端和内核如何通信的教程,这样我们就可以调试远程内核问题。任何这样的一般答案(或其他教程的链接)都是非常受欢迎的。我已经知道Sascha Kratky的作品
现在是一个实际问题:当我以任何方式(例如使用远程内核策略)连接到远程机器时,前端迟早会冻结。我怎样才能防止这种情况
生成参数前的素数列表的最简单函数是什么?想出这样一个函数并不难,例如:
foo[n_] := Block[{A = {}, p = 2},
While[p < n, A = Append[A, p]; p = NextPrime[p]];
A]
哪里???是nexttime[n,-1]的索引。这可能吗?这方面的常用算法之一是。它是一个简单的算法,并且很容易用任何语言实现。例如
f[x_] := Prime[Range@PrimePi@x]
用
如何强制计算模块中的所有符号
vout[vin_] = Module[{x=vin,y},
y = 200000*(1.2 - x);
Print[y];
y
];
Print[vout[0]];
我希望它能打印相同的东西(240000)两次,但我得到的是:
200000*(1.2 - vin)
240000.
您知道在模块内如何获得扩展值(240000)吗
编辑:打印[评估[y]]在这种情况下也不起作用您应该键入“:=”而不是“=”,以便每次都能正确地重新计算您的函
我想定义一个pdf,例如:
g(x):P(x=0)=1. and P(x!=0)=0.
i、 e.当x=0时,出现唯一非零概率的pdf。有什么想法吗?谢谢对于这些情况,分段是一个有用的工具:
g[x_] := Piecewise[{{1, x == 0}}, 0]
以上内容应该能帮你完成这项工作
注意:
DiracDelta[0]=无穷大;这显然不等于1
我正在寻找一种方法来定义一种模式,在这种模式中,现在不能完全评估定义
两个复杂问题:我不能简单地使用:=而不是=(我可以吗?),因为参数中的某些部分需要计算。我也没有成功地使用Hold(使用extract replace技巧来计算我的参数),因为这个Hold将永远存在-问题是我的模式还使用了另一个技巧,使得包含Hold的表达式实际上并不总是返回(当我明确地写下我的模式时,永远不会这样做,只有当其他一些函数在其中放入数字时才会这样做),因此我的ReleaseHold没有找到一个Hold,并且实际上
我编写的代码执行它从(未来)客户机接收的函数,在一个带有一些参数的循环中。将称之为func(命名它)
在函数内部,客户机通常在相同的变量中生成表达式(通过GetUnderstance-使用前必须清除每个变量)。要做到这一点,最简单的方法是使用Block。之后,将执行一个代码,在函数外部处理di和i。因此,di和i必须是全局的(可能会有更多,它是灵活的)
顺便说一句,我知道这不是效率,但效率不是问题
func[v_, a_, r_] :=
(V = v; A = a; R = r;
Bloc
使用wolfram语言进行web开发是否可行
也许不是“一般网站”,而是web应用程序、web服务?也许与大数据、数据挖掘、机器学习、服务器端繁重的数学计算以及前端显示(html/js/etc)有关?当然提供了一种构建动态实时计算网站的方法。Wolfram Alpha实际上是使用webMathematica技术构建的。随着新产品即将推出(截至2014年3月10日),这似乎将随着新产品和部署选项的增加而增加
定制的程度可能很难,具体取决于您尝试执行的操作,但数据处理是可能的,并将随着新版本的发布而
我在使用Mathematica中的Solve或Solve功能获取两个未知量中的两个非线性方程的值时遇到困难。我确信一定有一种方法可以做到这一点,但我不确定它是什么。以下是我遇到的问题:
bco2=29.6833
bdec=209.891
aco2=2.75447*10^6
bco2=7.94935*10^7
P=41.4
T=411
R=83.1446
Solve[{P = (R*T)/(vliq - (xco2*bco2 + (1 - xco2)*bdec))
- (xco2^2*aco2
我一开始写了一些很长很烦人的东西,像这样
Manipulate[
thetext = Switch[Total[obj],
0, Text["", {0, 5}],
1, Text["How", {0, 5}],
2, Text["Does One", {0, 5}],
4, Text["Use CheckboxBar", {0, 5}],
8, Text["=A=", {0, 5}],
3, Text["How Does One", {0, 5}],
5, Text["How Use Che
我在Mathematica 11.0中有一个基本问题,这让我困惑了一段时间。我想计算y'[x]知道Cos[x+Sin[y]]=Sin[y]。我首先计算导数w.r.t.x,但是,当我试图分离偏导数时,我得到一条错误消息。我使用的代码如下:
In[23]:=Dt[Cos[x+Sin[y]==Sin[y],x]
Out[23]=sin(x+sin(y))((cos(y)\[differentied]y/\[differentied]x+1))==cos(y)\[differentied]y/\[dif
我有一个从一个单元格运行的有点长的代码。我希望选项在计算单元格时查看代码。但是,Mathematica会自动滚动到生成的输出。是否有任何方法可以禁用此功能
“首选项”中似乎没有选项。此外,我还尝试使用SelectionMove命令找到解决方法。这只允许我滚动到特定的单元格。例如,SelectionMove[EvaluationCell[],Before,Cell]将光标置于当前单元格之前。例如,是否有方法转到当前光标位置
给出了mathematica-11中包含数据的图表。该图包括节点和独立节点(未连接)之间的无向边
图形[{12,23,31,45,56,62,24},顶点标签->名称,顶点形状函数->菱形,顶点大小->小]
问题:
如何反射(反转)节点之间的边
由于它们是单向的,通过反射/反转,我的意思是,这些节点应该链接到以前没有边的位置(前面的边已经消失)
Mathematica-11提供了功能,但该功能仅通过方向反映定向边。有什么想法吗
想法:
将图形转换为a并将其反转。然后,可以使用反转矩阵创建反射
我是Mathematica的新手,我有一个很长的数据列表,我想要绘制,我遇到了函数ListPlot,但是当我想要绘制时,我得到了这个错误。我看到了一些关于可能削减我的数据列表的东西?
但我不知道怎么做
data = {{5, 4.2180506341246474`*^-6}, {10,
8.52072632483756`*^-8}, {15,1.9122244963644555`*^-7}, {20,
4.583863072516606`*^-8}, {25, 8.13800472227
如何将x1和x2的Exp[-Abs[x1]-Abs[x2]]/Abs[x1-x2]从-无穷到无穷进行数值积分
蒙地卡罗,会采用什么策略?Vegas算法(我尝试了Python和Mathematica中的实现)可能会起作用,但我找不到一个包可以让我排除Mathematica的NIntegrate所做的一组点(这里:排除->x1==x2)。然而,后者根据策略给出了不同的答案(没有错误消息,并且积分错误仅上升到1.1,使用)。我还使用x->Tan[alpha]进入切线空间,将积分限制压缩到+-pi/2
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 58 页