数学中国

标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与 [打印本页]

作者: 天山草    时间: 2013-9-3 09:36
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/09/13 01:11pm 第 4 次编辑]


交流一下 Mathematica 编程方法,希望此帖长期生存。期待懂得 Mathematica 的网友积极参与,把你们的好经验、好方法、好程序介绍给大家。
今天本人先抛砖引玉,说一个 n++; 与 n++, 的区别。


作者: ataorj    时间: 2013-9-3 11:27
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
1 谢谢.我是前一阵见你提起它才接触了的.
2 我认为你这里不用使用N[],甚至不使用Print[],直接s即可
3 我理解逗号,是一个计算单元中的要素项序列分隔符;而分号是计算单元间的分隔符.同一处要素有多项时也用分号分隔.系统一个完整输入即"In[x]="的结尾若使用分号,则执行时不显示其最后"计算"项的结果,除非其语法含有显示属性.
4 有人说它的帮助写得很好.我认为不错,但是仍有点复杂.概括性和例子,我不很满意.有时就不想坚持看了.
5 我暂时不会常用它,用时查查而已.
6 我暂时当它做为lisp方言来了解它,是我研究语言的一个参考.

作者: ataorj    时间: 2013-9-3 13:37
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
你分号逗号乱试,则可能改变了一个计算单元中的要素项的数量,
比如,逗号变分号,则不仅要素项的数量变少,而且分号前的那个可能会被完全忽略,有些只接受逗号前的,不接受要素项中的并列项[指分号分隔]
以上只是我的印象,具体应该试验
作者: 天山草    时间: 2013-9-3 19:09
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由ataorj2013/09/03 11:27am 发表的内容:
2 我认为你这里不用使用N[],甚至不使用Print[],直接s即可
直接 s 显示的是 55/111,不是小数格式。

作者: zhaolu48    时间: 2013-9-4 02:11
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由zhaolu48在 2013/09/04 02:40am 第 2 次编辑]

在下根本没学过“ Mathematica”,只对VF略知皮毛
下面在VF下编程为
CLEAR
CLEAR ALL
s=0
n=10
FOR i=1 to n
a=i*i
b=a*a
c=10*i/(b+a+1)
s=s+c
endf
a=INT(s)
b=(s-a)*1000000000000000
c=';0.';+STR(a,1)+STR(b,15)
?';s=';+c
n=10时输出结果为
0.4954954954954955
看来是以495为循环节的循环小数。
程序中用了‘c=10*i/(b+a+1)’及
a=INT(s)
b=(s-a)*1000000000000000
c=';0.';+STR(a,1)+STR(b,15)
?';s=';+c
是为了使输出结果多一位小数,即是16位小数
而VF自身只能显示15位小数
当n=100时输出的结果为
0.4999504999505005
看来结果应以499950为循环节的循环小数。
当n=1000输出的结果为
0.4999995004999991
由此可猜想,以“a(n)”为通项的级数收敛为0.5
即当n→∞时和为0.5
作者: zhaolu48    时间: 2013-9-4 02:43
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面程序
s=0
n=10000000
FOR i=1 to n
a=i*i
b=a*a
c=i/(b+a+1)
s=s+c
endf
?s*1.00000000000000
输出结果为
0.499999999996316

作者: 天山草    时间: 2013-9-4 13:56
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
热烈欢迎赵老师光临。不知 6 楼程序运行了多长时间?【n 等于 1 千万时】
作者: 天山草    时间: 2013-9-4 13:58
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

上述程序大约需要运行三、五分钟吧。
作者: 天山草    时间: 2013-9-4 14:08
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/09/04 02:10pm 第 1 次编辑]

While 【直到】语句的用法:
写一个演示 3x + 1 猜想的语句,使用 While 最合适。此时用 For 语句或 Do 语句则不易编程。

作者: 重生888    时间: 2013-9-4 14:11
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
老师邮件收到了吗?谢谢!
作者: 天山草    时间: 2013-9-4 14:23
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
如果不想看到中间迭代的过程,只想知道迭代了多少次,可以这样编程:

作者: 天山草    时间: 2013-9-4 14:36
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
对于 1 万以内的所有正整数验证 3x + 1 猜想:
作者: zhaolu48    时间: 2013-9-4 14:57
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/09/04 01:56pm 发表的内容:
热烈欢迎赵老师光临。不知 6 楼程序运行了多长时间?【n 等于 1 千万时】
9秒
作者: 天山草    时间: 2013-9-4 16:29
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由重生8882013/09/04 02:11pm 发表的内容:
老师邮件收到了吗?谢谢!
没有收到,我已给你回了短消息。

作者: 天山草    时间: 2013-9-4 16:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由zhaolu482013/09/04 02:57pm 发表的内容:
9秒
那还是很快的,很不错。只是精度好像差了一些。Mathematica 需要三分钟吧,可以得出准确数字。

作者: ataorj    时间: 2013-9-4 18:33
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由ataorj在 2013/09/04 08:23pm 第 1 次编辑]

