autocad lisp, Cad Algorytmy

background image

AutoLISP

AutoLISP

Algorytmy

Algorytmy

Komputerowe Wspomaganie

Komputerowe Wspomaganie

Projektowania

Projektowania

background image

AutoLISP

AutoLISP

Bisekcja

Bisekcja

 

x

f

y

x

1

x

2

Y

x

s

y

s

x

s

x

1

Funkcja ciągła i monotoniczna w przedziale x

1

-

x

2

, np.

 

 

tan

inv

x

s

= (x

1

+x

2

)/2

|Y-f(x

s

)|

<dokładność

background image

AutoLISP

AutoLISP

Bisekcja

Bisekcja

f(xs)<Y

f(xs)<Y

xs=(x1+x2)/2

|Y-f(xs)|<

|Y-f(xs)|<

x1=xs

x2=xs

xs=(x1+x2)/2

Stop

tak

nie

tak

(defun Bisekcja (Y / x1 x2 xs fx delta)
(setq x1 0 x2 (/ PI 2) delta 0.0001)
(setq xs (/ (+ x1 x2) 2))
(setq fx (Funkcja xs))
(while (> (abs (- Y fx)) delta)
(if (< fx Y)
(setq x1 xs)
(setq x2 xs)
)
(setq xs (/ (+ x1 x2) 2))
(setq fx (Funkcja xs))
)
(eval xs)
)

(defun Bisekcja (Y / x1 x2 xs fx delta)
(setq x1 0 x2 (/ PI 2) delta 0.0001)
(setq xs (/ (+ x1 x2) 2))
(setq fx (Funkcja xs))
(while (> (abs (- Y fx)) delta)
(if (< fx Y)
(setq x1 xs)
(setq x2 xs)
)
(setq xs (/ (+ x1 x2) 2))
(setq fx (Funkcja xs))
)
(eval xs)
)

(defun Funkcja (x) (sin
x))

(defun Funkcja (x) (sin
x))

Uwaga: Algorytm prawdziwy dla funkcji rosnącej!

Uwaga: Algorytm prawdziwy dla funkcji rosnącej!

background image

 

 

n

n

n

n

n

n

x

x

x

n

y

x

y

x

n

a

1

1

1

2

1

1

1

n

x

a

y

b

n

n

1

1

b

x

a

y

AutoLISP

AutoLISP

Aproksymacja liniowa metodą najmniejszych

Aproksymacja liniowa metodą najmniejszych

kwadratów

kwadratów

x

y

s

1

s

3

s

2

min(s

1

+s

2

+s

3

+...)

y=

a*

x+

b

background image

AutoLISP

AutoLISP

Aproksymacja liniowa metodą najmniejszych

Aproksymacja liniowa metodą najmniejszych

kwadratów

kwadratów

(defun Sumy (lista / Sx Sy Sxy Sx2 e x
y)
(setq Sx 0 Sy 0 Sxy 0 Sx2 0)
(foreach e lista
(setq x (car e) y (cadr e))
(setq Sx (+ Sx x))
(setq Sy (+ Sy y))
(setq Sxy (+ Sxy (* x y)))
(setq Sx2 (+ Sx2 (* x x)))
)
(list Sx Sy Sxy Sx2)
)

(defun Sumy (lista / Sx Sy Sxy Sx2 e x
y)
(setq Sx 0 Sy 0 Sxy 0 Sx2 0)
(foreach e lista
(setq x (car e) y (cadr e))
(setq Sx (+ Sx x))
(setq Sy (+ Sy y))
(setq Sxy (+ Sxy (* x y)))
(setq Sx2 (+ Sx2 (* x x)))
)
(list Sx Sy Sxy Sx2)
)

(defun Aprox (lista / Sx Sy Sxy Sx2 e n a b)
(setq e (Sumy lista))
(setq Sx (nth 0 e) Sy (nth 1 e) Sxy (nth 2 e)
Sx2 (nth 3 e))
(setq n (length lista))
(setq a (/ (- (* n Sxy)(* Sx Sy))(- (* n Sx2)(* Sx
Sx))))
(setq b (/ (- Sy (* a Sx)) n))
(list a b)
)

(defun Aprox (lista / Sx Sy Sxy Sx2 e n a b)
(setq e (Sumy lista))
(setq Sx (nth 0 e) Sy (nth 1 e) Sxy (nth 2 e)
Sx2 (nth 3 e))
(setq n (length lista))
(setq a (/ (- (* n Sxy)(* Sx Sy))(- (* n Sx2)(* Sx
Sx))))
(setq b (/ (- Sy (* a Sx)) n))
(list a b)
)

 

 

n

n

n

n

n

n

x

x

x

n

y

x

y

x

n

a

1

1

1

2

1

1

1

n

x

a

y

b

n

n

1

1

background image

AutoLISP

AutoLISP

Sortowanie metodą bąbelkową

