mathcad2000 obl iteracyjne macierze wektory

background image

sin a

( )

0

0.588

0.951

0.951

0.588

0

0.588

0 951

=

a

0

0.628

1.257

1.885

2.513

3.142

3.77

4 398

=

Teraz wyniki są nie tablicami a wektorami!!!

I tak przy okazji doszliśmy do naturalnej
definicji wektora poprzez iterowaną definicje
kolejnych jego elementów.

Dostęp do kolejnych elementów wektora
uzyskujemy stosując operator indeksu "[".

a

i

2

π

i

n

:=

definicja wektora poprzez zmienną iterowaną
a, [, i, :, 2, Ctrl+Shift+P, i, /, n

i

0 n

..

:=

Tu dla oszczędności miejsca rozrzedzono podział na n=10
odcinków.

n

10

:=

Inny sposób (wektorowy)

0

2

4

6

8

1

1

Wyniki prezentowane po lewej są tablicami, a nie - jak

dotychczas - skalarem. Aby wyświetlić kolejne elementy
tablicy należy ją uaktywnić (poprzez kliknięcie) i
przewinąć do szukanego elementu. Można również
zwiększyć liczbę wyświetlanych elementów tablicy
rozciągając jej dolną krawędź!!!

Poniżej przedstawiamy wykres stablicowanej funkcji

a, =

sin, (, a, ), =

sin a

( )

0

0.309

0.588

0.809

0.951

1

0.951

0.809

0.588

0.309

0

-0.309

-0.588

-0.809

-0.951

-1

=

a

0

0.314

0.628

0.942

1.257

1.571

1.885

2.199

2.513

2.827

3.142

3.456

3.77

4.084

4.398

4.712

=

a, :, 0, przecinek, Ctrl+Shift+P, /, 10, ;średnik,

Ctrl+Shift+P

a

0

π

10

,

2

π

..

:=

Opis

Wzór

Zmienne zakresowe 1. Tablicowanie funkcji

MATHCAD 2000 - Obliczenia iteracyjne, macierze i wektory

background image

Różne sposoby definiowania wektorów i macierzy

1

.

wystarczy określić kilka wyrazów wektora lub macierzy (pozostałe elementy przyjmą domyślne

wartości zerowe). Wymiary wektora-macierzy określają maksymalne indeksy użyte do tej pory

ORIGIN

1

:=

UWAGA: początkowy indeks wektorów i macierzy

to 0 a nie 1. To domyślne zachowanie Mathcada
możemy zmienić definiująć zmienną ORIGIN

Wektory i macierze

1. Stablicuj funkcję cos(x) w przedziale od 0 do 2

π

z podziałem na 20 odcinków.

2. Stablicuj dowolną funkcję f(x) w przedziale od x1 do x2 z krokiem

x, tak aby końce

zakresu jak i krok można było dynamicznie zmieniać.

3. Oblicz sumę szeregu

1

n

i

1

i

2

=

dla n = 10, 100, 1000 i 10000. Wyniki przedstaw z

dokładnością 10 cyfr po przecinku. Zwróć uwagę na wolną zbieżność szeregu!!!

Ćwiczenie 1

:

s

1.999023

=

a

1

0.5

0.25

0.125

0.0625

0.03125

0.01563

0.00781

0.00391

0.00195

0.00098

=

s

i

a

i

:=

a

i

1

2

i

:=

Uwaga: do obliczenia powyższej sumy nie warto
definiować wektora a, tylko od razu wpisać wzór

0

n

i

1

2

i

=

1.999023

=

co zaoszczędza zużycie pamięci i zwiększa szybkość
obliczeń. (przedstawiony po lewej sposób obliczeń jest
nieefektywny - pokazano go jedynie dla celów
dydaktycznych).

i

0 n

..

:=

n

10

:=

Zmienne zakresowe 2. Sumowanie szeregów

0.951

0.951

0.588

0

4.398

5.027

5.655

6.283

background image

H

1

0

0

0

1

0

0

0

1









=

H

identity 3

( )

:=

I

1

0

0

0

3

0

0

0

7









=

I

diag z

( )

:=

4.

Poprzez generowanie

A, :, Ctrl+M, podać wymiary i wpisać kolejne elementy

A

1

0

2

3

0

4

:=

3.

Ctrl+M lub przycisk Insert Matrix na pasku narzędziowym Matrix.lub w menu Insert

dla macierzy dane czytane są wierszami!!!

B

1

3

5

2

4

6









=

B

i j

,

1
2
3
4
5
6

:=

j

1 2

..

:=

z

1

3

7









=

z

i

1
3
7

:=

lub

w

2

4

6









=

w

i

2 i

:=

i

1 3

..

:=

2.

można zastosować zmienne zakresowe i definicję wektora (macierzy) za pomocą wzoru

iteracyjnego (jak przedstawiono przy omawianiu zmiennych zakresowych) lub podając
bezpośrednio kolejne elementy wektora oddzielone przecinkami.

A

1

0

0

3

0

5

=

analogicznie

A

2 2

,

3

:=

A

2 3

,

5

:=

A, [, 0, przecinek, 0, :, 1

A

1 1

,

1

:=

Dla macierzy drugi indeks oddzielamy przecinkiem

V

1.23

0

3.5









=

V, [, :, 1.23

V

3

3.5

:=

V

1

1.23

:=

background image

szukanie elementów o największej lub najmniejszej
wartości

min B

( )

1

=

max B

( )

6

=

iloczyn wektorowy (Ctrl+8)

w z

×

10

8

2









=

wyciągnięcie n-tej kolumny (Ctrl+6)

A

2

〈 〉

2

3

=

Ile kolumn i wierszy

rows A

( )

2

=

cols A

( )

3

=

Inne rzadziej używane funkcje

wartości własne macierzy

eigenvals D

( )

43.866

0.866

0









=

wyznacznik macierzy (tylko dla mac. kwadratowych)

D

0

=

D

1

3

5

8

18

28

8

16

24









=

D

B A

:=

iloczyn macierzowy

A B

7

29

10

36

=

suma i różnica macierzy

C A

0

2

1

1

5

2

=

A C

+

2

2

5

7

5

10

=

BŁĄD!

niezgodne wymiary macierzy

A B

+

=

A B

+

transpozycja macierzy (Ctrl+1)

C

1

2

3

4

5

6

=

C

B

T

:=

B

1

3

5

2

4

6









=

A

1

0

2

3

0

4

=

Operacje algebraiczne na wektorach i macierzach

background image

A

12

=

sprawdzenie czy macierz nieosobliwa det A <> 0

1. Rozwiązanie poprzez macierz odwrotną (dla małych układów)

B

4

5

6









=

B

i

i j

+

:=

A

1

2

3

1

4

9

1

8

27









=

A

i j

,

i

j

:=

definicja macierzy A i wektora B

UWAGA: zniszczenie poprzednich definicji macierzy

B

0

:=

A

0

:=

j

1 3

..

:=

i

1 3

..

:=

ORIGIN

1

:=

Rozwiązywanie układów równań liniowych AX=B

1. Zdefiniuj na różne sposoby następujące macierze:

A

1

0

0

0

1

0

2

0

0

2

0

0

3

0

3

0

0

0

4

4

1

2

3

4

5

:=

B

2

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

0

0

0

0

0

1

:=

2. Oblicz A B

+

, A

2

B

, A B

, B A

3. Oblicz macierz C

A B

(

)

2

:=

, znajdź max i min, oblicz wyznacznik i mac.

transponowaną z C
4. Zdefiniuj funkcje row(A,i) i col(A,j) do wyciągania pojedynczego wiersza i kolumny, a

następnie oblicz za ich pomocą wektory v1 = row(C,2) i v2 = col(C,3)

5. Wyciągnij środkowy blok 3x3 z macierzy C (znajdź opis i użyj funkcji submatrix(...)).
6. Doklej wektor v1 do macierzy A jako jej ostatni wiersz. Podobnie doklej wektor v2 do

macierzy B jako jej pierwsza (lewa) kolumna. Użyj funkcji stack() i augment()

7. Wykonaj zadania z punktów 5 i 6 iteracyjnie - bez korzystania z funkcji blokowych

Ćwiczenie 2

Operacje na blokach

Służą do tego specjalne funkcje blokowe:

submatrix() - wyciągnięcie bloku z macierzy

augment() - sklejenie dwóch macierzy w poziomie

stack() - sklejenie macierzy w pionie

Opis poszukaj samodzielnie w "Helpie" lub "Recource Center"

background image

1. Rozwiąż układ równań AX=B:

A

1

4

7

2

5

8

3

6

p









:=

p

B

1

7

13









:=

dla p = 1, 5 i 9

2. Czy istnieje rozwiązanie dla p = 9 i jeśli tak to jak je otrzymać ???

Ćwiczenie 3

M

π

6





1
2

1
2

3

1

36

π

2

2

1
6

π









M 1

( )

0.841

0.54

1

1

=

M x

( )

sin x

( )

cos x

( )

x

2

2

x

:=

Wektory i macierze funkcyjne przykład

X

13

2

3

1
2

X

6.5

3

0.5









=

X

lsolve A B

,

(

)

:=

2. Rozwiązanie przez zastosowanie funkcji lsolve() (zalecane dla dużych układów)

X

13

2

3

1
2

A1

3

5

2

1
2

3

2

2

1

2

1
3

1

2

1
6

X

6.5

3

0.5









=

X

A1 B

:=

UWAGA: wyniki można również obliczyć symboliczn

rozwiązanie

A1

3

2.5

0.5

1.5

2

0.5

0.333

0.5

0.167









=

A1

A

1

:=

obliczenie macierzy odwrotnej

background image

3. Wygeneruj losowo (funkcja rnd()) układ równań dla n = 10, 100 i 1000 niewiadomych i

porównaj dokładność rozwiązania.


Wyszukiwarka

Podobne podstrony:
lab10 macierze wektory
mathcad wprowadzenie funkcje macierze
lab10 macierze wektory
Mathcad, obl strop damian6str
lab10 macierze wektory
1 Wybrane własności macierzy i wektorów
macierze wektory
3 Mathcad Obl symboliczne
Mathcad obl strop damian6str
lab10 macierze wektory
Mathcad obl strop damian
lab10 macierze wektory
mathcad cwiczenia wektory macierze

więcej podobnych podstron