mathematica吧
关注: 19,502 贴子: 73,034

自带帮助是最好的教材,提问前请先仔细查查

  • 目录:
  • 程序设计及人工智能
  • 3
    这个也是讲烂了的内容,但吧里好像没有标题足够显眼的帖,姑且专开一帖,方便索引。 比较常用的“超级函数”基本都有与之对应的数值求解器。如标题所说,如果符号解没算出来并且符号解对你来说不是必要的,那么不妨去试试数值解。 只写这么几行的话内容好像太少,那就再稍微谈一下比较常见的成对的符号/数值求解器及其特性。 对于代数方程:Solve(虽然现在已经发展成了超级求解器,但它主要是个多项式方程求解器)/NSolve(引入时间非
    xzcyr 5-4
  • 0
    本帖是果壳网友 马甲与小号 发在果壳小组的一篇入门教程。如今果壳小组已关,故在吧里发一份备份。 note.youdao.com/noteshare?id=c5114ccda3270199fd801952cf785bff
    xzcyr 4-6
  • 1
    如果你: 1. 看到某某人/某某书/某某文章用了龙格库塔法,所以决定也要用龙格库塔法; 2. 试图用NDSolve解某问题却失败了,所以决定还是用龙格库塔法; 3. 压根不知道NDSolve是什么,以为求解微分方程 = 编个龙格库塔法; 4. 觉得龙格库塔就是好,就是好,就是好! 那么,请记住,经典龙格库塔法(classical Runge-Kutta,RK4,文献里提到了“龙格库塔法”“四阶龙格库塔法”却没具体说明算法细节时一般也都是指它)很大程度上只是一个教学方法,它的性
    xzcyr 6-3
  • 3
    clear["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
    MMA符号比较多,有时候难以确定优先级,加许多圆括号又影响阅读。 比如 ,第一个1究竟是先和左边的@结合,还是和右边的+结合? 这时候可以快速点击第一个1,看到结合的过程。 (这个技巧的出处是Stephen Wolfram的《Elementary Introduction to Wolfram Language》,原文“In a notebook you can find how things are grouped by repeatedly clicking on your input, and seeing how the selection expands.”)
    敢作骑士 12-28
  • 0
    Mathematica在默认配置下大小写敏感。输入“sol”,不会给出"Solve"的提示。 我们需要在Options下的“CodeAssistOptions”里,将MatchingAlgorithm改为Fuzzy。(感谢版主 xzcyr的帖子《关闭笔记本中悬浮提示的办法》) 这样输入小写sol也能提示Solve
    Z的吧 2-14
  • 1
    大概从版本10开始,当鼠标在笔记本中移动到内置函数上方时,Mathematica会自动出现如下的 的悬浮提示。点击这个按钮可以打开帮助。这个功能对新手来说无疑是有好处的(它可以引导新手去阅读帮助),但对于脱离了新手阶段的人而言,这个功能有些多余(F1键调用帮助更方便),甚至可以说是麻烦(n击代码扩展选择的时候非常容易误触这个按钮),那么,有没有办法把这个功能关掉呢?答案是有的。 首先 Ctrl+Shift+O 打开(或者在顶部菜单“格式”
    Z的吧 2-14
  • 7
    1:这样可以工作: 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有能力算出这个指数函数的最小值。 很困惑。或者应该用其他方法吗?谢谢各位高手指点。
    隨意超 12-3
  • 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]却没有被赋值,很多点
    xzcyr 11-5
  • 6
    mma中的三维图一直导出为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更新不
    xzcyr 8-5
  • 5
    现有分块矩阵f2,想对其中的每一个小矩阵求对角线之和(求迹),再放到新的矩阵f3的对应位置上(或者也可以用这些值生成一个新的4*4矩阵,只要对应到位置上就行)。f2中的每一个小矩阵的位置就是f3矩阵元的位置。 我现在的代码用了两层嵌套循环实现,我想问下大佬有没有内置函数,不用循环的方法(或者比现在快一点的)一次性求出来并放到对应位置上。 因为我现在这个只是简单写了几个数字试一下这个代码,倒是试不出运行速度来,但是
  • 3
    请问这种图mathematica怎么画,不同区域有不同的颜色和填充 是用的纹理吗? 如果只用网格和regionplot能画吗,就是不同区域有不同的颜色和形状填充
  • 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
  • 8
    Collect[(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
    这里我只是要简单的求一个数列和的极限。代码只有一行: Limit[Sum[1/Sqrt[i^2 + x^2], {i, 1, x}], x -> Infinity] 但是得到的结果确实一个表达式 查询过了文档,包括Limit和Sum的文档,没有发现相关的问题,也没有找到之前其他人遇到过类似的问题。请问可能是什么原因导致的呢?谢谢解答
    隨意超 3-19
  • 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的近似
    xzcyr 3-5
  • 4
    有大佬知道这个方程怎么解吗
    xzcyr 2-5
  • 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
  • 8
    大家好!我处理个物理实验数据,用指数函数求拟合,遇到两个问题,查了很久资料查不出原因: 1. 给出的结果与预期值偏得特别远; 2. 输出的第二个图没有散点。 想问下是哪里没有弄对?谢谢! data = {{10000, -270}, {15000, -235}, {20000, -200}, {25000, -168}, \ {30000, -139}, {35000, -110}, {40000, -82}, {45000, -56}, {50000, \ -36}, {55000, -20}, {65000, 33}, {70000, 53}, {75000, 68}, {80000, 86}, {85000, 100}, {90000, 115}, {95000, 130}, {100000, 144}, {110000, 160}, {120000, 180}, {130000, 195}, {140000, 213}, {150000, 22
    xzcyr 6-4
  • 5
    Mathematica里是可以在一个函数里包含多条语句的,只要使用 ; 和 () 就行!一个简例(这当然只是个例子,Abs已经内置了): abs[c_] := (re = Re[c]; im = Im[c]; Sqrt[re^2 + im^2]) abs[1 + I] 看到这里,吧里的老人大概会会心一笑,而其他人想必是一头雾水:这帖标题不是要说换行吗,这跟你上面说的东西有什么关系?当然有关系,请耐心往下看。 Mathematica里其实有三种换行,它们是: 1. “完整语句”外的换行。这种换行代表了语句的结束。比如下图 这里的 a 和 b 由
  • 2
    就算你要到数学助手里找,也请在“基本”面板找: 不要跑到“排版”的箭头分类里去找!注意提示文字,这两个箭头不一样! 顺便说一句前一个箭头的完整形式是 Rule ,而后一个箭头的完整形式是 RightArrow ,不过对于会需要阅读本帖的童鞋而言这个知识点大概还太早了。 (这条其实已经收在《十戒》里了,想想还是单开个标题好认的主题吧。)
    骆易 2-26
  • 2
    ClearAll 的正确用途及语法请参看帮助,不知道怎么查帮助的人,以及不知道我现在在说啥的人,请参看《你查过自带帮助了吗?你真的会查自带帮助吗?》:https://tieba.baidu.com/p/4392855072 顺便,clc,clear all之类的东西在Mathematica里也是没有任何意义的。 再顺便,如果你模模糊糊地觉得MATLAB、Mathematica、Maple、C、Pascal……其实是一个东西,那么,你是错的。 (这条其实已经收在《十戒》里了,但想想还是单开个标题好懂的帖强调一下。)
    xzcyr 4-2
  • 3
    ListLinePlot[{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] 如图所示,有什么办法让图中红线所指位置,两个图例之间的空白减小
    xzcyr 9-4
  • 1
    https://1drv.ms/u/s!Amd-uedNeUsttDBBDZWPGllTqawk?e=IohgLF
    xzcyr 4-6
  • 6
    这两天的一点关于模式匹配和任意精度数的小发现,文档里好像没有讲。(期待有人打我脸。)
  • 16
    求这个数 比较丑的写法: (DeleteDuplicates@(If[ Head@((# + 100)^((1/2))) === Integer && Head@((# + 268)^((1/2))) === Integer, #, 0] & /@ Array[# &, 1000000]))[[2 ;;]] 有没有更好的写法?
    sgylvq 5-31
  • 8
    mma确定单位后不会自动转换,如kPa*m^2,不会自动转换为kN,需要手动转换。
    xzcyr 4-2
  • 4
    想想还是再开一个标题醒目的帖强调一遍。自带帮助里对 ReplaceAll(/.)和 Rule( ->)的解说是很清楚的,请仔细阅读帮助。Solve,DSolve 等输出中包含 -> 的函数的帮助中也含有大量它们的实例: 总之,请仔细阅读帮助。 不会查帮助的人请阅读吧里的精品帖《你查过自带帮助了吗?你真的会查自带帮助吗?》:https://tieba.baidu.com/p/4392855072
    Kagamigawa 11-5
  • 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只给出了数值解,而不是用求根公式求出的精确解(含有开立方符号的解)。
    草红样 7-17
  • 4
    这应该算是使用 ReplaceAll ( /. )的过程中必踩的两个坑之一。(另一个请参看《为什么 a^4 /. a^2 -> b 不输出 b^2 ?说说语义式匹配》:https://tieba.baidu.com/p/5728734141 。)为方便修订,正文内容放在了云笔记上,请多点一下鼠标: http://note.youdao.com/s/8cleVUiT
    黑黄 2-10
  • 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
    版本11.1时“偏好设置”菜单里的选项改了一次,官网上曾经给出了一份该改动的完整对照表(是的,现在这表在官网找不到了,不知道啥情况),这里贴一下: 这里面有的选项我个人觉得还挺有用的,比如代码自动补全时不区分大小写(CaseSensitiveCommandCompletion)。
  • 4
    model = 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之后应该出现抖振,但却没有出现,这是怎么回事?
    xzcyr 2-6
  • 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"]
    xzcyr 11-7
  • 1
    吧里老人看了这标题可能会纳闷:不是都已经有一个《绘图和动画功能在版本6时有过重大修改,请不要使用过时的教材!)(https://tieba.baidu.com/p/5360020470)了吗,你重复开帖是做什么。因为……前两天我〇蛋地翻看版本5的帮助的时候,发现 ImplicitPlot 的语法并没有被ContourPlot完全取代: 如大家所见,Implicit 是可以仅指定一个变量的范围的……这个语法ContourPlot还真没有。 那么怎么办呢?还能咋办,把版本5的程序包挖出来,把其中与新版不兼容的地方
    xzcyr 11-7
  • 7
    链接:/s/1fQyRuiG11jitJSJ9HiRo4g 提取码:rv63 无事写的一个简单的解析几何求解器,放出来给各位玩一玩。由于很多函数mma已经有内置同名函数,所以就全部小写了。部分功能想到了再写。自认为可读性还行。效果如下:
  • 12
    各位大佬,小弟有一事求教,mma可以拟合常微分方程的参数么?就像1stopt这样
    燎火6a 5-15
  • 47
    请问大佬 怎么用mathematica画出跳棋棋盘?
  • 0
    提问时请附上引发问题的代码。对标题论断有疑虑的同学请阅读下面这篇对 FindRoot::nlnum 警告的简要解说: https://zhidao.baidu.com/question/810397720290271692.html
    xzcyr 5-2
  • 1
    吞私信标准并不明确。 网址,包括不限于qq号手机号的各类号码,过长的mathematica代码,似乎都有可能被吞。 如果确有发私信的需求,建议在发完之后补发一条“我刚发了X条私信,你是否收到了。” 另,自从百度贴吧封杀pc端私信(是的,封杀了,尽管你在pc端看到的提示是“对方不接受私信”)后我个人就再也没回答过私信中的问题;我个人也一直不喜欢非公开的mathematica讨论,希望大家尽量在吧内提问以便知识的继承。
  • 19
    近段时间我逐步增加了使用版本11.3和版本12的时间,结果发现,Mathematica近几版以来的某些改变(有的好有的坏)其实并没有写在文档里,故开此帖与大家交流。 先说我发现的几个好的改变: 1. 并行能力比过去强了。比如NDSolve在解偏微分方程时,如果调用的是TensorProductGrid方法,多核机器的CPU会跑满。(版本9时代其实也不是完全没并行,但不会像现在这么高效。)NonlinearModelFit也出现了CPU跑满的情况,不过我在版本9时代对NonlinearModelFit的使用有限,
    xzcyr 9-3
  • 10
    今天早上打开 mma 才发现 linux 下的 mma 不能输入中文(亏我还装了快一个月...),折腾了大半天才终于弄好了 下面讲讲解决方案
  • 39
    因为要在Linux用MMA又想用MMA中文帮助,目前提取了11.1和11.3的中文语言包,顺便分享出来。以后可能会补充其他版本的语言。(度盘限速没办法下载太多版本) 参照了 贴吧/p/4024190694 语言包不提供任何担保。 如有侵权,联系删除。 楼下放链接和教程
  • 0
    鉴于过时教材的“流毒”甚广,特开此标题易懂的主题说此问题。为了便于修订,正文已放在了云笔记上,请大家多点一下鼠标: http://note.youdao.com/noteshare?id=0c2719208239696d61182199327b 有什么意见或建议欢迎提出。
    xzcyr 10-7
  • 12
    ListPlot[{{-60, 56.0055}, {-50, 54.8688}, {-40, 50.2206}, {-37.5, 48.6125}, {-35, 46.7932}, {-32.5, 44.7469}, {-30, 42.4642}, {-27.5, 39.945
  • 1
    Block[{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
    xzcyr 3-4

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

小吧:小吧主共10

会员: Expr

目录: 程序设计及人工智能

友情贴吧