Mathematica 有什麼奇技淫巧?

時間 2021-05-05 19:23:39

1樓:Araneida

需要對錶進行具有複雜規則的map操作時,某些情況下可以先轉成字串,然後用正規表示式或者模式匹配規則來插入運算子(甚至函式,這個沒試過),最後再用ToExpression轉換為表示式計算

這個方法的優點在於,很多情況下,正規表示式/模式匹配要靈活許多

2樓:francium bobo

對於函式式為核心的MMA來說匿名函式和Map這類的就已經夠奇技淫巧的了, 完全跟不上這種思維模式~

今天看MMA的教程, 你妹的有夠無聊:Lexical Analysis。將文章中的單詞進行計數, 根據計數放大相應單詞:

3樓:風蕭蕭

求a和絕對值b的和:sumofaandabsb[a_, b_] := If[b>0, Plus, Subtract][a, b]

還有,乙個通用的既可以把數乘以2,又可以把字串擴充套件一倍連線在一起的double函式:

double[v_] := If[StringQ[v], StringJoin, Plus][v, v];

如果執行double[5]得到10,如果執行double["hello"]得到"hellohello"

4樓:

See this trick:

ruleq_[xLength[StringSplit[ToString[q], ""]] > 1 &&

StringSplit[ToString[q], ""][[1]] == "d" :> Module[

,sl = Length[Split[l][[1If[sl == Length[l], sl = sl - 1];

D[ToExpression[StringJoin[l[[sl + 1 ;; -1]]]][x], ]]

};With this, you can do tricks like:

In = dSin[x] /. rule

Out = Cos[x]

andIn = dddddLog[t] /. rule

Out = 24/t^5

In general, an input "ddd...dddf[x]" will be interpreted as the n-order derivative of the function f[x]. However, x must be a symbol, not an expression; i.

e. "dddSin[5x]" does not work because 5x is an expression, not a symbol.

This is not a useful trick, but it does demonstrate an interesting feature of MMA.

5樓:Oliver Xia

用Import函式收集知乎上的好答案舉個例子吧

得到的結果大概是這樣的:

這樣你就可以把知乎上的答案轉化成文字格式儲存啦。

Mathematica裡面應該還有其他為可以編輯文字的函式,可以把收集到的答案變得更美觀一點,不過我不會了,不知道沒有有高手可以支招一下。

6樓:曹洪洋

一些函式的不太常見的用法,執行後出結果,就不用解釋了吧

Range[, 10, 2]

MapAt[F, Range[10], ;; ;; 2]

Table[If[i < 5, i, Unevaluated], ]

Graphics

Internal`PartitionRagged[Range[11, 20], ]

Random`Private`MapThreadMin[, }]

PolynomialForm[5 - 2 x + x^2 - 4 y + y^2, TraditionalOrder -> True]

Plot[Sum[Sin[(2k-1)x]/(2k-1),],,Evaluated->True]

Position算得上常用的內建函式,但是速度並不快,還不如用SparseArray的NonzeroPositions

list=RandomInteger[100,10^6];

r1=Position[UnitStep[list-50],0];//AbsoluteTiming

r2=SparseArray[UnitStep[list-50],Dimensions@list,1]["NonzeroPositions"];//AbsoluteTiming

r1==r2

Solve和Reduce可以消去變數,只求解感興趣的未知數,有時比較有用,比如可以加快某些複雜方程組的求解速度,Solve的文件裡居然沒有提這種用法,不過這裡有,tutorial/EliminatingVariables

Solve[, x, ]

Solve[,d,]

盡可能地少用 "[[i]]

Compile[{},Select[Permutations@Range[9],#[[1]]/(10#[[2]]+#[[3]])+#[[4]]/(10#[[5]]+#[[6]])+#[[7]]/(10#[[8]]+#[[9]])==1&]]

With[,Compile[{},Select[Permutations@Range[9],f]]]

學習 Mathematica 有什麼推薦書籍?

這個問題我來回答,我們數學系有開設兩年的實驗課程要求學習Mam,到現在已經有兩年使用經驗,勉強快結束入門階段吧,但還是覺得太淺薄了。Mam的書以上推薦的這些吧我也翻過或者過,國內的這些我覺得一般,基本上也就是把虛擬全書的照抄,幫助不大。國外的我沒怎麼看過但其實你沒有足夠的英文功底的話我覺得你也吸收不...

Mathematica 到底有多厲害?

這裡給乙個簡單的mathematica函式式程式設計的例子,Mathematica函式式程式設計的基本用法可以看官方的教程 主要思路是函式作用在不同型別的變數 不同的Head,比如Head 233 Integer,Head randomname symbol,Head f x f 有不同的效果,並且...

《哈利波特》赫奇帕奇有什麼角色?

Amarante 神獸系列的男主,紐特斯卡曼德,來自赫奇帕奇 雖然被開除了 也是哈利波特世界裡的角色。Fantastic Beasts and Where to Find Them 的作者 是紐特在紐約遇到的一位北美女巫後來成為他的妻子的來自美國魔法國會MACUSA的傲羅Tina Goldstein...