mathematica怎么解图论
1个回答
展开全部
这里,介绍一下用Mathematica处理数论问题的内容!
工具/原料
电脑
Mathematica
基础
1绘制一个没有明确方向的图:
Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1}]
图里的顶点分别是1、2、3,但是省略了标签!
2再来绘制一个有向图:
Graph[{1 -> 2, 2 -> 3, 3 -> 1}]
3改变边和顶点的样式:
Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1,1 <-> 5}, VertexStyle -> Orange, EdgeStyle -> Green]
Vertex是顶点的意思,Edge是边的意思!
4还可以把样式封装起来:
Graph[{1, 2, Style[3, Red],Style[6,Green],Style[5,Blue]}, { 2 <-> 3, Style[3 <-> 1, Blue], Style[5<-> 1, Yellow], Style[6<->2, Red], Style[2 <-> 1, Green]}]
5给图的顶点和边添加标签,还可以对标签设置不同的样式!
Graph[{1 <-> 2, 2 <-> 3, Labeled[3 <-> 1, Style[ "这是边的标签",Red,Opacity[0.5]]],1 <-> 5}, VertexStyle -> Yellow, EdgeStyle -> Green,VertexLabels -> "Name"]
Opacity是透明度的意思!
求前100个数字的平方,除以17的余数,并把这个映射画成图!
先做列表:
Table[i -> Mod[i^2, 17], {i, 100}]
再构造图:
Graph[%]
2
这是换了一个除数的结果:
Graph[Table[i -> Mod[i^2, 69], {i, 100}]]
3
我们可以给出各顶点的标签,这样看着容易一些:
Graph[Table[i -> Mod[i^2, 69], {i, 100}],VertexLabels -> "Name"]
END
应用二例
列举以plot开头的所有英文单词:
words = DictionaryLookup["plot*"]
把相互之间比较接近的单词,用箭头连起来:
Flatten[Map[(Thread[# \[DirectedEdge] DeleteCases[Nearest[words, #, 3], #]]) &, words]]
作图,并显示标签:
Graph[%, VertexLabels -> "Name", ImageSize ->365]
工具/原料
电脑
Mathematica
基础
1绘制一个没有明确方向的图:
Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1}]
图里的顶点分别是1、2、3,但是省略了标签!
2再来绘制一个有向图:
Graph[{1 -> 2, 2 -> 3, 3 -> 1}]
3改变边和顶点的样式:
Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1,1 <-> 5}, VertexStyle -> Orange, EdgeStyle -> Green]
Vertex是顶点的意思,Edge是边的意思!
4还可以把样式封装起来:
Graph[{1, 2, Style[3, Red],Style[6,Green],Style[5,Blue]}, { 2 <-> 3, Style[3 <-> 1, Blue], Style[5<-> 1, Yellow], Style[6<->2, Red], Style[2 <-> 1, Green]}]
5给图的顶点和边添加标签,还可以对标签设置不同的样式!
Graph[{1 <-> 2, 2 <-> 3, Labeled[3 <-> 1, Style[ "这是边的标签",Red,Opacity[0.5]]],1 <-> 5}, VertexStyle -> Yellow, EdgeStyle -> Green,VertexLabels -> "Name"]
Opacity是透明度的意思!
求前100个数字的平方,除以17的余数,并把这个映射画成图!
先做列表:
Table[i -> Mod[i^2, 17], {i, 100}]
再构造图:
Graph[%]
2
这是换了一个除数的结果:
Graph[Table[i -> Mod[i^2, 69], {i, 100}]]
3
我们可以给出各顶点的标签,这样看着容易一些:
Graph[Table[i -> Mod[i^2, 69], {i, 100}],VertexLabels -> "Name"]
END
应用二例
列举以plot开头的所有英文单词:
words = DictionaryLookup["plot*"]
把相互之间比较接近的单词,用箭头连起来:
Flatten[Map[(Thread[# \[DirectedEdge] DeleteCases[Nearest[words, #, 3], #]]) &, words]]
作图,并显示标签:
Graph[%, VertexLabels -> "Name", ImageSize ->365]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询