我正在尝试用来NDSolve解决波动方程来检查是否更容易和/或更快地使用它而不是我的旧特征eq.方法实现.
我得到了很多不稳定的东西,我没有得到特征方法,因为这些是简单的方程式,我想知道出了什么问题......(希望,不是问题的物理方面......)
ans = Flatten@NDSolve[{
u[t, x]*D[d[t, x], x] + d[t, x]*D[u[t, x], x] + D[d[t, x], t] == 0,
D[d[t, x], x] + u[t, x]/9.8*D[u[t, x], x] +
1/9.8*D[u[t, x], t] + 0.0001 u[t, x]*Abs[u[t, x]] == 0,
u[0, x] == 0,
d[0, x] == 3 + x/1000*1,
u[t, 0] == 0,
u[t, 1000] == 0
},
d, {t, 0, 1000}, {x, 0, 1000}, DependentVariables -> {u, d}
]
Animate[Plot[(d /. ans)[t, x], {x, 0, 1000},
PlotRange …Run Code Online (Sandbox Code Playgroud) 在TabView中包含3D绘图时,在我的计算机中,整个选项卡显示为灰色,就像它是一个巨大的按钮一样,使图形具有白色背景:

为了避免灰色和白色之间的对比,我希望标签也有白色.
尝试BaseStyle -> {Background -> White}但没有成功(只有边界得到重新设计).
如何更改选项卡的背景颜色?
我简单的第一个调色板假设:
$PathActionMenu["test",{"The Simple Packages Path":> AppendTo[$Path, ToFileName[{NotebookDirectory[], "02 Simple Packages"}]]}]
ActionMenu["Load Packages", {"Get my package":> Get["myPackage`"]}]
OpenerView[{"my Package", Button["construct", Paste[StandardForm@Defer@construct[Placeholder["description"],Placeholder["another description"]]]]}]
问题是当我点击"获取我的包"动作菜单项时,我不断收到"影子"消息.我确信我不是故意加载包装的.当我点击"构造"时,它写道Global`construct["description","another description"].但是我确定在获得包之前我没有定义它(我在测试中杀死了内核).
你知道什么是错的吗?
(我Get在我的包上使用,而不是Needs,以确保包上下文的干净启动)
另外:你知道一种更简单的方法Paste[StandardForm@Defer...吗,即使没有选择单元格,也可以确保不评估粘贴表达式并进入输入单元格?
我创建了一个自定义调色板,并ActionMenu执行ClearAll["Global`*"].它执行所需的操作,但前端不会立即将颜色从黑色更新为蓝色(标准),因为它ClearAll["Global`*"]直接从笔记本单元格执行时发生(它仅在执行其他操作后更新).有没有办法启动刷新前端显示状态?
编辑:显然,当我从调色板加载包时(蓝色不会立即更新为黑色)也会发生同样的情况.
编码包的一个令人讨厌的事情是它们必须在一个单独的文件中.如果我们想要分发一个简单的自包含app(编码),我们需要提供两个文件:app"interface"和app包.
如果我将编码文件的所有内容放在一个字符串中,并将该字符串转换为一个InputStream,那么我将该包内容视为一个文件.
但Get,据我所知,这是唯一具有解码功能的操作(也被Needs使用),不适用于Streams.它只适用于真实文件.
有人能找到一种获取流的方法吗?
为什么这样:
Manipulate[test[a_] := 2*b; test[c], {b, 0, 1}, {c, 0, 1}]
Run Code Online (Sandbox Code Playgroud)
变成评估循环?不应该Manipulate只评估何时b或c改变?