BG Development


Страници: (7) 1 2 [3] 4 5 ... последна »  ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Решение на линейна ситема уравнения
ТК_
Публикувано на: 10-02-2020, 01:42
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 48
Регистриран на: 04.08.18



QUOTE (3p0 @ 30-01-2020, 12:40)
Триъгълна матрица (Цялата е симетрична):
CODE
25 34.8040661128269 52.0004983207117
0 48.4529207194411 72.3931512581598
0 0 108.162073024094

Свободни членове:
CODE
0.00416431827113684
-0.0736402982449711
0.0556489835699523


Получих резултати:
CODE
k[1]=0.00228242603391201
k[2]=-0.00228853706218877
k[3]=0.000514496274101147



Тия ми излизат като твоите ...
PMEmail Poster
Top
ТК_
Публикувано на: 10-02-2020, 01:47
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 48
Регистриран на: 04.08.18



QUOTE (3p0 @ 09-02-2020, 23:52)
Междувременно се бях усъмнил във входните ми данни. Съмнението ми се окза вярно, тъй като за контрола изчислих с Excel-таблица входящите данни a[i], b[i] и c[i] и констатирах известни разлики с тези, които получаваше моята програмка. Трябва да ги пусна наново, защото горните са леко грешни.
CODE
a[1] := 1;
a[2] := 1;
a[3] := 1;
a[4] := 1;
a[5] := 1;
a[6] := 0;
a[7] := 0;
a[8] := 0;
a[9] := 0;

b[1] := 0.475427274050604;
b[2] := 2.18554064241926;
b[3] := 1.40769120656463;
b[4] := 0.241471090014444;
b[5] := 0;
b[6] := 0.0237824988953901;
b[7] := 0.930134653314634;
b[8] := 0.826393190718351;
b[9] := 0.870372666821564;

c[1] := 4.14928282861922;
c[2] := 4.1086005526025;
c[3] := 2.13837179999216;
c[4] := 0.426833030290613;
c[5] := 0;
c[6] := 0.999717156372887;
c[7] := -0.367218636105612;
c[8] := -0.563093504077558;
c[9] := -0.49239356296556;


Членовете на матрицата се получават от горните, като първи ред, първи стълб = сумата от произведенията на a[i]*a[i],
първи ред, втори стълб = сумата от произведенията на a[i]*b[i],
първи ред, трети стълб = сумата от произведенията на a[i]*c[i].
Втори ред първи стълб = сумата от произведенията на b[i]*a[i] = sum(a[i]*b[i]), 
Втори ред втори стълб = сумата от произведенията на b[i]*b[i]
и така нататък получавам симетрична матрица:
CODE

25.0000000000000 34.8040661139944 52.0004983236432
34.8040661139944 48.4529207226917 72.3931512646693
52.0004983236432 72.3931512646693 108.162073036289


Свободните членове са матрица вектор (стълб):
CODE
0.00416431827113684
-0.0736402982449711
0.0556489835699523


Получих неизвестните k[i]:
CODE
0.00228242603384104
-0.00228853706201769
0.000514496274043137

А тия не мога да получа като тебе ...
PMEmail Poster
Top
ТК_
Публикувано на: 10-02-2020, 01:50
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 48
Регистриран на: 04.08.18



Или нещо не разбирам последния ти пример ... как от
a[1] := 1;
a[2] := 1;
a[3] := 1;
a[4] := 1;
a[5] := 1;
a[6] := 0;
a[7] := 0;
a[8] := 0;
a[9] := 0;

се получава сума a[i]*a[i] равна на 25?
PMEmail Poster
Top
3p0
Публикувано на: 10-02-2020, 07:15
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 955
Регистриран на: 18.06.05



Боже!
Решавам система с грешни коефициенти и очаквам верни резултати icon_eek.gif
25 не може да е сумата от произведенията a[i]*a[j]
Съответно и останалите коефициенти не са верни.

Това мнение е било редактирано от 3p0 на 10-02-2020, 07:17


--------------------
MX-21.3 Linux; CPU=Intel® Quad Core i5-2500 1.6-3.7 gHz; MB=Intel model: DQ67SW; Video=AMD RV770 [Radeon HD 4850]; RAM=16giB DDR3-1600 mHz;
PM
Top
3p0
Публикувано на: 10-02-2020, 09:46
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 955
Регистриран на: 18.06.05



CODE
   DAA := 0;
   DAB := 0;
   DAC := 0;
   DBB := 0;
   DBC := 0;
   DCC := 0;
   for I := 1 to N do
   begin
     for J := 1 to N do
     begin
       DAA := DAA + A[I]*A[J];
       DAB := DAB + A[I]*B[J];
       DAC := DAC + A[I]*C[J];
       DBB := DBB + B[I]*B[J];
       DBC := DBC + B[I]*C[J];
       DCC := DCC + C[I]*C[J];
     end;
   end;

Където N = 9;
Явно горния начин на сумиране на произведенията е погрешен.

Това мнение е било редактирано от 3p0 на 10-02-2020, 09:47


