##通过MATLAB证明三点共线及其圆心和半径的求解

一.   问题引入

            

二.    问题分析 

1.通过三角形面积公式三阶行列式判断,即行列式的值不为零时则三点不共线证明三点必有共圆

 基于MATLAB的代码:求解行列式值不为零则可证明三点必有共圆 

 

 

2.通过代入坐标即x和y的值构造关于D E F的方程即构造矩阵来求矩阵的秩从而判断是否共圆

 

 

 

通过上述求秩即原方程组和导出组的矩阵秩相等则方程有唯一解证明三点有唯一共圆

三.      通过MATLAB作出圆图形并且求解圆心和半径

 

 

作出的圆形如图:

 

 

求解圆心和半径的结果:

 

四.       作出圆形和求解圆心半径的MATLAB代码 
pnt=[x1 y1;x2 y2;x3 y3];
scatter(pnt(:,1),pnt(:,2),'filled') %作出圆形图
hold on
[~,Mu,R]=getCircle(pnt(:,1),pnt(:,2));
t=linspace(0,2*pi,50);
plot(cos(t).*R+Mu(1),sin(t).*R+Mu(2))
function [Func,Mu,R]=getCircle(X,Y)
syms x y
symMat=[x.^2+y.^2,x,y,1];
varMat=[X(1).^2+Y(1).^2,X(1),Y(1),1;
X(2).^2+Y(2).^2,X(2),Y(2),1;
X(3).^2+Y(3).^2,X(3),Y(3),1];
Func=matlabFunction(det([symMat;varMat])); %计算圆的隐函数
%计算各个参数 
a=det([1 0 0 0;varMat]);
b=det([0 1 0 0;varMat]);
c=det([0 0 1 0;varMat]);
d=det([0 0 0 1;varMat]);
Mu=-[b,c]./a./2; %计算圆心
R=sqrt(sum(Mu.^2)-d./a); %计算半径
end

####完结 

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁满满满满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值