原帮助画三维曲面一部分内容
[官方网站 Mathematica v4 有关
http://reference.wolfram.com/legacy/v4-zh/]
2.9.11 画三维曲面
给出适当的图形基元列表后,基本上就可以用 Graphics3D 来表示任何三维对象. 通过明确给出边界相连的多边形集合就可用 Graphics3D 表示三维曲面.
如果要表示能折叠和自相交的任意曲面时,只有 Graphics3D 用一组多边形才能 实现, 这与 ParametricPlot3D 所做的相同.
但在很多情况下仅涉及到简单曲面,例如,Plot3D 和 ListPlot3D 产生无折叠, 且在每个x,y处高度有限的曲面. Mathematica 中这类简单曲面的表示不需要 给出多边形集合,而需要给出在每个网格处 高度的集合. 图形对象SurfaceGraphics[array] 表示用这种方式构造的曲面.
===========
我的简易理解:多边形实现的三维曲面
行列式元素只是高度z值,x,y如下自动隐含了:[我这些都不是正规描述,但是很方便于理解原理]
y轴总可视为仅是一个y轴
下面{0.2, -1.4, 3, 1}, {1.5, 0, 2.6, 3}可视为y轴上两个x轴上的元素,它们表示2*4的列表:
y0,x0,z=0,0,0.2
y0,x1,z=0,1,-1.4
y0,x2,z=0,2,3
y0,x3,z=0,3,1
y1,x0,z=1,0,1.5
y1,x1,z=1,1,0
y1,x2,z=1,2,2.6
y1,x3,z=1,3,3
源码:
Show[SurfaceGraphics[{{0.2, -1.4, 3, 1}, {1.5, 0, 2.6, 3}}]]
原帮助提供的一个例子:
moda = Table[Mod[i, j], {i, 4}, {j, 4}];Show[SurfaceGraphics[moda]]
=================
三维立体感暂时可由系统帮我们自动着色达成...
列表越大则一般锯齿越小,曲线感越强...
我们理解了基本原理,就可自由发挥了.这就看我们数学水平如何了.
谁能提供地球仪源码?谢谢!或者标准程序包中就有,但可能需要整理...
作者: ataorj    时间: 2013-9-4 19:07
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
提个建议:
最好直接贴源码文本,方便共享
Mathematica一般自动把用户输入的转换成"可视化"的,但是我"全选","复制",粘贴于记事本等又会自动转换为常规文本....

作者: ataorj    时间: 2013-9-4 19:57
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
常规文本的源码才是它的本分
作者: 天山草    时间: 2013-9-5 09:59
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由ataorj2013/09/04 07:57pm 发表的内容:
常规文本的源码才是它的本分
    噢,如何得到程序的“源码”,这个本人不会。
作者: 天山草    时间: 2013-9-5 10:12
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
对于一个较大的数,例如 99 的 99999 次方, 迭代次数是 4769879 次:

作者: 天山草    时间: 2013-9-5 11:17
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
画二维隐函数的图像,示例:

作者: 天山草    时间: 2013-9-5 11:51
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

作者: 天山草    时间: 2013-9-5 12:15
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

作者: 天山草    时间: 2013-9-5 12:40
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

作者: ataorj    时间: 2013-9-5 13:03
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
试验了下文本,我前面描述有误:
1 输入时尽量别使用2维面板或2维格式[比如按下 Control 键,再按下^键...],否则Ctrl+C会复制某些"内部"格式代码.[比如直接使用^即可]
2 默认输出总是2维模式.复制时"内部"过程等代码会更多,一般若输出图形的,先删除输出单元.
-----------
下面,大家可用左键打开,关闭,选择右边的嵌套括号.注意,按住左键不放而拖可多选单元.然后可复制等
不计算当前单元而新起一个单元的办法,光标移到单元和单元的间隙可出现一横线,光标移到文顶文尾也可...
帮助中的部分内容:
Mathematica 笔记本允许用户创建一个能在屏幕上阅读也能打印 在纸上的文档.对较大的文档,通常会有章、节等等.用单元组表示, 每个组的范围由笔记本右边的括号指明.
笔记本中的单元分组由右边的嵌套括号指明
单元组可以被打开或关闭.当它被打开时,用户可看到其中的所有单元,当它被关闭时,用 户仅能看到该组的第一个单元.
有大量内容的笔记本,常常包括着许多关闭的单元组,这样,当用户初看 笔记本时,只看到内容的概要.用户可以双击相应的括号,打开感兴趣的 部分内容.
双击包含单元组的括号,即可将其关闭,此时只能看到该组的第一个单元
当单元组关闭时,相应的括号底部有一个剪头.双击该剪头,可以将其打开
笔记本中的每一个单元被赋以一个特定的类型,用以指明 它在笔记本中的作用. 例如,打算作为输入让 Mathematica 内核执行的材料, 被赋以输入类型,而只用以阅读的文本被赋以文本类型.
Mathematica 前端提供了菜单和快捷键来创建不同类型的单元和修改已存 在的单元的类型.
这里展示了不同类型的单元,类型不仅规定了单元内容的格式,而且规定了单元的位置和间隔

作者: ataorj    时间: 2013-9-6 18:50
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
expr一维输出
InputForm[expr] 显示expr的适合Mathematica输入的形式。
注:
InputForm总是产生适于作为Mathematica输入行的一维输出。
InputForm起一个包装的作用,这影响输出,不影响计算。
可以使用 Short[InputForm[expr]] ,但可能产生不能作为Mathematica输入给出的框架对象。

作者: 天山草    时间: 2013-9-13 13:07
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

作者: 天山草    时间: 2013-9-22 13:13
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/09/22 01:18pm 第 1 次编辑]


已知一个正整数 = (10^1146 - 1)/(9*2293),这是一个有一千多位的数。
组成此数的所有各位数字,其总和是多少 ?
编程方法:
(1)将此数化成一个由各位数字组成的列表;
(2)求构成这个列表的元素个数;(也就是那个大数是多少位)
(3)求各位数字之和。
答案是 5079。


作者: 天山草    时间: 2013-10-24 17:28
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/24 05:33pm 第 1 次编辑]

风花飘飘提出了一个【一元三次方程的求解公式】,根据此公式编程如下。
注:方程的一般形式是 x^3 + ax^2 + bx + c = 0。

作者: 天山草    时间: 2013-10-24 17:34
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
再给一个例子。

作者: denglongshan    时间: 2013-10-24 22:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
好,大家一起交流
作者: 风花飘飘    时间: 2013-10-24 23:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天山草    时间: 2013-10-25 09:45
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由denglongshan2013/10/24 10:31pm 发表的内容:
好,大家一起交流
denglongshan 学习 mathematica 比本人早,期待您提供更多更好的学习经验。
作者: denglongshan    时间: 2013-10-27 22:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
Mathematica我主要是在证明几何结论时用于符号计算。有时仍然难以计算出结果,还期望楼主帮助。Mathematica经常用就熟悉了。压缩文件是一段证明概率考的一道很难的几何题的源程序,没有算出结论。
作者: denglongshan    时间: 2013-10-27 22:57
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
楼主老师:可以把你在 http://www.mathchina.com/cgi-bin/topic.cgi?forum=5&topic=18665 的源程序发过来吗?站内短信也可以。
作者: 天山草    时间: 2013-10-28 17:08
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/28 05:11pm 第 1 次编辑]

直接发 mathematica 文件不知是否能行,将其转换成了 txt 文件:

作者: 天山草    时间: 2013-10-28 17:21
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/28 05:36pm 第 1 次编辑]

