一:matlab 在三维空间的三边定位算法模拟如何写?
按照楼主的算法给楼主编了一个函数,楼主将它存为一个m文件,在matlab的命令窗口即可运行。
这里主要用到一个解线性方程组的方法楼主可以主要一下。其实matlab的在矩阵方面是十分强大方便的。例如此处可以直观的用A\b来解决你的方程,即可理解为向量b左除一个矩阵A,这就是你要的解。(你这里因为A的逆矩阵在b的左面相乘,如果是右面当然还有右除即b/A)。
function [locx,locy,locz]=fourposition(xa,ya,za,da,xb,yb,zb,db,xc,yc,zc,dc,xd,yd,zd,dd)
A = [(xa-xd),(ya-yd),(za-zd);
(xb-xd),(yb-yd),(zb-zd);
(xc-xd),(yc-yd),(zc-zd)];
A = 2*A;
b = [xa*xa-xd*xd+ya*ya-yd*yd+za*za-zd*zd+dd*dd-da*da;
xb*xb-xd*xd+yb*yb-yd*yd+zb*zb-zd*zd+dd*dd-db*db;
xc*xc-xd*xd+yc*yc-yd*yd+zc*zc-zd*zd+dd*dd-dc*dc];
ans = A\b;
locx = ans(1);
locy = ans(2);
locz = ans(3);
end
二:数学高手,快请进吧,三点定位计算。拜托了!
X²+Y²=c²
X²+(A-Y)=a²
(B-X)²+Y²=b²
联立上述三个方程解得
X=(c²-b²+B²)/2B,未知量为c²-b²
Y=(c²-a²+A²)/2A,未知量为c²-a²
由题目易得 L1+L3=L2
所以L1,L2,L3中知道任意两个可以轻易推出第三个
代入得c²-b²= - L3(2c+L3)
c²-a²= - L2(2c+L2)
最后就剩唯一一个未知数c怎么都消不掉······
抱歉,总感觉少个条件做不了······
希望能给您帮助
三:java如何实现三点定位 20分
你可以看看三边定位法和极大似然定位法。这两个都是算法,具体代码还要自己写
四:哪位大神帮忙把这段matlab代码转成C语言的,是三边定位的,感激不尽!!!!!!! 50分
sorry~matlab学成马; 、帮顶了。
五:利用matlab分别对三边测量定位算法和改进算法进行仿真和验证 急求源程序
%% 清空环境变量
clc
clear
load data
%% 数据累加作为网络输入
[n,m]=size(X);
for i=1:n
y(i,1)=sum(X(1:i,1));
y(i,2)=sum(X(1:i,2));
y(i,3)=sum(X(1:i,3));
y(i,4)=sum(X(1:i,4));
y(i,5)=sum(X(1:i,5));
y(i,6)=sum(X(1:i,6));
end
%% 网络参数初始化
a=0.3+rand(1)/4;
b1=0.3+rand(1)/4;
b2=0.3+rand(1)/4;
b3=0.3+rand(1)/4;
b4=0.3+rand(1)/4;
b5=0.3+rand(1)/4;
%% 学习速率初始化
u1=0.0015;
u2=0.0015;
u3=0.0015;
u4=0.0015;
u5=0.0015;
%% 权值阀值初始化
t=1;
w11=a;
w21=-y(1,1);
w22=2*b1/a;
w23=2*b2/a;
w24=2*b3/a;
w25=2*b4/a;
w26=2*b5/a;
w31=1+exp(-a*t);
w32=1+exp(-a*t);
w33=1+exp(-a*t);
w34=1+exp(-a*t);
w35=1+exp(-a*t);
w36=1+exp(-a*t);
theta=(1+exp(-a*t))*(b1*y(1,2)/a+b2*y(1,3)/a+b3*y(1,4)/a+b4*y(1,5)/a+b5*y(1,6)/a-y(1,1));
kk=1;
%% 循环迭代
for j=1:10
%循环迭代
E(j)=0;
for i=1:30
%% 网络输出计算
t=i;
LB_b=1/(1+exp(-w11*t)); %LB层输出
LC_c1=LB_b*w21; %LC层输出
LC_c2=y(i,2)*LB_b*w22; %LC层输出
LC_c3=y(i,3)*LB_b*w23; %LC层输出
LC_c4=y(i,4)*LB_b*w24; %LC层输出
LC_c5=y(i,5)*LB_b*w25; %LC层输出
LC_c6=y(i,6)*LB_b*w26; %LC层输出
LD_d=w31*LC_c1+w32*LC_c2+w33*LC_c3+w34*LC_c4+w35*LC_c5+w36*LC_c6; %LD层输出
theta=(1+exp(-w11*t))*(w22*y(i,2)/2+w23*y(i,3)/2+w24*y(i,4)/2+w25*y(i,5)/2+w26*y(i,6)/2-y(1,1)); %阀值
ym=LD_d-theta; %网络输出值
yc(i)=ym;
%% 权值修正
error=ym-y(i,1); %计算误差
E(j)=E(j)+abs(error); %误差求和
error1=error*(1+exp(-w11*t)); %计算误差
error......余下全文>>
六:需要用CC2530完成WSN无线定位,但不知如何下手,能否具体指导下,不胜感激
最简单的算法就是质心定位算法,你可以上网看看,这种不需要RSSI值。
也有三边定位算法,这个就需要RSSI值的。
这两种定位算法是最常见的也是相当简单的定位算法,也有很多改进的定位算法,你可以查询一些相关的定位方面论文。
希望对你有帮助,欢迎继续追问!!