利用fsolve函数求解三点构建的坐标系的原点坐标

function fsolve_sandianzuobiaoxi()
format short
options = optimset('MaxFunEvals',300,'MaxIter',300)
x=fsolve(@myfun,[240;240;10],options) %调用函数
end

function f=myfun(x)
syms x0 y0 z0
A=[119.806374;149.341095;4.584520];
B=[372.825714;343.291016;32.235802];
C=[148.859406;373.197510;20.230499];
O=[x0;y0;z0];
f1=(norm([A(1,1)-O(1,1);A(2,1)-O(2,1);A(3,1)-O(3,1)]))^2+(norm([C(1,1)-O(1,1);C(2,1)-O(2,1);C(3,1)-O(3,1)]))^2-(norm([A(1,1)-C(1,1);A(2,1)-C(2,1);A(3,1)-C(3,1)]))^2;%勾股定理,原点与其中两点构成直角三角形
f2=(norm([B(1,1)-O(1,1);B(2,1)-O(2,1);B(3,1)-O(3,1)]))^2+(norm([C(1,1)-O(1,1);C(2,1)-O(2,1);C(3,1)-O(3,1)]))^2-(norm([B(1,1)-C(1,1);B(2,1)-C(2,1);B(3,1)-C(3,1)]))^2;%勾股定理,原点与其中两点构成直角三角形
f3=norm([A(1,1)-O(1,1);A(2,1)-O(2,1);A(3,1)-O(3,1)])+norm([B(1,1)-O(1,1);B(2,1)-O(2,1);B(3,1)-O(3,1)])-norm([A(1,1)-B(1,1);A(2,1)-B(2,1);A(3,1)-B(3,1)]);%三点一线时,中间一点与两端点距离和等于两端点之间距离
f=[f1;f2;f3];
x0=x(1);
y0=x(2);
z0=x(3);
f=eval(f);
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值