奇了怪了,今天运行这个文件,为何不是先前那个结果了?
显示了下述信息:
A very large output was generated. Here is a sample of it:《1》
现在明白了,原先是给 x 和 y 赋过具体的值,之后虽然消去了这些值,但是其作用还存在。如何解决这个问题?
-------------------------------------------------
BC = 1; a = 1; AB = Sqrt[
x^2 + y^2]; c = AB; AC = Sqrt[(1 - x)^2 + y^2]; b = AC; p = (
a + b + c)/2;
r = Sqrt[((p - a) (p - b) (p - c))/p]; JB =
ArcCos[(a^2 + c^2 - b^2)/(2 a*c)]; JC =
ArcCos[(a^2 + b^2 - c^2)/(2 a*b)];
XD = r/Tan[JB/2]; YD = 0;
XE = 1 - (1 - XD)*Cos[JC]; YE = (1 - XD)*Sin[JC];
XF = XD*Cos[JB]; YF = XD*Sin[JB];
k = YE/XE; k1 = YF/(1 - XF);
YQ = (k^2*r + k*XD)/(1 + k^2) - (
  k Sqrt[k^2*r^2 + 2 k*r*XD - k^2*XD^2])/(1 + k^2);
XQ = (k*r + XD - Sqrt[k^2*r^2 + 2 k*r*XD - k^2*XD^2])/(1 + k^2);
YR = k1 - k1^3/(1 + k1^2) + (r*k1^2)/(1 + k1^2) - (k1*XD)/(
  1 + k1^2) - (
  k1 Sqrt[-k1^2 + 2 k1*r + k1^2 r^2 + 2 k1^2*XD - 2 k1*r*XD -
    k1^2*XD^2])/(1 + k1^2);
XR = (k1^2 - k1*r + XD +
  Sqrt[-k1^2 + 2 k1*r + k1^2 r^2 + 2 k1^2 XD - 2 k1*r*XD -
   k1^2 XD^2])/(1 + k1^2);
YM = 0; XM = (XR*YE - XE*YR)/(YE - YR);
k2 = YE/(XE - XD); k3 = YF/(XF - XM); k4 = (YR - YQ)/(XR - XQ);
XG = (k2*XD - k3*XM)/(k2 - k3); YG = (k2*k3*XD - k2*k3*XM)/(k2 - k3);
XG1 = (k2*XD - k4*XQ + YQ)/(k2 - k4); YG1 = (k2*k4*XD - k2*k4*XQ +
   k2*YQ)/(k2 - k4);
If[XG == XG1 && YG == YG1, Print["G点与G1点重合"], Print["G点与G1点不重合"]]
作者: 天山草    时间: 2013-10-28 21:05
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/08 09:22pm 第 5 次编辑]


作者: 天山草    时间: 2013-10-28 21:10
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/08 09:24pm 第 1 次编辑]


“mathematica 好像只能对于具体数字进行判断。” 这种说法是不正确的!
作者: denglongshan    时间: 2013-10-28 22:51
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由denglongshan在 2013/10/28 11:04pm 第 1 次编辑]
下面引用由天山草2013/10/28 05:21pm 发表的内容:
奇了怪了,今天运行这个文件,为何不是先前那个结果了?
显示了下述信息:
A very large output was generated. Here is a sample of it:《1》
现在明白了,原先是给 x 和 y 赋过具体的值,之后虽然消去了这些值 ...
只好关闭程序后又重新,你的源程序证明概率考的结论时,程序提示“产生了一个很大的输出”。
我的程序有问题吗?为什么计算不出结果?
    另外,张景中院士和合作者在研究几何自动证明器最近的一篇论文中,已经提到共轭比概念,这项研究是国家自然基金项目,参考:http://crad.ict.ac.cn/zhuantipaper/130918.pdf
,是在 http://bbs.cnool.net/cthread-104808052.html中找到的,但我看不懂。
作者: 天山草    时间: 2013-10-29 12:15
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/29 07:37pm 第 1 次编辑]

做那道几何题时,我原以为 mathematica 有能力判定两个代数式是否恒等,现在明白了,不行。这个软件目前还没有这项功能。要是有这个功能,那可就有用处了,可惜不行啊。就算是很简单的公式,例如 (x+1)(x-1) 是否与 x^2-1 恒等,它也判定不出来。
解决的办法只能是给未知量赋以具体值,不论公式多复杂也能算出来。如果单独列出公式结果,可能公式会极其复杂(虽然如此,也还是能给出的,可能 A3 的纸要写十几页),这就是“产生了一个很大的输出”的意思。
   两个很复杂的公式是否恒等,若是单靠人工判断,那是行不通的。希望以后的软件能解决这个问题。如果用许多组具体值代入公式计算,若都相等,也可以证明恒等。但是至少需要用多少组值来试验,这问题就难了。还有一个困难的地方,就是数值计算总有一定的精度,不可能算得绝对准确,那多高的精度才能符合证明的要求,也不好说清楚。
   你的程序我看不懂,不知为何算不出结果。按理说,结果即使很复杂,也应该能算得出来。

作者: denglongshan    时间: 2013-10-29 12:42
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
那道题,用坐标求解,你的方法显然计算量太大,用复数却可以很快算出来,复数的优点学术界早已公认,但是有些问题即使用复数,仍然很难。
论文 http://crad.ict.ac.cn/zhuantipaper/130918.pdf 中,
张景中院士和其合作者应用Mathematica编出几何证明器,可以高效率解决这类问题,有兴趣可以下载什么链接中的论文。论文中的五圆定理很有意思,不过我还没有证明。

作者: 天山草    时间: 2013-10-29 20:17
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由denglongshan2013/10/29 00:42pm 发表的内容:
论文 http://crad.ict.ac.cn/zhuantipaper/130918.pdf 中,
张景中院士和其合作者应用Mathematica编出几何证明器,可以高效率解决这类问题,有兴趣可以下载什么链接中的论文。论文中的五圆定理很有意思,不过我还没有证明。
这篇论文还比较新嘛。文中谈到“唐灵在第六届国际几何自动推理会议上提出了共轭比和向量商概念,并根据它们推导出系列公式,……”可见您的东西还是被人认可的。
作者: denglongshan    时间: 2013-10-29 23:18
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

作者: 天山草    时间: 2013-10-30 09:50
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/30 00:07pm 第 1 次编辑]

看了下张景中的那篇论文。张提出的是基于复数的方法,让精通计算机的李涛用此方法搞了一个新的 CNMP 证明器。在证明器中构建了一整套自定义函数,这些函数大概都是用 mathematica 语言定义的或构建的吧?在“五点圆”的证明中,每个“点”的位置的表达式都不算太复杂,其中最复杂的要算是 O3 点吧,但是也还不很复杂,所以 mathematica 能够胜任。
  张景中的论文中不可能给出“证明器”的软件清单,那是人家的专利。他们的成功诀窍可能在于“点、线、角”等的表达式都不会很复杂,因此“效率高”。而“共轭比”方法有可能在某些情况下导致表达式有些复杂, 以致于 mathematica 不能胜任。
   而本人以前使用“点的直角坐标法”解题,公式的复杂性则会数百倍的大大增加,所以只能用具体数值进行计算,不能作为一种证明方法。
   以上只是一些不成熟的看法。
    关于张景中对五点共圆的证明方法,本人目前自认为是看懂了,下面就用这方法做一做,看看能不能做出来。

