分享

从解方程谈起

 非著名问天 2024-05-01 发布于内蒙古

1.Introduction

数(shù)起源于数(shǔ),量(liàng)起源于量(liáng)。古人每次狩猎归来,需要统计猎物的多寡,分配食物时需要把猎物和氏族成员的多少加以比较;尼罗河每年洪水泛滥,洪水退去之后,需要重新丈量土地;建筑房屋、堤坝和巨大的金字塔,需要计算各种图形的面积和体积,所以数学产生于对数量的认识和对几何图形的认识,而最早认识到的数是1, 2, 3这些正整数。大约在1500年前,《孙子算经》中就记载了鸡兔同笼的问题。这一问题的本质是二元一次方程。在解一元二次方程时,根据韦达定理有求根公式,如果判别式b^2 - 4ac < 0时,就会遇到负数开方的问题,最简单的例子是解方程x^2 + 1 = 0,就会遇到-1开平方的问题,从而引入复数,复数的引入也是为了解方程的方便。还有一类方程如常微分方程、偏微分方程,这些方程的求解归结于数学分析的范畴。

对于一元多次方程,会有这样的问题,如方程根的个数,方程有没有求根公式等。数学王子高斯在179921岁时写的博士论文中回答了方程根的个数问题,就是高斯代数基本定理:每个n次方程具有n个根。到1826年阿贝尔证明:高于四次的方程一般不可能有代数解。定理的证明涉及到代数几何,代数曲线、拓扑理论等。一元方程的求解尚且如此困难,那么多元方程的求解就更复杂了。

图片

在几何内核中很多问题可以归结为解方程,如代数曲面与参数曲面求交、计算轮廓线等。本文对相关原理进行介绍,抛砖引玉,结合实际应用激发同学们对于数学学习的兴趣。

2.曲面求交

曲面求交是几何内核中最核心、最重要的问题之一。求交算法的质量直接影响内核的稳定性和实用程度。曲面求交是布尔算法的基础,布尔算法会串起几何内核所有的底层算法。曲面可以用代数方程和参数方程两种形式来表达,因此可以将曲面求交问题归纳为三类:代数/代数曲面求交,代数/参数曲面求交,参数/参数曲面求交。在OpenCASCADE中,一般的二次曲面可以得到代数方程的系数,可以用代数方程表示f(x, y, z) = 0。参数曲面一般用两个参数表示S(u, v)。将参数方程代入代数方程可以得到一个以u, v为变量的二元方程。二元方程是个平面代数曲线,直接计算代数解困难,而用数值算法来求解时,又会遇到奇点和多分支问题。对于代数/参数曲面求交的二元方程求解使用了数值算法Walking来求解,在OpenCASCADE中的类是IntWalk_IWalking,也即Marching Method

图片

3.轮廓线计算

在隐藏线消除算法中,需要计算模型的可见轮廓边Contour。对于每个面而言,轮廓边的定义为面上可见部分与不可见部分的分界线。计算方式是通过投影方向与面上点的法向点乘来判断:

图片

g(u) > 0时为可见面front facing,当g(u)<0时为不可见面。当g(u)=0时,即为轮廓线。对应到OpenCASCADE中为Contap包中的Contap_SurfFunction

图片

这个方程是从math_FunctionSetWithDerivatives派生,根据注释可知此方程即为上图所示的g(u)=0,其实代码如下所示:

图片

从上述代码可知,曲面轮廓线方程是二元方程。在计算函数值Value()函数中,输入曲面上的参数u, v,计算出参数u,v处的法向后与投影方向点乘。对轮廓线方程进行求解即得到曲面的轮廓线。因为是二元方程,也使用了代数曲面与参数曲面求交的算法IntWalk_IWalking

4.Conclusion

方程求解是数学中的重要内容,从解方程可以引申出数学的三大内容:分析(微积分、微分方程、偏微分方程)、代数(代数、拓扑)、几何(解析几何、微分几何、黎曼几何等)。因为多元方程的代数解很困难,所以一般都是使用数值解。对于几何内核中曲面求交和轮廓线等问题最后都归结为方程的求解。根据高斯、阿贝尔等先贤的定理知道方程的代数解是困难的,好在数值解要简单很多。理解曲面求交部分的代码,几何内核中其他部分的代码也容易理解了。通过几何内核的应用实现来激发学习数学的兴趣,不仅仅做一个功能接口调用者,要厘清几何算法的来龙去脉,掌握根技术,学以致用。

5.参考文献

1 李大潜. 从复数到四元数. 高等教育出版社. 2022

2 华罗庚. 数学小丛书. 科学出版社. 2018

3 莫里斯·克莱因. 古今数学思想. 上海科学技术出版社. 2014

4 张禾瑞, 郝炳新. 高等代数. 高等教育出版社. 2007

5 钟玉泉. 复变函数论. 高等教育出版社. 2019

6 朱心雄. 自由曲线曲面造型技术. 科学出版社. 2000

7 P. 格列非斯. 代数曲线. 北京大学出版社. 1985

8 冯康. 数值计算方法. 国防工业出版社. 1978

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多