-
1吧里关心微分方程的人不多,但这个例子确实很独特,姑且提一句。我们知道(好吧,相当多的人不知道,想着自己写经典龙格库塔的人时不时就会冒出来),NDSolve默认的常微分方程求解器(细节不明——甚至可以说是NDSolve中最不透明的部分——似乎一般是LSODA方法,有时似乎也会调用StiffnessSwitching方法)性能是非常好的,在NDSolve求解出错的时候,常微分方程求解器永远应该放在最后检查。而当常微分方程求解器出现性能问题时,“使用MaxStepSize限
-
4下面是代码: n = 4; Fig = Table[1, {i, 1, n}]; For[l = 1, l <= n, l++, p1 = 1; p2 = p1 (1 + 10^(-l - 13)); Clear[{s1, s2}]; s1 = y /. NDSolve[{y'[x] == y[x] Cos[p1 x + y[x]], y[0] == 1}, y, {x, 0, 31}, AccuracyGoal -> 20, PrecisionGoal -> 20, WorkingPrecision -> 64][[1]]; s2 = y /. NDSolve[{y'[x] == y[x] Cos[p2 x + y[x]], y[0] == 1}, y, {x, 0, 31}, AccuracyGoal -> 20, PrecisionGoal -> 20, WorkingPrecision -> 64][[1]]; Fig[[l]] = Plot[{s1[x] - s2[x]}, {x, 0, 30}, PlotRange -> Full]; ] Fig 试了很多方法, 但是, 只要p1 和p2 的区别小于10^(-17)左
-
2后半截(不许问这个是什么或是怎么用): s/1ytBfx9aZZLQvhSBvt9YqgA?pwd=wisz 两本书分别是 《Fundamental Finite Element Analysis and Applications: with Mathematica and Matlab Computations》 《Advanced Topics in Finite Element Analysis of Structures: With Mathematica and MATLAB Computations》 书的优点是讲解极为详细,几乎看不到跳步,即便撇开编程的部分也是很不错的有限元教材(尤其是第一册)。此外随书附赠的源代码(上面的链接中已包含)也是不错的学习材料。
-
3这个也是讲烂了的内容,但吧里好像没有标题足够显眼的帖,姑且专开一帖,方便索引。 比较常用的“超级函数”基本都有与之对应的数值求解器。如标题所说,如果符号解没算出来并且符号解对你来说不是必要的,那么不妨去试试数值解。 只写这么几行的话内容好像太少,那就再稍微谈一下比较常见的成对的符号/数值求解器及其特性。 对于代数方程:Solve(虽然现在已经发展成了超级求解器,但它主要是个多项式方程求解器)/NSolve(引入时间非
-
0本帖是果壳网友 马甲与小号 发在果壳小组的一篇入门教程。如今果壳小组已关,故在吧里发一份备份。 note.youdao.com/noteshare?id=c5114ccda3270199fd801952cf785bff
-
4
-
1
-
3clear["Global'*"] L == 0.1; tm == 60; k == 0.5; m1 == 0.02; m2 == 0.02; m3 == 0.02; r1 = Sqrt[(x2[t] - x1[t]) \.b2 + (y2[t] - y1[t]) \.b2]; f1 = k*(r1 - L); r2 = Sqrt[(x2[t] - x3[t]) \.b2 + (y2[t] - y3[t]) \.b2]; f2 = k*(r2 - L); equ = { m1*x1''[t] = f1*(x2[t] - x1[t])/r1, m1*y1''[t] = f1*(y2[t] - y1[t])/r1, m2*x2''[t] = -f1*(x2[t] - x1[t])/r1 + f2 *(x3[t] - y2[t])/r2, m2*y2''[t] = -f1*(y2[t] - y1[t])/r1 + f2*(y3[t] - y2[t])/r2, m3*x3''[t] = -f2*(x3[t] - x2[t])/r2, m3*y3''[t] = -f2*(y3[t] - y2[t])/r2, x1[0] == -0.1, x1'[0] == 0, y1[0] == 0, y1'[0] == 0, x2[0] == 0, x2'[0] == 0, y2[0]
-
3
-
0
-
1
-
16
-
71:这样可以工作: In[27]:= Resolve[ForAll[x, E^x >= a], Reals] Out[27]= a <= 0 2:这样却不可以(明明这里的e^x-x的确有最小值,不知道为什么解不出来): In[28]:= Resolve[ForAll[x, E^x - x >= a], Reals] Out[28]= 3:用FunctionRange[E^x - x, x, y]可以准确求出这个函数的值域 说明Mathematica有能力算出这个指数函数的最小值。 很困惑。或者应该用其他方法吗?谢谢各位高手指点。
-
3\[CapitalXi] = \[CapitalXi]r + I \[CapitalXi]i; \[CapitalLambda] = -0.2 I ; H = ( { {Sqrt[2] I (1 + \[CapitalLambda]) , -1, 0}, {-1, I \[CapitalXi], -1}, {0, -1, -Sqrt[2] I (1 + \[CapitalLambda])} } ); Do[Print[\[CapitalXi]r, \[CapitalXi]i, Eigenvalues[H]]; \[Lambda][\[CapitalXi]r, \[CapitalXi]i] = Eigenvalues[H], {\[CapitalXi]r, -0.5, 0.5, 0.1}, {\[CapitalXi]i, -0.5, 0.5, 0.1}] \[Lambda][0.1, 0.1] 代码见上,对\[Lambda][\[CapitalXi]r, \[CapitalXi]i]进行循环赋值时,自变量为{0.1,0.1}的位置也是可以看到本征值的,但是\[Lambda][0.1,0.1]却没有被赋值,很多点
-
6mma中的三维图一直导出为eps格式,但始终在AI里面处理不了,二维图导出eps格式去AI里面处理就没问题。
-
12本来直接计算结果是没问题的,但是把符号运算的结果复制出来重新代数算为啥这么离奇? 代码如下: Clear["`*"] ag=hb^2/(G M m^2);n=Sqrt[r0/ag]; dE=-m/(2hb^2) (G M m)^2 (1/(n+1)^2-1/n^2) r0=1.5*10^11;hb=1.0546*10^-34;G=6.674*10^-11; M=2*10^30;m=5.965*10^24; dE Clear["`*"] r0=1.5*10^11;hb=1.0546*10^-34;G=6.674*10^-11; M=2*10^30;m=5.965*10^24; dE=-((G^2 m^3 M^2 (-(hb^2/(G m^2 M r0))+1/(1+Sqrt[(G m^2 M r0)/hb^2])^2))/(2 hb^2))
-
10考虑到此类问题和“Mathematica已经装好了,但不能用”即“Mathematica一开始就不能用”有一定区别,特开专帖讨论。今后此类问题原则上请不要单开主题。 这里的“不能用”,包括不限于 1. Mathematica突然无法正常打开 2. Mathematica突然变得无法正常工作(1+1也算不了等) 3. Mathematica突然在执行正确的代码时出现莫名其妙的警告。 如果你的“Mathematica一开始就不能用”,请看置顶。 闲话少叙,说一说可能的修复方法: 此类问题似乎和Mathematica的Paclet更新不
-
5现有分块矩阵f2,想对其中的每一个小矩阵求对角线之和(求迹),再放到新的矩阵f3的对应位置上(或者也可以用这些值生成一个新的4*4矩阵,只要对应到位置上就行)。f2中的每一个小矩阵的位置就是f3矩阵元的位置。 我现在的代码用了两层嵌套循环实现,我想问下大佬有没有内置函数,不用循环的方法(或者比现在快一点的)一次性求出来并放到对应位置上。 因为我现在这个只是简单写了几个数字试一下这个代码,倒是试不出运行速度来,但是
-
4
-
4我最近写论文需要画出一个表达式很复杂的函数在区间(0,1)上的图像。我写的代码如下: Plot[(a^((-2 + a)/(-1 + a)) (-4 + a^(1/(1 - a))) (-2 + a^(1/(1 - a)) + 4 a^(-(a/(-1 + a))) + 2 a Sqrt[a^(-2 - (2 a)/(-1 + a)) (4 + 2 a - 4 a^(a/(-1 + a)) + a^((2 a)/(-1 + a)))]) (a - a^2 + 4 a^(1/(-1 + a)) - 8 a^(a/(-1 + a)) + 4 a^((-1 + 2 a)/(-1 + a)) + a Log[a]))/((-1 + a)^2 (-3 + a^(1/(1 - a)) + 2 a^(-(a/(-1 + a))) + a Sqrt[a^(-2 - (2 a)/(-1 + a)) (4 + 2 a - 4 a^(a/(-1 + a)) + a^((2 a)/(-1 + a)))]) (-8 + a + 6 a^(1/(1 - a)) + 16 a^(-(a/(-1 + a))) + 8 a Sqrt[a^(-2 - (2 a
-
8Collect[(x + y + 1)^2, {x, y}] 系统结果: 1 + x^2 + 2 y + y^2 + x (2 + 2 y) 但我希望要的是_+ _x + _y + _ x^2+ _ y^2 + _ x y这样形式的 还是说我用错函数了?
-
5
-
3在MMA v13的帮助文档“ref/VoigtDistribution”中的Applications下有关于PsuedoVoigtDistribution的如下定义: PseudoVoigtDistribution[\[Delta]_, \[Sigma]_] := Block[{g = (\[Delta]^5 + \[Sigma]^5 + 2.69296 \[Sigma]^4 \[Delta] + 2.42843 \[Sigma]^3 \[Delta]^2 + 4.47163 \[Sigma]^2 \[Delta]^3 + 0.07842 \[Sigma] \[Delta]^4)^(1/5), \[Eta]}, \[Eta] = \[Delta]/g; \[Eta] = \[Eta]*(1.36603 - 0.47719 \[Eta] + 0.11116 \[Eta]^2); MixtureDistribution[{1 - \[Eta], \[Eta]}, {NormalDistribution[0, g], CauchyDistribution[0, g]}] ] 虽然没有标明citation,这个关于VoigtDistribution的近似
-
4
-
5请问为什么如果公式很长的话,在求偏导会出现无法诠释的提示呢?是mathematica无法接受公式过长呢?截图如下所示,还有代码的纯文本复制,请各位大佬帮帮忙,先谢过了。 (注:括号之前是有空格,代表✖的,代码也检查了几遍,没有问题) 纯文本:D[((a - a b) (-2 - 2 b + 2 r1 + b r1 + b r2) (-1 + r2) + (-2 - 2 b + b r1 + 2 r2 + b r2) (-c + b c))/(4 - 4 b^2 - 4 r1 + 4 b^2 r1 - b^2 r1^2 - 4 r2 + 4 b^2 r2 + 4 r1 r2 - 2 b^2 r1 r2 - b^2 r2^2), r1] LaTeX: \frac{\partial \frac{(\text{r2}-1) (a-a b) (b \text{r1
-
5
-
2
-
2ClearAll 的正确用途及语法请参看帮助,不知道怎么查帮助的人,以及不知道我现在在说啥的人,请参看《你查过自带帮助了吗?你真的会查自带帮助吗?》:https://tieba.baidu.com/p/4392855072 顺便,clc,clear all之类的东西在Mathematica里也是没有任何意义的。 再顺便,如果你模模糊糊地觉得MATLAB、Mathematica、Maple、C、Pascal……其实是一个东西,那么,你是错的。 (这条其实已经收在《十戒》里了,但想想还是单开个标题好懂的帖强调一下。)
-
3ListLinePlot[{Table[{x, Sin[x]}, {x, 0.2, 0.4, 0.001}], Table[{x, Cos[x]}, {x, 0.2, 0.4, 0.001}]}, PlotLegends -> Placed[LineLegend[{"\!\(\*SubscriptBox[ StyleBox[\"n\",\nFontSlant->\"Italic\"], \(1\)]\)", "\!\(\*SubscriptBox[ StyleBox[\"n\",\nFontSlant->\"Italic\"], \(2\)]\)"}, LegendFunction -> (Framed[#, RoundingRadius -> 3] &), LegendMargins -> -1], Scaled[{0.88, 0.75}]], Frame -> True, GridLines -> Automatic] 如图所示,有什么办法让图中红线所指位置,两个图例之间的空白减小
-
1
-
6这两天的一点关于模式匹配和任意精度数的小发现,文档里好像没有讲。(期待有人打我脸。)
-
16求这个数 比较丑的写法: (DeleteDuplicates@(If[ Head@((# + 100)^((1/2))) === Integer && Head@((# + 268)^((1/2))) === Integer, #, 0] & /@ Array[# &, 1000000]))[[2 ;;]] 有没有更好的写法?
-
8
-
4
-
13怎么在绘制等高线图的时候让等高线在标签处断开,像下图这样 ContourPlot[Cos[\[Pi]/4 (x + 1)] Cos[\[Pi] y], {x, -1, 1}, {y, -1, 1}, ColorFunction -> (Transparent &), ContourLabels -> (Text[#3, {#1, #2}, Background -> White] &) ] 但是不会像下面这样盖住绘制的颜色? ContourPlot[Cos[\[Pi]/4 (x + 1)] Cos[\[Pi] y], {x, -1, 1}, {y, -1, 1}, ColorFunction -> "SunsetColors", ContourLabels -> (Text[#3, {#1, #2}, Background -> White] &) ]
-
8众所周知,三次方程是有求根公式可以求出精确解的。但是我求三次方程根的时候却发现mma只输出数值解。求教大家如何才能求出精确解? 我写的代码如下:Solve[x^3 + 3 x - 5 == 0, x];mma输出的结果如下图: mma只给出了数值解,而不是用求根公式求出的精确解(含有开立方符号的解)。
-
4这应该算是使用 ReplaceAll ( /. )的过程中必踩的两个坑之一。(另一个请参看《为什么 a^4 /. a^2 -> b 不输出 b^2 ?说说语义式匹配》:https://tieba.baidu.com/p/5728734141 。)为方便修订,正文内容放在了云笔记上,请多点一下鼠标: http://note.youdao.com/s/8cleVUiT
-
6自己输入的代码是这样的 In[6]:= \[Psi][\[Xi]] = E^(-\[Xi]^2/2) H[\[Xi]]; H[\[Xi], Subscript[a, \[Nu]]] = Sum[Subscript[a, \[Nu]] \[Xi]^\[Nu], {\[Nu], 0, \[Infinity]}]; \[Psi][\[Xi]] Out[8]= E^(-(\[Xi]^2/2)) H[\[Xi]] In[9]:= \[Psi]'[\[Xi]] = D[E^(-(\[Xi]^2/2)) \!\( \*UnderoverscriptBox[\(\[Sum]\), \(\[Nu] = 0\), \(\[Infinity]\)]\( \*SuperscriptBox[\(\[Xi]\), \(\[Nu]\)]\ \*SubscriptBox[\(a\), \(\[Nu]\)]\)\), \[Xi]] Out[9]= E^(-(\[Xi]^2/2)) \!\( \*UnderoverscriptBox[\(\[Sum]\), \(\[Nu] = 0\), \(\[Infinity]\)]\(\[Nu]\ \*SuperscriptBox[\(\[Xi]\), \(\(-1\) + \[Nu]\)]\ \*SubscriptBox[\
-
2
-
4model = CreateSystemModel[{x1'[t] == x2[t], x2'[t] == -9.8 x1[t] + a[t], a[t] == 9.8 x1[t] - x2[t] - Sign[x1[t] + x2[t]], x1[0] == 1, x2[0] == 0}, t] sim = SystemModelSimulate[model, 10, Method -> {"RungeKutta", "StepSize" -> 0.001}] SystemModelPlot[sim, "a", PlotRange -> {-10, 10}, Frame -> True, GridLines -> {Range[10], Automatic}] 仿照MATLAB进行滑模控制的一个例子,按理说在t=1s之后应该出现抖振,但却没有出现,这是怎么回事?
-
9方程在(0,3)之间有根,运行却报错,怎样避免这种情况! ff[x_] := Block[{}, sol = FindRoot[y^3 + y^2 + 1 + x == 0, {y, -1}]; x^2 + y /. sol] ff[0] ff[3] FindRoot[ff[x] == 0, {x, 0, 3}, Method -> "Brent"]
-
1
-
7
-
12
-
47请问大佬 怎么用mathematica画出跳棋棋盘?
-
19近段时间我逐步增加了使用版本11.3和版本12的时间,结果发现,Mathematica近几版以来的某些改变(有的好有的坏)其实并没有写在文档里,故开此帖与大家交流。 先说我发现的几个好的改变: 1. 并行能力比过去强了。比如NDSolve在解偏微分方程时,如果调用的是TensorProductGrid方法,多核机器的CPU会跑满。(版本9时代其实也不是完全没并行,但不会像现在这么高效。)NonlinearModelFit也出现了CPU跑满的情况,不过我在版本9时代对NonlinearModelFit的使用有限,
-
10今天早上打开 mma 才发现 linux 下的 mma 不能输入中文(亏我还装了快一个月...),折腾了大半天才终于弄好了 下面讲讲解决方案
-
39因为要在Linux用MMA又想用MMA中文帮助,目前提取了11.1和11.3的中文语言包,顺便分享出来。以后可能会补充其他版本的语言。(度盘限速没办法下载太多版本) 参照了 贴吧/p/4024190694 语言包不提供任何担保。 如有侵权,联系删除。 楼下放链接和教程
-
0鉴于过时教材的“流毒”甚广,特开此标题易懂的主题说此问题。为了便于修订,正文已放在了云笔记上,请大家多点一下鼠标: http://note.youdao.com/noteshare?id=0c2719208239696d61182199327b 有什么意见或建议欢迎提出。
-
1Block[{a, t, p, q, m, r}, Solve[{0.` + 18 b^2 - 20 a b^2 + 4 b^2 m - 8 a^2 b^2 m + 36 b n - 20 a b n - 2 b m n - 8.` a b m^2 n + 15 n^2 - 6
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
看高清直播、视频!