作者: 天山草    时间: 2013-10-30 12:08
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/08 09:30pm 第 1 次编辑]


作者: 天山草    时间: 2013-10-30 12:08
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/30 00:22pm 第 1 次编辑]

对于上面这个证明题,张景中的方法是这样的:
不失一般性,令 A 点的复数坐标是(0,0i),B 点的坐标是(1,0i),
C 点的坐标是(a,bi),D1 点的坐标是(u,vi),E1 点的坐标是(s,ti),
以下将根据事先求得的公式【这些公式作者没有公布,不过大家也可以试着推导出来】,借助于 mathematica 这个软件平台,解出以下各点的坐标:F,G,H,J,K,O1,O2,O3,O4,O5,A2,B2,C2,D2,E2 以及∠A2D2B2, ∠A2C2B2, ∠A2E2B2 的表达式。
   最终若能推出上述三个角是相等的,则证明了五点共圆。

作者: 天山草    时间: 2013-10-30 12:09
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/30 04:57pm 第 7 次编辑]


先求 F 点的坐标。F 点是直线 BC 和直线 D1E1 的交点。这两条直线是由四个点B,C,E1,D1 决定了的,而这四个点的复数坐标现在是已知的。我们借助于 mathematica 来算一下直线 BC  与直线 D1E1 交点的复数坐标。

我倒要看看,“坐标法”与“复数坐标法”究竟哪里不一样?
作者: 天山草    时间: 2013-10-30 12:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/10 08:04am 第 9 次编辑]

下面计算五个三角形的外接圆圆心坐标。由不在同一直线上的三个点A(XA,iYA),B(XB,iYB),C(XC,iYC) 组成的三角形的外接圆圆心坐标,其表达式是个啥呢?哎哟,张景中没有告诉我,还得自己推导呀。好吧,试试看。


作者: 天山草    时间: 2013-10-30 12:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/31 08:51pm 第 7 次编辑]


至此,已经求出了 10 个点的复数坐标,其结果均与张景中论文中的完全相同,初战告捷。
下面进行第三战役,就是求出五圆的另外五个交点的复数坐标。


作者: 天山草    时间: 2013-10-30 13:28
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/04 09:17pm 第 3 次编辑]

现在要证明 A2,B2,C2,D2,E2 五点共圆。这是第四战役。
原以为这是一场硬仗,谁知敌人不堪一击。下面的方法跟张景中的方法不一样。

作者: 天山草    时间: 2013-10-30 13:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/05 08:19pm 第 3 次编辑]

关于这个五点共圆的证明,写出以下几点看法。
【1】用复数坐标证明几何题,与用普通坐标法证明的区别,我想就是复数法的表达式要简练得多,因此 mathematica 这个软件平台易于胜任。而用普通坐标法,表达式往往过于庞大,软件平台能力不行。至于用人工推导证明,那在时间上更是行不通的。
【2】mathematica 本身还是有许多不足的,以后不断改善,将更容易实现“几何定理证明的机械化”。
【3】“条条道路通北京”,具体的证明方法可以有多种。之前是吴文俊的面积法,现在是张景中的复数法,还有唐灵的“共轭比”法,只要形成了自己独立的体系,都是可以成立的。当然,对于不同的问题,可能有最适合的方法。

作者: denglongshan    时间: 2013-10-30 22:19
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
已经用共轭比证明五圆定理,原程序有错,修改后可以很快算出,而且从最后的结论来看,j1可能是几个有向角的和差。
作者: 天山草    时间: 2013-10-31 09:23
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由denglongshan2013/10/30 10:19pm 发表的内容:
已经用共轭比证明五圆定理,原程序有错,修改后可以很快算出
好。弄好后贴出来,也可以与张景中的方法作个对比。
作者: denglongshan    时间: 2013-10-31 18:49
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
这段我不理解,复数与点的乘积是什么?
作者: 天山草    时间: 2013-10-31 20:03
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/10/31 08:13pm 第 2 次编辑]
下面引用由denglongshan2013/10/31 06:49pm 发表的内容:
这段我不理解,复数与点的乘积是什么?
那个 A 点表示该点所代表的复数,因此表示的是“复数与复数的乘积”。
这个性质有什么用处,我没有看明白。我在做题时并没有用到这一条性质,但是张景中用了。乘积的结果是 a+bi,u+vi,s+ti。我是直接将 C,D1,E1 各点命名为这些复数的,因为这三个点都是“自由变量”,而 A 点和 B 点不是。

作者: denglongshan    时间: 2013-10-31 22:35
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与

加注释语句去掉A和B的初始值,仍然可以算出,只是时间长一些,把我原来错误的公式改一下,就可以算出来。
作者: denglongshan    时间: 2013-11-1 18:58
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/10/31 08:03pm 发表的内容:
那个 A 点表示该点所代表的复数,因此表示的是“复数与复数的乘积”。
这个性质有什么用处,我没有看明白。我在做题时并没有用到这一条性质,但是张景中用了。[quote]下面引用由天山草2013/10/31 08:03pm 发表的内容:

下面引用由denglongshan在 2013/10/31 06:49pm 发表的内容:
这段我不理解,复数与点的乘积是什么?
那个 A 点表示该点所代表的复数,因此表示的是“复数与复数的乘积”。
这个性质有什么用处,我没有看明白。我在做题时并没有用到这一条性质,但是张景中用了。乘积的
...
[/quote]
“我在做题时并没有用到这一条性质”,张院士可能在后台运算中用到,我已经证明了这条性质,不过感觉这几条性质不好用。
利用圆周角相等证明四点共圆时,建议用共轭比,论文中的性质7可能用起来不方便。张证明角相等时,没有说明计算结果,可能是等式太长,这点应该认为是不可读的。
  他用双等号不合规范,令人费解。
张的课题是国家自然基金和“九七三”项目,不是商业软件,向他要软件是否可以?
作者: 天山草    时间: 2013-11-1 19:31
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/08 09:35pm 第 4 次编辑]

请问 denglongshan 先生:
(说明:这个问题现在已经解决,请看后面的帖子)


