Mam zestaw punktów (x,y)
i potrzebuję znaleźć linię najlepszego dopasowania, która przechodzi przez pochodzenie za pomocą MATLAB.Dopasowywanie linii, która przechodzi przez początek (0,0) do danych
Odpowiedz
W krótkim: Twoja funkcja musi być w formie y=ax+0
, co sprawia polyfit
bezużyteczne. Ale można skorzystać z metody najmniejszych kwadratów:
a = x(:)\y(:);
Objaśnienie:
Masz n
równań i jedna zmienna a
, co jest potrzebne, aby znaleźć:
a*x1 = y1;
a*x2 = y2;
...
a*xn = yn;
Operator \
znajduje rozwiązanie najmniejszych kwadratów.
Alternatywnie, można znaleźć rozwiązanie ręcznie:
a = (x'*x) \ (x'*y);
lub w pseudokodzie:
(x1*y1 + x2*y2 + ... xn*yn)
a = ----------------------------
(x1*x1 + x2*x2 + ... xn*xn)
Jest to użyteczne, jeśli nie Matlab - na przykład w kodzie C.
Przykład i fragment kodu:
function FindLSSolution()
a = 2.5;
x = rand(100,1)*10;
y = a*x + randn(100,1);
figure;scatter(x,y);
A = x(:)\y(:);
hold on;plot(x, A*x,'g');
end
'a = pinv (x) * y' Czy to też się stanie? –
@dr_rk, Tak, ale nie jest to zalecane, ponieważ jest wolniejsze i mniej stabilne numerycznie –
jeśli masz "dopasowanie krzywej Toolbox" można użyć
f = fit(x, y, 'a*x');
- 1. kreślenie linii regresji przez początek
- 2. EditText automatycznie przechodzi do nowej linii
- 3. Dopasowywanie dystrybucji do danych - MATLAB
- 4. Dopasowywanie rozkładu Poissona do danych w statsmodels
- 5. Vim przesuwanie kursora na początek następnej linii
- 6. Perl: drukuj z powrotem na początek linii
- 7. Dopasowywanie linii siatki na rysunku 3D Matplotlib
- 8. Jaki jest najskuteczniejszy algorytm znajdowania prostej, która przechodzi przez większość punktów?
- 9. Jak dopasować początek linii w leeksie?
- 10. Dopasowanie wyrażenia JavaScript * nie * początek linii
- 11. Dopasowywanie linii do naszej głowy w widoku obrazu
- 12. Używanie avconv do przesyłania dźwięku na żywo z linii (alsa hw: 0,0) przez bezprzewodowy punkt dostępowy do klienta.
- 13. Dopasowywanie przestrzenne dużych zestawów danych
- 14. Dlaczego QGraphicsItem :: scenePos() powracają (0,0)
- 15. przechodzi przez tablice znaków od C++ do fortranu
- 16. Okno pygtk z ramką, która ignoruje wszystkie zdarzenia X (myszy) (przechodzi przez nie)
- 17. Delphi: Nieprawidłowy XML przechodzi przez walidację MSXML
- 18. Potrzebuję cyklu, który przechodzi przez przedział czasu
- 19. Jak sprawdzić WiFi przechodzi przez stronę logowania?
- 20. Efektywny sposób obliczania kwadrantów kwadratu, linia przechodzi przez
- 21. Dlaczego Java nie zgłasza wyjątku przy dzieleniu przez 0,0?
- 22. Matematyka - początek i koniec notebooka z linii poleceń
- 23. Dopasowywanie wielomianu do maksimum funkcji
- 24. Dlaczego dzielenie liczby zmiennoprzecinkowej przez liczbę całkowitą zwraca wartość 0,0?
- 25. W jaki sposób sprzęt i kompilator radzą sobie z instrukcją x86, która przechodzi w stronę, która nie jest wykonywalna?
- 26. Dopasowywanie dostarczonej przez szablon klasy podstawowej
- 27. Dopasowywanie jquery .text() do
- 28. Scikit i pandy: dopasowywanie dużych danych
- 29. Filtrowanie/dopasowywanie wzorca w zagnieżdżonej strukturze danych
- 30. Dopasowywanie danych w JsonPath z wiremockiem
Jak można zdefiniować kryterium dla "Najlepsze dopasowanie"? Najmniejszy błąd kwadratowy? –
Tak, to prawda - dziękuję za wskazanie tego jako ważne. –