att finna mottagarens position
En illustration av problemet att finna mottagarens position. I mitten av vart och en av de
tre sfärerna sitter en sändare. Vi vet att mottagaren befinner sig på ett avstånden r1 från
sändare ett, r2 från sändare två och r3 från sändare tre. De tre sfärerna har radie r1, r2
respektive r3. Det innebär att sändaren befinner sig någonstans där de tre sfärerna skär
varandra.
Formulera det ekvationssystem som behöver lösas för att hitta mottagarens
position. Antag att den k:te sändaren har mittpunkt i (xk, yk, zk) och befinner sig
på avståndet rk från mottagaren, k = 1, 2, 3. Kalla mottagarens koordinater för
p = (p1, p2, p3).
hej, jag behöver hjälp med denna frågen, kan noen ge mig någon ledning: det som jag förstår är att vi ska formulera ett ekvationssystem med tre obekanta men jag vet inte hur jag ska tenka här.
Vad är formeln för en sfär?
X^2+Y^2+Z^2
Vad är detta lika med?
Like med 0
Menar du ? Enda lösningen på detta är punkten (0,0,0).
så detta betyder att ekvationen som ger mottgerens position är x^2+y^2+z^2=0, men ska det inte vara något värdet om avstandet r
Och vad med mottagerens kordinater, måste de vara på ekvationen eller inte
Mvh
suad
Nej, x2+y2+z2 = r2.
tack så mycket, men behöver vi
men hur ska vi formulera mottagerens kordinater då
jag undrar också på, behöver vi ha tre ekvation systemer där varje system gäller för ett p värde.
Vad är formeln för en sfär som inte har mittpunkten i origo?
(x-x0)^2+(y-y0)^2+(z-z0)^2=r^2
Betyder detta att vi ska ha ekvationen
(x-p1)^2+(y-p2)^2+(z-p3)^2=r^2
eller inte.
mvh
suad
suad skrev:Betyder detta att vi ska ha ekvationen
(x-p1)^2+(y-p2)^2+(z-p3)^2=r^2
eller inte.
mvhsuad
Ja, ställ upp detta för var och en av sändarna.
Alltså vi ska ha
(x-p1)^2+(y-p2)^2+(z-p3)^2=r^2
(x-p1)^2+(y-p2)^2+(z-p3)^2=2r^2
(x-p1)^2+(y-p2)^2+(z-p3)^2=3r^2
suad skrev:Alltså vi ska ha
(x-p1)^2+(y-p2)^2+(z-p3)^2=r^2
(x-p1)^2+(y-p2)^2+(z-p3)^2=2r^2(x-p1)^2+(y-p2)^2+(z-p3)^2=3r^2
Du har tre sfärer, med var sin medelpunkt och var sin radie. Använd det som står i uppgiften.
(x1-p1)^2+(y1-p2)^2+(z1-p3)^2=r1^2
(x2-p1)^2+(y2-p2)^2+(z2-p3)^2=r2^2
(x3-p1)^2+(y3-p2)^2+(z3-p3)^2=r3^2
Bra, då är det klart. Eller fanns det siffervärden också?
bra tack så mycket, det var ingen siffervärden
mvh
suad
att finna mottagarens position, del 2
En illustration av problemet att finna mottagarens position. I mitten av vart och en av de
tre sfärerna sitter en sändare. Vi vet att mottagaren befinner sig på ett avstånden r1 från
sändare ett, r2 från sändare två och r3 från sändare tre. De tre sfärerna har radie r1, r2
respektive r3. Det innebär att sändaren befinner sig någonstans där de tre sfärerna skär
varandra.
Formulera det ekvationssystem som behöver lösas för att hitta mottagarens
position. Antag att den k:te sändaren har mittpunkt i (xk, yk, zk) och befinner sig
på avståndet rk från mottagaren, k = 1, 2, 3. Kalla mottagarens koordinater för
p = (p1, p2, p3).
Hej, no är neste steg i uppgiften att skriva om ekvationssystemet i på formen f(p) = 0 och skriv en while-sats
som utför Netwons metod för problemet.
vi tillsammans med hjälp av er på pluggakuten, har hittat ekvationen för problemet som är
1)(x1-p1)^2+(y1-p2)^2+(z1-p3)^2=r1^2
2)(x2-p1)^2+(y2-p2)^2+(z2-p3)^2=r2^2
3)(x3-p1)^2+(y3-p2)^2+(z3-p3)^2=r3^2,
och vi ska derivera denna, och får derivatorna: dvs Jacobimatrisen Df(pk):
2(p1−x1)+2(p2−y1)+2(p3−z1)
2(p1−x2)+2(p2−y2)+2(p3−z2)
2(p1−x3)+2(p2−y3)+2(p3−z3
och därmed undrar jag på vad är felet på min kod eftersom matlab ger att det är fel i koden, kan det vara att jag har deriverat fel, eller är det något fel med while satsen
mitt kod är
f = @(p) [(x(1)-p(1))^2+(y(1)-p(2))^2+(z(1)-p(3))^2-r(1)^2; (x(2)-p(1))^2+(y(2)-p(2))^2+(z(2)-p(3))^2-r(2)^2; (x(3)-p(1))^2+(y(3)-p(2))^2+(z(3)-p(3))^2-r(3)^2];
Df = @(p) [2*(p(1)-x(1))+2*(p(2)-y(1))+2*(p(3)-z(1));2*(p(1)-x(2))+2*(p(2)-y(2))+2*(p(3)-z(2)); 2*(p(1)-x(3))+2*(p(2)-y(3))+2*(p(3)-z(3))];
p= [1; 1; 1]; %%5 gissar start värde på p
kmax = 10; tol=0.5e-8;
while k <=kmax
h = -Df(p) \ f(p);
p = p + h;
disp([p h])
if h < tol, break
end
end
mvh
suad
Vad säger matlab att det är för fel?
hej, och tack för din svar
jag har no fått rätt kod
x = [ 1.23, 0.12, -0.22]'; % x koordinaterna for sandarna
y = [ 0.01, 0.98, 0.02]'; % y koordinaterna for sandarna
z = [-0.11, -0.12, 1.76]'; % z koordinaterna for sandarna
r = [ 1.22, 0.98, 1.52]'; % avstanden mellan sandare och mottagare
p1 = zeros(3, 1); %% definierar tre punkter som p0:
p2 = ones(3, 1);
p3 = [3.407007110432360e-01
3.907070706849901e-01
4.758069306448354e-01];
f = @(p) [(x(1)-p(1))^2+(y(1)-p(2))^2+(z(1)-p(3))^2-r(1)^2;... %%definierar vårt vektorvärda funktionen f
(x(2)-p(1))^2+(y(2)-p(2))^2+(z(2)-p(3))^2-r(2)^2;...
(x(3)-p(1))^2+(y(3)-p(2))^2+(z(3)-p(3))^2-r(3)^2];
Df = @(p) [2*(p(1)-x(1)), 2*(p(2)-y(1)), 2*(p(3)-z(1));... %%definierar matrisvärde funktione Df
2*(p(1)-x(2)), 2*(p(2)-y(2)), 2*(p(3)-z(2));...
2*(p(1)-x(3)), 2*(p(2)-y(3)), 2*(p(3)-z(3))];
k=1;%% startvärde för k
kmax = 10;
tol=10^(-5); %% definierar tolerensen som betyder avstandet mellan pk och pk+1 som vi aksepterar.
p = p1;%% definierar vilken startpunkt jag använder
while k < kmax %% sätter en while loop
h = -Df(p)\f(p); %% definierar h som är lik (p-pk)
p = p + h;
disp([p h]); %% för att skriva ut värden på p och h
k = k+1; %% uppdaterar räkneindexet k i varje iteration av while-loopen
if norm(h) < tol
break %% använder break för att avsluta loopen om längden av h < toleransen
end
end
och fick svaret
0.0362 0.0362
0.0398 0.0398
0.2416 0.2416
0.0707 0.0345
0.0795 0.0397
0.2681 0.0265
0.0728 0.0022
0.0821 0.0025
0.2698 0.0017
0.0729 0.0000
0.0821 0.0000
0.2698 0.0000
0.0729 0.0000
0.0821 0.0000
0.2698 0.0000
1) men no undrar jag på hur ska vi räkna antallet iterationer om vi börjar i p1, p2, respektive p3. dvs vad är det vi ska titta på när vi tanker på antallet iterationer.
2) och jag undrar på vad är initialgissningarna.
mvh
suad
Gör som det står: prova alla tre startgissningarna, osv.
För p1 ser antalet iterationer ut att vara fem.
0.7063 -0.2937
0.8119 -0.1881
0.7570 -0.2430
0.6216 -0.0847
0.7144 -0.0975
0.6919 -0.0651
0.6088 -0.0128
0.6997 -0.0147
0.6821 -0.0098
0.6085 -0.0003
0.6993 -0.0003
0.6818 -0.0002
0.6085 -0.0000
0.6993 -0.0000
0.6818 -0.0000
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 3.573824e-17.
1.0e+15 *
-1.0450 -1.0450
-1.2041 -1.2041
-0.8039 -0.8039
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.212573e-16.
1.0e+14 *
-5.2891 5.1611
-6.0534 5.9879
-3.8871 4.1516
1.0e+14 *
-2.3848 2.9042
-2.9837 3.0697
-2.3638 1.5232
1.0e+14 *
-1.3329 1.0519
-1.4621 1.5216
-1.0777 1.2861
1.0e+13 *
-6.5648 6.7644
-7.5849 7.0362
-5.1399 5.6373
1.0e+13 *
-3.3334 3.2315
-3.7791 3.8057
-2.5245 2.6153
1.0e+13 *
-1.6550 1.6784
-1.9034 1.8757
-1.2569 1.2676
1.0e+12 *
-8.2611 8.2886
-9.4766 9.5579
-6.3643 6.2049
1.0e+12 *
-4.1243 4.1368
-4.7504 4.7262
-3.1722 3.1921
hej, betyder detta att vi ska ha 5 iterationer i p1, och p2, och 9 i p3
Det betyder nog att den inte nådde en lösning med 10 iterationer i p3, eftersom högra kolumnen är långt ifrån 0.
Ok tack så mycket, så svaret blir att den inte nådde en lösning med 10 iterationer i P3.
men vad betyder initialgissningarna
mvh
suad
Vad menar du med betyder?
Hej, är initialgissningarna samma som startpunkt gissningar, dvs
p1,p2,p3 gissningarna som vi har.
Och i så fall betyder det att p3 stycker ut eftersom
Visa spoiler
Skriv ditt dolda innehåll här
eftersom högra kolumnen är långt ifrån 0.
och tack för din hjälp
Jaha, var det själva ordet som var problemet. "Initial" betyder inledande/start/början. Så initialgissning är samma som startgissning.
Ja, den sticker ut genom att den inte konvergerar, men de frågar varför det är så.
kan det bero på definitions området eller inte
Jag vet inte svaret, men nu undrar jag också varför inte p1 och p2 konvergerar till samma punkt.
Hm, jag kom på något. Min undring är en ledtråd till svaret.
Kom du längre med detta?
Hej, jag kom till att
P1 och p2 konvergerar till olika punkter, och gör det ganska snabbt. Det finns två lösningar till ekvationssystemet, och p1 ligger närmast den ena, och p2 ligger närmare den andra.
P3 är specifikt vald så att Jacobian-matrisen är singulär i just den punkten. Det leder till att man i princip ”delar med noll” i Newtons metod, så algoritmen vet inte vart den skall gå härnäst.
Så detta betyder att p3 sticker ut på grund av siguläriteten hos matrisen