如果已知四个点的复数坐标,如何用“共轭比”的方法证明这四个点共圆?
作者: 天山草    时间: 2013-11-1 19:47
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由denglongshan2013/11/01 06:58pm 发表的内容:
张的课题是国家自然基金和“九七三”项目,不是商业软件,向他要软件是否可以?
软件是李涛写的,因此张给别人的可能性不大。
若只是这一道题的软件,倒是有可能给。如果要全部“证明器”的模块软件,给的可能性极小。

作者: denglongshan    时间: 2013-11-1 22:20
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
老朋友:
    不必客气称先生,由于四点共圆,用z';表示z的共轭复数,只要证明z';=z即可,实际上用交比证明四点共圆和用共轭比表示角度关系是等价的:
(z1-z3)(z2-z4)/((z2-z3)(z1-z4))=(z1';-z3';)(z2';-z4';)/((z2';-z3';)(z1';-z4';))
上面的式子改写为:
((z1-z3)/(z1';-z3';))/((z2-z3)/(z2';-z3';))=((z1-z4)/(z1';-z4';))/((z2-z4)/(z2';-z4';)))
(z1-z3)/(z1';-z3';)正是共轭比的定义,利用共轭比表示角度更容易发现角之间的和差关系.
肯定不是一道题的程序,这么说需要购买了?
[br][br]-=-=-=-=- 以下内容由 denglongshan 时添加 -=-=-=-=-
不知道他们如何证明?论文中的性质7很难用.[br][br]-=-=-=-=- 以下内容由 denglongshan 时添加 -=-=-=-=-
论文中提到的四条高难度定理中,前三条都是线性构造命题,还不算太难,最后的Thebault定理,多年前试过,没有证明,希望和您共同证明它和概率考提出的那道与阿波尼斯圆有关的结论。
作者: 波浪    时间: 2013-11-3 09:07
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/09/03 09:36am 发表的内容:
交流一下 Mathematica 编程方法,希望此帖长期生存。期待懂得 Mathematica 的网友积极参与,把你们的好经验、好方法、好程序介绍给大家。
今天本人先抛砖引玉,说一个 n++; 与 n++, 的区别。
已经下载了这个软件,还得跟着天山草和诸位学习。
作者: 天山草    时间: 2013-11-3 11:24
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由波浪2013/11/03 09:07am 发表的内容:
已经下载了这个软件,还得跟着天山草和诸位学习。
波浪掌握了 mathematica,那将是如虎添翼,天马行空。本人目前只不过学习了这个软件的三分之一【估计值】,这个软件总体说来还是很好的,但也有一些毛病,需要不断改进。目前最新版本是 9,我用的是 7。版本 8 虽已下载,但是没有注册机,所以还不能安装。

作者: 天山草    时间: 2013-11-3 11:33
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/03 11:37am 第 1 次编辑]
下面引用由denglongshan2013/11/01 10:20pm 发表的内容:

肯定不是一道题的程序,这么说需要购买了?
要是小于一百元人民币,可以购买;大于就不必买了。
另外,如果已知那四个点的复数坐标【如前面所示】,如何具体地用程序证明四点共圆?
作者: denglongshan    时间: 2013-11-3 18:41
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由denglongshan在 2013/11/03 06:42pm 第 1 次编辑]

用z';表示z的共轭复数,只要证明z';=z即可,实际上用交比证明四点共圆和用共轭比表示角度关系是等价的:
(z1-z3)(z2-z4)/((z2-z3)(z1-z4))=(z1';-z3';)(z2';-z4';)/((z2';-z3';)(z1';-z4';))
设z=x+y*i,则z=x-y*i,其它几个复数都用这种方式表示,最后证明
z';-z=0
按照同样的方法利用共轭比也可以,证明
((z1-z3)/(z1';-z3';))/((z2-z3)/(z2';-z3';))=((z1-z4)/(z1';-z4';))/((z2-z4)/(z2';-z4';)))
也就是∠Z3=∠Z4
作者: 天山草    时间: 2013-11-3 20:44
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/03 08:45pm 第 1 次编辑]
下面引用由denglongshan2013/11/03 06:41pm 发表的内容:
能否用 If[Im[(z1-z3)(z2-z4)/((z2-z3)(z1-z4))]==0,Print["ok"]] 这一语句进行证明?
如果各点的复数坐标是具体数字,这样做没有问题。如果不给出具体数字,好像就不行。不知您用的 mathematica 是哪个版本的?我的是版本 7,更高的版本是否行?
作者: denglongshan    时间: 2013-11-3 22:12
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
这个我没有试过,我用8.0版本,估计不行,可能是因为软件不能识别字母是代表一个实数或复数。你试过我的方法吗?另外,这条定理可能是错误的,至少是不严密的,因为没有严格定义五角星,画板软件可以验证,从图中可以看出,图中假设A、B、C、D和E是自由点,构造其它几个点时显然考虑没有这几个点的位置。令人困惑的是,既然代数方法证明是正确的,就不应该有问题,以前就发过帖子《几何与代数的冲突》提出质疑,没有人响应。
期望大家一起解决余下的三条定理,特别是泰博定理。
作者: 天山草    时间: 2013-11-4 20:33
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/05 08:24am 第 3 次编辑]

哈哈,我的问题解决了,其实本没有什么问题的,不知当初是哪糊涂了一下。
运算的结果是一个实数,因此 Z1,Z2,Z3,Z4 四点共圆。

作者: 天山草    时间: 2013-11-5 08:22
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/05 08:18pm 第 2 次编辑]

关于这个五点共圆的证明,写出以下几点看法。
【1】用复数坐标证明几何题,与用普通坐标法证明的区别,我想就是复数法的表达式要简练得多,因此 mathematica 这个软件平台易于胜任。而用普通坐标法,表达式往往过于庞大,软件平台能力不行。至于用人工推导证明,那在时间上更是行不通的。
【2】mathematica 本身还是有许多不足的,以后不断改善,将更容易实现“几何定理证明的机械化”。
【3】“条条道路通北京”,具体的证明方法可以有多种。之前是吴文俊的面积法,现在是张景中的复数法,还有唐灵的“共轭比”法,只要形成了自己独立的体系,都是可以成立的。当然,对于不同的问题,可能有最适合的方法。

