Vinnaren i pepparkakshustävlingen!
  • 3
  • 4
2018-12-09, 23:49
  #37
Medlem
Citat:
Ursprungligen postat av Tom.Of.Finland
Men måste man använda SVD? Jag menar, rapporten gör inte ens det. Rapporten gjorde som jag gjorde ovan.

Absolut inte, du kan göra vad du vill, och eftersom du inte vill analysera problemet ser jag ingen anledning att peka åt något håll heller.
Citera
2018-12-09, 23:56
  #38
Medlem
Tom.Of.Finlands avatar
Citat:
Ursprungligen postat av mulpac
Absolut inte, du kan göra vad du vill, och eftersom du inte vill analysera problemet ser jag ingen anledning att peka åt något håll heller.

Jag är bara intresserad utav att hitta dem där matriserna Analys är inte min grej, än fast jag gärna skulle vilja kunna det, precis som allt annat. Men det ska ju finnas ork, motivation och tid också.

Jag ska koka ihop ett analys exempel och jämföra. Blir klar om 15 min.
__________________
Senast redigerad av Tom.Of.Finland 2018-12-10 kl. 00:00.
Citera
2018-12-10, 00:16
  #39
Medlem
Tom.Of.Finlands avatar
Citat:
Ursprungligen postat av mulpac
Absolut inte, du kan göra vad du vill, och eftersom du inte vill analysera problemet ser jag ingen anledning att peka åt något håll heller.

Okej! Nu är jag klar med mitt exempel!

Vi antar att vi har ODE:n

Citat:
dy + 2y = u

Om vi simulerar denna med u som en PWM signal på längd 1000 och vi mäter y.
För att räkna ut dy så tar vi bara dy = y(2:end) - y(1:end-1); och vi lägger på dy(1000) = dy(end) bara för att det ska vara lika längd u.

Där efter så säger vi att Y = [dy'] och X = [u' - 2*y'] och sedan räknar vi ut E.

Kod:
E =

   0.019625
   0.019624

>>

Ok bra! Sedan jämför vi differansen:

Kod:
>> sum(abs((Y - X*E)(:)))
ans =    3.8969e-05
>>

Ett lågt tal - mycket lågt.

Och så här går det om man stoppar in X,Y, samt sätter n = 1 och lambda till ett lågt tal.

Kod:
## Solves the Sequentially thresholded least squares
## Tom.Of.Finland - The Über homo 

function E = STLS_REGRESSION(X,Y,lambda,N)
tic
E = pinv(X)*Y;                                    % Moore Penrose inverse - Initial guess
for k=1:100                                       % State-dependent lambda is sparsifying knob
    for i = 1:N                                   % N = state dimension
        I_small = (abs(E(:,i)) < lambda(i));      % Find small coefficients
        Xi(I_small,i) = 0;                        % Threshold 
        I_big = ~I_small;                         % 0 to 1
        E(I_big,i) = pinv(X(:,I_big))*Y(:,i);     % Find sparse E
    end
end
toc

>> STLS_REGRESSION(X, Y, 0.001, 1)
Elapsed time is 0.037437 seconds.
ans =

   0.019625
   0.019624

>>

0.035 sekunder för två stora matriser på längd 1000. Mycket bra!
__________________
Senast redigerad av Tom.Of.Finland 2018-12-10 kl. 01:15.
Citera
  • 3
  • 4

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback