matlab已知两点的坐标和第三点到两点的距离求第三点坐标怎么编程求解? 50

第一点(x1,y1),第二点(x2,y2),第三点到第一点的距离s1,第三点到第二点的距离s2,结果就生成在表后... 第一点(x1,y1),第二点(x2,y2),第三点到第一点的距离s1,第三点到第二点的距离s2,结果就生成在表后 展开
 我来答
lhmhz
高粉答主

2019-11-08 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部

已知两点的坐标和第三点到两点的距离求第三点坐标用matlab怎么求解?求解思路:
1、用xlsread函数,读入xls数据数据文件的数据,并赋值给A变量
2、利用平面解析几何的两点距离公式
s1=sqrt((x3-x1)^2+(y3-y1)^2)
s2=sqrt((x3-x2)^2+(y3-y2)^2)
3、用solve函数求解,x3,y3值
4、用xlswrite函数,将x3,y3值写入xls数据文件中

5、编程后运行结果

戈阳兰0q
2019-11-08 · TA获得超过116个赞
知道小有建树答主
回答量:112
采纳率:66%
帮助的人:58万
展开全部
你这每组数据相当于就是两个圆之间的关系,两个圆相交就有两个x,y。相切就一个x,y,不想交就没有解
syms x1 y1 x2 y2 x y s1 s2;
eq1 = (x-x1)^2+(y-y1)^2-s1*s1;
eq2 = (x-x2)^2+(y-y2)^2-s2*s2;
sol = solve(eq1,eq2,x,y);
x=simplify(sol.x);
y=simplify(sol.y);

x1=0,y1=16.2361,s1=7.7;
x2=8,y2=0,s2=11.8;
x=eval(x)
y=eval(y)

%输出:
% x =
% -0.1456
% 6.1933
% y =
% 8.5375
% 11.6609
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hata6114
2019-11-08 · 超过23用户采纳过TA的回答
知道答主
回答量:44
采纳率:50%
帮助的人:20.2万
展开全部

clear;

clc;


%% 设置导入选项

opts = spreadsheetImportOptions("NumVariables", 2);


% 指定工作表和范围

opts.Sheet = "Sheet1";

opts.DataRange = "A2:B8";     % 选择取值范围


% 指定列名称和类型

opts.VariableNames = ["s1", "s2"];

opts.VariableTypes = ["double", "double"];


% 导入数据

tbl = readtable("C:\Users\pc\Desktop\data.xlsx", opts, "UseExcel", false);  %选择文件(数据)路径


%% 转换为输出类型

s1 = tbl.s1;

s2 = tbl.s2;


%% 清除临时变量

clear opts tbl

syms x1 x2 y1 y2;

X = [];

Y = [];


x1 = 0;

y1 = 16.2361;  %(x1,y1)不变


x2 = 8;

y2 = 0;    %(x2,y2)不变


[m,n] = size(s1);


for i = 1:m

    syms x y;

    sx = s1(i);

    sy = s2(i);

    [x,y] = vpasolve((x-x1)^2+(y-y1)^2-(sx)^2,(x-x2)^2+(y-y2)^2-(sy)^2);    %二元二次方程组

    X = [X;x(1)];

    X = [X;x(2)];


    Y = [Y;y(1)];

    Y = [Y;y(2)];

    % 检查求得的坐标是否符合

    S1 = (x(1)-x1)^2+(y(1)-y1)^2-(sx)^2

    T1 = (x(1)-x2)^2+(y(1)-y2)^2-(sy)^2

    if (S1 == 0.0 && T1 == 0.0)

        disp('i=')

        disp(i)     %i 表示Excel中第i个要求的点

        disp('次i对应点符合,(x,y)')    % 第i个点的坐标

        disp(x(1))

        disp(y(1))

    else

        disp('不符合')

    end

    S2 = (x(2)-x1)^2+(y(2)-y1)^2-(sx)^2

    T2 = (x(2)-x2)^2+(y(2)-y2)^2-(sy)^2

    if (S2 == 0.0 && T2 == 0.0)

        disp('i=')

        disp(i)

        disp('此i对应点符合,(x,y)')

        disp(x(2))

        disp(y(2))

    else

        disp('不符合')

    end

end

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中兵勘察海外部

2019-11-08 · TA获得超过7772个赞
知道大有可为答主
回答量:3.8万
采纳率:74%
帮助的人:1759万
展开全部
这叫距离交会,简单的说,就是俩圆的交会,圆的圆心已知,半径知道,相交的点是那点坐标,用解吸几何计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式