作者: denglongshan    时间: 2013-11-5 22:59
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/11/05 08:22am 发表的内容:
关于这个五点共圆的证明,写出以下几点看法。
【1】用复数坐标证明几何题,与用普通坐标法证明的区别,我想就是复数法的表达式要简练得多,因此 mathematica 这个软件平台易于胜任。而用普通坐标法,表达式往往 ...
根据你的计算结果看来我是犯了主观主义的错误,用交比完全可以判断四点共圆。提出几点意见:   
    复数坐标这个提法不妥, 坐标是一对实数;
    面积方法是张景中提出,二不是吴文俊提出的;
    我不明白张景中论文中的几条性质该如何用,感觉反而麻烦;
    五圆定理虽然是定理,而且我们已经证明,但是我们的证明没有考虑到点的位置,这能算定理吗?
     http://www.mathchina.com/cgi-bin/attachment.cgi?forum=5&topic=18421&postno=&name=B6A8C0EDB4EDCEF3_1383487957&type=.jpg
    多年一直没有证明泰博定理,期望大家解决,另外,从论文中可以看出,泰博定理程序证明时间比五圆定理更短,是否更容易?
   在三角形ABC的边上取一点D,分别有两个圆与AD和BC和△ABC的外接圆相切,证明它们的圆心与△ABC的内心共线。
希望看到你的源代码
作者: 天山草    时间: 2013-11-6 07:07
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/08 09:05pm 第 2 次编辑]

我还有一个问题需要请教 denglongshan ,在 mathematica 中,对于复数运算,有二个函数,一个是 Re[Z], 另一个是 Im[Z],分别是对复数 Z 或是其一个复数表达式取其实部和虚部。
 问:若 Z 是一个全是字母的复数表达式,运算以后能给出结果吗?
---------------------------------------------------------------------
上面这个问题很重要,我已经找到了解决的方法(或者说 mathematica 所采用的指令):

作者: 天山草    时间: 2013-11-6 09:01
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/07 08:43am 第 1 次编辑]
下面引用由denglongshan2013/11/05 10:59pm 发表的内容:
我不明白张景中论文中的几条性质该如何用,感觉反而麻烦;
我也同感,同感!比如说那个四点共圆的条件,老张就搞得很复杂的。说不定呀,老张不知道“交比”很适合解决这问题。
所谓“证明器”,就是找一些“机器零件”拼凑出一台“机器”,但是“机器”都不是万能的,“专用机器”最适合制造“专用件”。所以我主张搞一个多台机器组成的“证明器群”,那才是有力的工具。
但是要找到一个好的“机器零件”,不是很容易的。比如,已知一个三角形的各顶点坐标,如何求其外接圆圆心坐标,内切圆圆心坐标以及切点坐标,还有三角形的各内角角度(普通那种含有三角函数,开平方函数的不好用)。
作者: 天山草    时间: 2013-11-7 08:27
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/07 08:40am 第 1 次编辑]
下面引用由denglongshan2013/11/05 10:59pm 发表的内容:
   复数坐标这个提法不妥, 坐标是一对实数;    

   “坐标是一对实数”。这当然没有错,但是“复数坐标”与普通坐标还是有重大差别的。“复数坐标”一般并不表达成“a+bi”这种样式,不然的话,与普通的(x,y)坐标就没有多少区别了。例如,五圆问题中的 A2 点,若是表示成普通意义下的“横坐标”和“纵坐标”的话,将非常复杂,最终结果有可能导致“走头无路”。但是如果表达成“复数坐标”,会简洁许多:


至于称为“复数坐标”若不合适,那可以改个名字。其要表达的意思是:“用复数表示的点的位置”。以前我曾认为“用复数表示点的位置”就是用“a+bi”表示点的坐标,因此与通常意义下的坐标区别不大。现在看法不同了,不同了……。
作者: 天山草    时间: 2013-11-7 08:34
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由denglongshan2013/11/05 10:59pm 发表的内容:
希望看到你的源代码。
噢,整理好以后就贴出来。
作者: 天山草    时间: 2013-11-7 08:53
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/11 09:06pm 第 4 次编辑]

下面列举“证明器”中的一些“机器零件”。

作者: 天山草    时间: 2013-11-9 19:02
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
不知道 mathematica 是如何调用“子程序”的?
作者: denglongshan    时间: 2013-11-9 22:32
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/11/03 11:24am 发表的内容:
波浪掌握了 mathematica,那将是如虎添翼,天马行空。本人目前只不过学习了这个软件的三分之一【估计值】,这个软件总体说来还是很好的,但也有一些毛病,需要不断改进。目前最新版本是 9,我用的是 7。版本 8  ...
波浪的实力是有目共睹的。
下面引用由天山草2013/11/06 07:07am 发表的内容:

我还有一个问题需要请教 denglongshan ,在 mathematica 中,对于复数运算,有二个函数,一个是 Re[Z], 另一个是 Im[Z],分别是对复数 Z 或是其一个复数表达式取其实部和虚部。
问:若 Z 是一个全是字母的复数表达式,运算以后能给出结果吗?
----------------
不能得出,试一下Im[a+b i]就知道,因为不能确定a和b是实数还是复数。
谢谢,看了才知道有复数展开的命令。
下面引用由天山草2013/11/09 07:02pm 发表的内容:
不知道 mathematica 是如何调用“子程序”的?
“子程序”就是函数吗?
下面引用由天山草2013/11/07 08:53am 发表的内容:

下面列举“证明器”中的一些“机器零件”。
【1】已知两点 A,B(“已知”就是知道它们的复数坐标),则其连线的中点坐标为:(A+B)/2。
【2】已知两点 A(x1,y1),B(x2,y2),以及线段 AB 某侧的一点 C(x0,x0),从 C 点作 AB 的垂线,则垂足 P 的复数坐标为:
(X0*X1
Zhongdian[a_, b_] := (a + b)/2; (中点公式)
c=Zhongdian[a,b],即可以求出AB线段的中点;
Dchd[p_, a_, b_] := (b
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\) a + (a - b)
\!\(\*OverscriptBox[\(p\), \(_\)]\))/(
\!\(\*OverscriptBox[\(a\), \(_\)]\) -
\!\(\*OverscriptBox[\(b\), \(_\)]\));(*P关于直线AB的对称点*)
呵呵,代数表达式写不出来。
下面引用由天山草2013/11/07 08:27am 发表的内容:


下面引用由denglongshan在 2013/11/05 10:59pm 发表的内容:
   复数坐标这个提法不妥, 坐标是一对实数;

   “坐标是一对实数”。这当然没有错,但是“复数坐标”与普通坐标还是有重大差别的。“复数坐标”一般并不表达成“a+bi”这种样式,不然的