Sortowanie metodą bąbelkową

1

1

1

1

4

4

4

4

3

3

3

3

5

5

5

5

2

2

2

2

1

1

1

1

1

1

1

1

4

4

4

4

3

3

3

3

5

5

5

5

2

2

2

2

1

1

1

1

1

1

1

1

3

3

3

3

4

4

4

4

5

5

5

5

2

2

2

2

1

1

1

1

idx=0

Idx<last

Idx<last

last=length-1 OK=Nil

not OK

not OK

OK=T

e1=nth(idx)

e2=nth(idx+1)

e2<e1

e2<e1

idx=idx+1

Zamien(idx)

OK=Nil

Stop

(1 4 3 5 2 1)

(1 4 3 5 2 1)

(1 4 3 5 2 1)

(1 4 3 5 2 1)

(1 1 2 3 4 5)

(1 1 2 3 4 5)

(1 1 2 3 4 5)

(1 1 2 3 4 5)

?

?

background image

(defun Zamien (lista idx / ii e1 e2 odp)
(setq e1 (nth idx lista) e2 (nth (+ idx 1)
lista))
(setq ii 0)
(repeat idx
(setq odp (append odp (list (nth ii
lista))))
(setq ii (+ ii 1))
)
(setq odp (append odp (list e2 e1)))
(setq ii (+ idx 2))
(while (< ii (lenght lista))
(setq odp (append odp (list (nth ii
lista))))
(setq ii (+ ii 1))
)
(eval ‘odp)
)

(defun Zamien (lista idx / ii e1 e2 odp)
(setq e1 (nth idx lista) e2 (nth (+ idx 1)
lista))
(setq ii 0)
(repeat idx
(setq odp (append odp (list (nth ii
lista))))
(setq ii (+ ii 1))
)
(setq odp (append odp (list e2 e1)))
(setq ii (+ idx 2))
(while (< ii (lenght lista))
(setq odp (append odp (list (nth ii
lista))))
(setq ii (+ ii 1))
)
(eval ‘odp)
)

1

1

1

1

4

4

4

4

3

3

3

3

5

5

5

5

2

2

2

2

1

1

1

1

AutoLISP

AutoLISP

Sortowanie metodą bąbelkową

Sortowanie metodą bąbelkową

odp: (1)

odp: (1)

odp: (1 3 4)

odp: (1 3 4)

e1: 4, e2: 3

e1: 4, e2: 3

odp: (1 3 4 5 2
1)

odp: (1 3 4 5 2
1)

background image

(defun Sortuj (lista / num e1 e2 idx OK)
(setq num (- (length lista) 1) OK NIL)
(while (not OK)
(setq OK T idx 0)
(while (< idx num)
(setq e1 (nth idx lista) e2 (nth (+ idx 1)
lista))
(if (< e2 e1)
(progn
(setq lista (Zamien lista idx))
(setq OK Nil)
)
)
(setq idx (+ idx 1))
)
)
(eval ‘lista)
)

(defun Sortuj (lista / num e1 e2 idx OK)
(setq num (- (length lista) 1) OK NIL)
(while (not OK)
(setq OK T idx 0)
(while (< idx num)
(setq e1 (nth idx lista) e2 (nth (+ idx 1)
lista))
(if (< e2 e1)
(progn
(setq lista (Zamien lista idx))
(setq OK Nil)
)
)
(setq idx (+ idx 1))
)
)
(eval ‘lista)
)

AutoLISP

AutoLISP

Sortowanie metodą bąbelkową

Sortowanie metodą bąbelkową

Lista: (1 4 3 5 2 1)

Lista: (1 4 3 5 2 1)

Lista: (1 4 3 5 2 1)

Lista: (1 4 3 5 2 1)

idx=0

Idx<last

Idx<last

last=length-1 OK=Nil

not OK

not OK

OK=T

e1=nth(idx)

e2=nth(idx+1)

e2<e1

e2<e1

idx=idx+1

Zamien(idx)

OK=Nil

Stop


Document Outline


Wyszukiwarka

Podobne podstrony:
autocad lisp, Cad AutoLISP
autocad lisp, Cad 2D
autocad lisp, Cad ProjektLSP
autocad lisp, Cad Programowanie
AutoCAd, CAD 3 wydruk
AutoCAd, CAD 7 wydruk
AutoCAd, CAD 5 wydruk
AutoCAd, CAD 4 wydruk
AutoCAd, CAD 6 wydruk
Polecenia do AutoCADa 2000, AUTO CAD
Cad LISP
AutoCAd, CAD 10 wydruk
AutoCAd, CAD 8 wydruk
AutoCAd, CAD 3 wydruk
Układy Napędowe oraz algorytmy sterowania w bioprotezach
5 Algorytmy
5 Algorytmy wyznaczania dyskretnej transformaty Fouriera (CPS)

więcej podobnych podstron