Czy ktoś pamięta ten artykuł o algorytmie euklidesowym?


20

W latach 70. miałem stos starych czasopism Amateur Radio (50s-60s) i przez długi czas zapisałem artykuł na temat używania algorytmu euklidesowego do łączenia szeregu rezystorów w celu osiągnięcia określonej wartości. Czy ktoś pamięta i ma kopię tego artykułu lub wie, jak zastosować algorytm euklidesowy do rozwiązania tego problemu?

Odpowiedzi:


38

Opiera się na teorii ciągłych ułamków , która jest ściśle związana z metodą Euclida polegającą na znalezieniu GCD między dwiema liczbami.

Oto przykład: Załóżmy, że masz kilka rezystorów precyzyjnych 10K i potrzebujesz wartości rezystancji 27K dla swojego projektu. Potrzebujesz pewnej kombinacji rezystorów 10K szeregowo i / lub równolegle, aby wytworzyć tę rezystancję.

Zacznij od napisania stosunku dwóch rezystancji:

27 K / 10 K = 2,7

Oznacza to, że potrzebujesz dwóch rezystorów połączonych szeregowo z pewną kombinacją, która daje 0,7 rezystora.

Korzystając z koncepcji ułamków ciągłych, możesz przepisać liczbę 2,7 na 2 + 1 / 1,42857. Ponadto możesz podzielić liczbę 1,42587 na 1 + 1 / 2,3333.

Teraz, jeśli spojrzysz ponownie na pierwszą frakcję, możesz ją zapisać jako

11,42857=111+12,3333

Zauważ, że tak się składa, że ​​jest to wyrażenie dla dwóch oporników równolegle; w tym przypadku jeden rezystor równolegle z rezystorami 2,3333.

Jak wymyślić rezystory 2.333? Możesz powtórzyć algorytm ponownie, ale po sprawdzeniu powinno być oczywiste, że potrzebujesz dwóch rezystorów połączonych szeregowo z równoległą kombinacją trzech kolejnych rezystorów. Ostateczna sieć wygląda tak i ma opór dokładnie 27K.

schematyczny

symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab

Oczywiście nie wszystkie przykłady dobrze to sprawdzą. Ogólnie rzecz biorąc, musisz zdecydować, kiedy przerwać iterację, na podstawie tego, kiedy dokładność sieci, którą masz do tej pory, jest „wystarczająco bliska”.

Uogólniona forma algorytmu wygląda następująco: Określ stosunek X = R pożądany / R dostępny . Napisz X jako ułamek ciągły, gdzie A, B, C, D, E itd. Są liczbami całkowitymi:

X=ZA+1b+1do+1re+1mi+1...

Zbuduj swoją sieć za pomocą

  • Rezystory szeregowo z ...
  • Rezystory B równolegle z ...
  • Rezystory C szeregowo z ...
  • Rezystory D równolegle z ...
  • Rezystory E szeregowo z ...

... i tak dalej, dopóki nie pojawi się podwyrażenie, które nie ma części ułamkowej, lub nie znajdzie się „wystarczająco blisko” do pożądanego wyniku.

Zauważ, że jeśli X jest mniejszy niż jeden na początku, wówczas A będzie wynosić zero, co oznacza po prostu, że zaczynasz od równoległej kombinacji rezystorów i kontynuujesz stamtąd. Zauważ też, że dopóki X jest liczbą wymierną, sekwencja ciągłych ułamków będzie skończona.


Ta konstrukcja (przy zastosowaniu rezystorów o tej samej wartości) jest znana jako przybliżenie drzewa Sterna-Brocota . Zastanawiam się, jak uogólnić to na więcej niż jedną wartość w koszu części ...
Fizz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.