形式不同,却是等价的,没有必要求出实数坐标。把我的nb文件重新初始化就可以
a = 0;
b = 1; c = a + b I; a - b I; d = u + v I;d'; = u - v I; e = s + t I; e'; = s - t I;[br][br]-=-=-=-=- 以下内容由 denglongshan 时添加 -=-=-=-=-
你说张院士不懂交比证明四点共圆,让人匪夷所思。

作者: 天山草    时间: 2013-11-10 07:59
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/10 10:22am 第 1 次编辑]
下面引用由denglongshan2013/11/09 10:32pm 发表的内容:
你说张院士不懂交比证明四点共圆,让人匪夷所思。
也有可能是老张其实是知道那个东西,但是那东西不好用,半天也算不出来,所以他又选择了另外一条路走。
   关于如何调用“子程序”的问题,我已解决了一小半,希望不久会将五圆证明的完整程序贴出来。
   另外,在 mathematica 中, “注释语句”如何写?就是说这种语句只起到解释程序的作用,却不参与运算。这个解释当然是一堆汉语,其前面写什么符号才能使其不参与程序 本身的运算?

作者: 天山草    时间: 2013-11-10 10:52
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/10 11:40am 第 1 次编辑]


作者: 天山草    时间: 2013-11-10 11:45
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/10 04:10pm 第 1 次编辑]

上面这个程序,计算 15 个点的坐标时用时很少,以若干秒钟计,但是判断五点共圆的最后一步,也就是计算两个“交比”是否都等于零时,不但很长时间算不出来,并且最终也没算成,还说是计算机内存不足。看来,或者这一步的程序写得不好,或者是“交比”这种方法不好。
作者: ataorj    时间: 2013-11-10 14:10
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
(*这就是注释语句*)
作者: ataorj    时间: 2013-11-10 14:17
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
Mathematica,我用4.0呢.要不是2.0没有"打开就100%cpu"这个缺点,我估计就2.0了,我没高的要求.
2.0是唯一直接支持本地语言的版本.

作者: 天山草    时间: 2013-11-10 16:08
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由ataorj2013/11/10 02:10pm 发表的内容:
(*这就是注释语句*)
谢谢 ataorj 的解答。
作者: denglongshan    时间: 2013-11-10 18:19
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由ataorj2013/11/10 02:10pm 发表的内容:
(*这就是注释语句*)
很遗憾,老朋友没有下载我44楼的源程序,源程序中就有注释语句,只要对照57楼的运算图修改一下错误就可以,用我的程序没有必要分离实部和虚部,用交比也应该可以。
作者: 天山草    时间: 2013-11-10 18:55
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/14 11:54am 第 6 次编辑]

下面这个程序没有问题,开机运行时间为 40 秒,不关机再次运行时间为 3 秒。

作者: 天山草    时间: 2013-11-10 19:12
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/10 07:43pm 第 3 次编辑]
下面引用由denglongshan2013/11/10 06:19pm 发表的内容:
很遗憾,老朋友没有下载我44楼的源程序,源程序中就有注释语句,只要对照57楼的运算图修改一下错误就可以,用我的程序没有必要分离实部和虚部,用交比也应该可以。

44 楼的程序倒是下载了,但是还没有看。分离出实部和虚部是为了加快运行速度,主要是为了加快 C2 点坐标求解速度(程序本身是先算出实部和虚部,然后再复合,所以并未专门分离,只是多用些变量而已)。另外,计算两直线的交点坐标时,并没有进行“实部虚部分离”,因为分离后对速度提高影响不大。
   不明白的地方是,为什么重新开机、首次运行程序时,用时为 40 秒,而不关机继续第二次、第三次运行时,时间却缩短为 3 秒?
   还有,为什么下面这个“交比”程序不行,反复试验,它就是玩不转。算了几十分钟,最后也给不出结果。


作者: denglongshan    时间: 2013-11-10 22:05
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
   这个我也解释不了,希望把源程序压缩包发上来,用共轭比作子程序也可以使用交比,不过我的输出语句要难看些。交比看来更简洁一些,但是对于一些计算结果的几何意义难发现。十秒内运算完成。
   希望合作攻克泰博定理。
上面程序错误,因为c成为一个常数,不再修改,请大家注意,如果大家需要请在44楼下载后修改其它错误。
作者: 天山草    时间: 2013-11-11 10:15
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/14 11:58am 第 1 次编辑]
下面引用由denglongshan2013/11/10 10:05pm 发表的内容:
希望把源程序压缩包发上来
打包成了 rar 压缩文件发上来了:

作者: 天山草    时间: 2013-11-11 10:23
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/11 10:50am 第 4 次编辑]
下面引用由denglongshan2013/11/10 10:05pm 发表的内容:
  希望合作攻克泰博定理。

  好。这个题的变量只有三个,难点在于要推算圆心位置的坐标。
假定以下坐标:
  B 点是(0,0), C 点是(1,0), D 点是(XD,0),A 点是(XA,YA)。
要算出 O1,O2,以及 I 点的坐标。之后就好办了。


作者: 天山草    时间: 2013-11-11 21:03
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/12 10:24am 第 4 次编辑]


作者: denglongshan    时间: 2013-11-11 22:50
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
谢谢老朋友传压缩文件,泰博定理先构造大圆再构造两个内切圆可能要容易一些,五圆定理中其中一个角似乎是四条直线之间有向角的和与差,其中两条很明显,另外两条还没有找到。
作者: 天山草    时间: 2013-11-12 14:07
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/14 08:53pm 第 5 次编辑]

   
    今天将 44 楼中唐灵(denglongshan)证明五点共圆的程序改了一下,首先是将共轭比的定义删除了。程序及运行结果如下。
   今天方才认识到唐灵的共轭比理论是一个创造。可惜好像没能对别人讲清楚这个东西的意义,致使许多行家没能认识到“和氏璧”的价值。
   唐的程序非常简练,在我的电脑上开机运行时间为 34 秒,再次运行时间约 1 秒。
   但是下面这个程序还是有些毛病的,见后面的帖子。


注释语句可以改变颜色和大小,这样,弄成图片后显示就清晰了。
作者: pAq    时间: 2013-11-12 15:22
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/09/04 04:31pm 发表的内容:
那还是很快的,很不错。只是精度好像差了一些。Mathematica 需要三分钟吧,可以得出准确数字。
希望看到“准确数字”。

作者: 天山草    时间: 2013-11-12 17:41
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/12 05:41pm 第 1 次编辑]
下面引用由pAq2013/11/12 03:22pm 发表的内容:
希望看到“准确数字”。
准确数字在第 8 楼呢,是一个分数: 50000005000000/100000010000001。