--------------------
MX-21.3 Linux; CPU=Intel® Quad Core i5-2500 1.6-3.7 gHz; MB=Intel model: DQ67SW; Video=AMD RV770 [Radeon HD 4850]; RAM=16giB DDR3-1600 mHz;
PM
Top
Дон Реба
Публикувано на: 10-02-2020, 10:44
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10496
Регистриран на: 11.11.06



мисля че си се набутал дълбоко във ХУ проблем
я почни сега от начало, какво се опитваш да направиш. не ми обяснявай че се опитваш да решиш линейна система. НИКОЙ не му трябва да решава линейни системи, те са само средство за нещо което наистина ти трябва, та средство за какво са при тебе?
PM
Top
3p0
Публикувано на: 10-02-2020, 11:13
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 955
Регистриран на: 18.06.05



Искам да направя изравнение по метода на най-малките квадрати.
В реалния случай щях да имам измервания на 4 ъгъла и на 4 дължини, които биха били натоварени с малки случайни грешки.
Понеже нямам измервания, имитирах уж че съм измерил тези 4 ъгъла и 4 дължини:
Чрез Аутокад начертах един полигон, измерих му чрез аутокадските методи точно 4-те ъгъла и 4-те дължини (и съответните начални и крайни координати).
Съзнателно въведох малки грешки в ъглите и в дължините, за да имитирам действителни измервания.
Започнах да действам по формулите в учебника за да изравня по метода на най-малките квадрати (МНМК).
По формулите от учебника получих коефициентите a[i], b[i] и c[i].
В учебника пише, че от 9-те уравнения на поправките V[i] се получават 3-те уравнения на нормалната система.
Не изглежда математически издържано, но там са написани следния вид на нормалните уравнения:
CODE

[aa]k1 + [ab]k2 + [ac]k3 + f1 = 0
[ab]k1 + [bb]k2 + [bc]k3 + f2 = 0
[ac]k1 + [bc]k2 + [cc]k3 + f3 = 0

Където да речем: [ac] означава сумата от произведенията на коефициентите a[i] и c[j].
Чрез решаване на нормалната система бих получил k1, k2 и k3.

Като ги заместя в уравненията на поправките:
CODE

V[1] = a1*k1+ b1*k2 + c1*k3;
V[2] = a2*k1+ b2*k2 + c2*k3;
.........

Като поправя (съзнателно леко огрешените "измерваня") бих получил близки до истинските стойности на "измерванията".
Това е в общи линии.

Това мнение е било редактирано от 3p0 на 10-02-2020, 11:16


--------------------
MX-21.3 Linux; CPU=Intel® Quad Core i5-2500 1.6-3.7 gHz; MB=Intel model: DQ67SW; Video=AMD RV770 [Radeon HD 4850]; RAM=16giB DDR3-1600 mHz;
PM
Top
Дон Реба
Публикувано на: 10-02-2020, 11:22
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10496
Регистриран на: 11.11.06



QUOTE (3p0 @ 10-02-2020, 11:13)
Искам да направя изравнение по метода на най-малките квадрати.

мда, и мен точно на такова ми заприлича, уж търсиш решение на линейна система, а даваш входни данни с повече уравнения.
аз обаче не съм съвсем сигурен дали изобщо можеш да прилагаш тоя метод, щом има намесени ъгли. я кажи какви точно ъгли и дължини са това?
PM
Top
3p0
Публикувано на: 10-02-2020, 11:40
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 955
Регистриран на: 18.06.05



CODE
Дължини
метри
аутокад:
108.943662834742
134.837389194615
131.833442373322
31.1862132680452


CODE
Дължини
метри
нарочно
сгрешени:
108.90 м
134.85 м
131.85 м
31.22 м


CODE
Леви
полигонови
ъгли от
аутокад
77.573876917446 гради
185.862757871166 гради
205.298105170785 гради
95.4116375146253 гради


CODE
Леви
полигонови
ъгли нарочно
огрешени
77.5762 гради
185.8602 гради
205.3022 гради
95.4132 гради


CODE

Начален
посочен ъгъл
30,61201633 гради


Забележка:
За да се превърнат ъглите в радиани се разделят на 200 и се умножават по числото PI.
( Или декларирам константа: 63.66197724 и разделям ъглите на нея преди да поискам изчисление на SIN(), COS(), TAN().
По този начин тригонометричните функции дават верни резултати.

Това мнение е било редактирано от 3p0 на 10-02-2020, 11:56


--------------------
MX-21.3 Linux; CPU=Intel® Quad Core i5-2500 1.6-3.7 gHz; MB=Intel model: DQ67SW; Video=AMD RV770 [Radeon HD 4850]; RAM=16giB DDR3-1600 mHz;
PM
Top
Дон Реба
Публикувано на: 10-02-2020, 12:08
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 10496
Регистриран на: 11.11.06



остави числата, кажи какво изобщо са тия дължини и ъгли.
и каква релация търсиш между тях. най-малките квадрати се ползва когато има някаква предполагаема релация, имаш конкретни числа, и искаш да сметнеш на релацията параметрита. каква изобщо е предполагаемата релация при тебе?
PM
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (7) 1 2 [3] 4 5 ... последна » Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0