MATLAB 四点定球及三点定圆(完整代码)
Posted slandarer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB 四点定球及三点定圆(完整代码)相关的知识,希望对你有一定的参考价值。
哈哈哈看到一个很有意思的想法,顺手写了一下:
怎样快速求圆形或球形的隐函数方程、中心、半径
先从四点定球开始:
四点定球
实际上是看到李扬老师的视频哈哈哈
求通过不共面四点 M 1 ( x 1 , y 1 , z 1 ) M_{1}\\left(x_{1}, y_{1},z_{1}\\right) M1(x1,y1,z1), M 2 ( x 2 , y 2 , z 2 ) M_{2}\\left(x_{2}, y_{2}, z_{2}\\right) M2(x2,y2,z2), M 3 ( x 3 , y 3 , z 3 ) M_{3}\\left(x_{3}, y_{3}, z_{3}\\right) M3(x3,y3,z3), M 4 ( x 4 , y 4 , z 4 ) M_{4}\\left(x_{4}, y_{4}, z_{4}\\right) M4(x4,y4,z4)的球面方程
我们设球面方程为:
a
(
x
2
+
y
2
+
z
2
)
+
b
x
+
c
y
+
d
z
+
e
=
0
a\\left(x^{2}+y^{2}+z^{2}\\right)+b x+c y+d z+e=0
a(x2+y2+z2)+bx+cy+dz+e=0
那么球面上的任意点及已知四点满足如下方程组:
{ a ( x 2 + y 2 + z 2 ) + b x + c y + d z + e = 0 a ( x 1 2 + y 1 2 + z 1 2 ) + b x 1 + c y 1 + d z 1 + e = 0 a ( x 2 2 + y 2 2 + z 2 2 ) + b x 2 + c y 2 + d z 2 + e = 0 a ( x 3 2 + y 3 2 + z 3 2 ) + b x 3 + c y 3 + d z 3 + e = 0 a ( x 4 2 + y 4 2 + z 4 2 ) + b x 4 + c y 4 + d z 4 + e = 0 \\left\\{\\begin{array}{l} a\\left(x^{2}+y^{2}+z^{2}\\right)+b x+c y+d z+e=0 \\\\ a\\left(x_{1}^{2}+y_{1}^{2}+z_{1}^{2}\\right)+b x_{1}+c y_{1}+d z_{1}+e=0 \\\\ a\\left(x_{2}^{2}+y_{2}^{2}+z_{2}^{2}\\right)+b x_{2}+c y_{2}+d z_{2}+e=0 \\\\ a\\left(x_{3}^{2}+y_{3}^{2}+z_{3}^{2}\\right)+b x_{3}+c y_{3}+d z_{3}+e=0 \\\\ a\\left(x_{4}^{2}+y_{4}^{2}+z_{4}^{2}\\right)+b x_{4}+c y_{4}+d z_{4}+e=0 \\end{array}\\right. ⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧a(x2+y2+z2)+bx+cy+dz+e=0a(x12+y12+z12)+bx1+cy1+dz1+e=0a(x22+y22+z22)+bx2+cy2+dz2+e=0a(x32+y32+z32)+bx3+cy3+dz3+e=0a(x42+y42+z42)+bx4+cy4+dz4+e=0
要使方程组有非零解则要求系数行列式为0,即: 以上是关于MATLAB 四点定球及三点定圆(完整代码)的主要内容,如果未能解决你的问题,请参考以下文章
D
(
x
,
y
,
z
)
=
∣
x
2
+
y
2
+
z
2
x
y
z
1
x
1
2
+
y
1
2
+
z
1
2
x
1
y
1
z
1
1
x
2
2
+
y
2
2
+
z
2
2
x
2
y
2
z
2
1
x
3
2
+
y
3
2
+
z
3
2