作者: denglongshan    时间: 2013-11-12 22:25
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
由于您的支持和理解,特别再上传一次国际会议学术论文,论文用Latex书写,相当工整。
内切圆半径用海伦公式求解很容易。
如果只有一个圆,用切线构造三个顶点很容易,不过这种方法包括旁切圆的情形,你可以在论文中看到。
建议先解决概率考的难题,它应该比泰博定理简单。
http://www.mathchina.com/cgi-bin/attachment.cgi?forum=5&topic=18417&postno=1&name=1_1378090728&type=.jpg
作者: 天山草    时间: 2013-11-13 10:34
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/13 00:39pm 第 2 次编辑]
下面引用由denglongshan2013/11/12 10:25pm 发表的内容:
再上传一次国际会议学术论文,论文用Latex书写,相当工整。
以前见过这篇论文,现在又大概看了一下,还没有来得及认真地看。与李涛和张景中的论文相比,我认为您的论文还需要全面改写,将内容进一步扩充。
张景中的文章,打出的是“复数法”的旗帜,从名称上就让人容易接受;文中列出了复数法“证明器”的几十个模块,指出这个“证明器”已全部证明了 TGTP 中的180个几何问题,以及程序运行的时间;最后举了一个典型的五点共圆例题,其中列出了15个点的坐标计算结果,让读者大致看清了这种方法的思想。论文这样写,很有说服力。
   唐的文章,是另外一种风格,文章的大量篇幅是介绍定理及其证明,似乎这些成了文章的重心,而读者最想知道的是,共轭比这种方法的本质和特点在哪里,它能不能最终构成一个“系统的、完整的、通用的、高效率的证明器”?而不仅仅是只对几个特定的问题有效。例如,张景中文中列举的那些模块,共轭比方法是否也都可以实现?甚至能列出更多的通用模块?用这个方法解决了多少个几何难题?
   张景中的文章,“保密性”做得不错,对于其方法的核心“机密”,基本没有透露。但在“广告宣传”方面,是十分用心。这样风格的论文才适合提交给国际会议的众多专家。
   唐灵的方法,也属于“复数法”的范畴,也许是登上“峰顶”的一条隐蔽的捷径。其程序中一般不需要分离复数坐标的实部和虚部。而本人的程序,只是跟复数“擦边”,其本质仍是笛卡尔的坐标概念。笛卡尔坐标法用于几何图形中,点的坐标表达式往往比较复杂,推导过程也很费力。唐的方法,显示出“用复数和共轭复数”可能作出形式上很简捷的表达式。但没有说明是否对于各种图形的点,都能解决?已经解决了哪些点的表达公式?(例如,已知三角形的各顶点坐标,其内心坐标及切点坐标都有简捷的公式吗?已知两个圆的大小和位置,其交点坐标有简捷的公式吗?)

作者: 天山草    时间: 2013-11-13 10:51
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
在 92 楼中,在将唐的程序改写中,我强调删去了前面那条“共轭比”的定义语句。因为后面的程序用不到这个定义。为什么在唐的所有程序中,一开头都要写上“共轭比”的定义这一条语句呢?
    在张景中的方法中,关于几何图形的点的复坐标,是否也有采用“复数”和“共轭复数”联合表达的公式呢? 如果有,他也只说是“复数法”,而不说是“共轭比法”。
   
作者: 天山草    时间: 2013-11-13 20:30
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/14 08:02am 第 3 次编辑]

检验一下“笛卡尔坐标法”与“共轭比”法导出的三角形外心复坐标公式,其结果是否相同:

作者: denglongshan    时间: 2013-11-13 22:47
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
下面引用由天山草2013/11/13 10:51am 发表的内容:
在 92 楼中,在将唐的程序改写中,我强调删去了前面那条“共轭比”的定义语句。因为后面的程序用不到这个定义。为什么在唐的所有程序中,一开头都要写上“共轭比”的定义这一条语句呢?
    在张景中的方法中, ...
我的证明中,证明四点共圆时,有关角度用到了“共轭比”,而你用交比就不必。
任何证明最重要的是基本定理,这些定理是证明的基础,至于能不能最终构成一个“系统的、完整的、通用的、高效率的证明器”?这主要看编程技术,这是我的弱项。
“张景中的文章,“保密性”做得不错,对于其方法的核心“机密”,基本没有透露。”它的基础就是文章中的那几条性质,核心“机密”就是利用这几条性质的程序模块,但是如果在证明中,例如角相等,有关的结果不列出来,可读性会打折扣。可能那几条性质对证明泰博定理等命题很有用。
“已知三角形的各顶点坐标,其内心坐标及切点坐标都有简捷的公式吗?已知两个圆的大小和位置,其交点坐标有简捷的公式吗?”
相对坐标表达可能简单一些,但还是比较复杂。对于内心问题,一般用切线构造顶点,这样很简单,上面已经提到。
下面引用由天山草2013/11/13 10:51am 发表的内容:
在 92 楼中,在将唐的程序改写中,我强调删去了前面那条“共轭比”的定义语句。因为后面的程序用不到这个定义。为什么在唐的所有程序中,一开头都要写上“共轭比”的定义这一条语句呢?
   在张景中的方法中,关于几何图形的点的复坐标,是否也有采用“复数”和“共轭复数”联合表达的公式呢? 如果有,他也只说是“复数法”,而不说是“共轭比法”。
   
看来他没有用到。
下面引用由天山草2013/11/13 10:34am 发表的内容:


下面引用由denglongshan在 2013/11/12 10:25pm 发表的内容:
再上传一次国际会议学术论文,论文用Latex书写,相当工整。


共轭比这种方法的本质和特点在哪里
它的作用类似于斜率,但是对于角度的处理比斜率简便得多,仔细阅读论文可以看到。Simson直线的共轭比表达非常简洁,用斜率要麻烦得多。
作者: 天山草    时间: 2013-11-14 08:13
标题: 【分享】交流一下 Mathematica 编程方法,期望学习该软件的网友积极参与
[这个贴子最后由天山草在 2013/11/14 08:13am 第 1 次编辑]
下面引用由denglongshan2013/11/13 10:47pm 发表的内容:
看来他没有用到。
“共轭比法”与张景中的“复数法”相比,估计是各有千秋。“复数法”应当吸收“共轭比法”中的优点,使自己更加强大起来,但是可能老张没有这样做,因为【人家的婆娘(好),自己的文章(好)】。




欢迎光临 数学中国 (http://www.mathchina.com/bbs/) Powered by Discuz! X3.4