Wykład 3 -rownania i uklady rownan 1

14. Rozwiązywanie równań algebraicznych f(x)=0

(liniowych i nieliniowych)

Do rozwiązanie równania z jedną niewiadomą w Mathcadzie można wykorzystać gotowe procedury numeryczne a) root(...)

b) polyroots(...)

c) blok Given - Find

14.1. Funkcja root(...)

root(f(x),x) - poszukuje pierwiastka równania f(x)=0 z zadaną wartością początkową

Postępowanie:

1. definicja funkcji (lewej strony równania) 2. przypisanie zmiennej x wartości oznaczającej zerowe przybliżenie pierwiastka (wartość startowa dla metody) 3. wywołanie funkcji root

root(f(x),x,a,b) - poszukuje pierwiastka równania f(x)=0 w zadanym przedziale wartości od a do b; wartości funkcji w punktach a,b muszą mieć różne znaki

Postępowanie:

1. definicja funkcji (lewej strony równania) 2. określenie przedziału <a,b>

3. wywołanie funkcji root

Przykład 1

Znaleźć pierwiastek równania ex /2=sin(3/2x)

• znajdujący się w przedziale <-4,0>

• pierwiastek najbliższy zeru.

x

e

 3 

x := 1

− 0, 9

− .8. 10

f(x) :=

− sin x

2

 2 

1

f(x)

10

9

8

7

6

5

4

3

2

1

0

1

2

3

4

5

6

7

8

9

10

1

x

root(f(x) , x , 4

− , 0) = 2

− .134

x := 0

root(f(x) , x) = 2

− .134

Aby wyznaczyć pierwsze przybliżenie pierwiastka, można wykorzystać opcję Trace lub Zoom z menu podręcznego

Wykład 3 -rownania i uklady rownan 2

14.2. Funkcja polyroots(...)

polyroots(b) - poszukiwanie wszystkich pierwiastków wielomianu o współczynnikach b

Postępowanie:

1. zdefiniowanie wielomianu

2. utworzenie wektora współczynników

3. wywołanie funkcji polyroots

Przykład 2

Pozwiązać równanie wielomianowe x6-5x+3=0

 3





3

w(x) := x − 5⋅x + 3

5

 − 

a := w(p) coeffs , p →  0 





 1 

 2

− .491 





 x1 

polyroots(a) =

0.657









x2

:= polyroots(a)







1.834 

 x3 

x1 = 2

− .491

w(x1) = 0

Symboliczna definicja wektora:

x1 oznacza pierwszy element wektora, x2 = 0.657

w(x2) = 0

x2 drugi, x3 trzeci.

x3 = 1.834

w(x3) = 0

x := 3

− , 2

− .8. 2

w(x)

3

2.38

1.75

1.13

0.5

0.13

0.75

1.38

2

x

Wykład 3 -rownania i uklady rownan 3

15. Blok Given - Find

Blok Given - Find można stosować do rozwiązywania układów równań i nierówności zarówno liniowych jak i nieliniowych. Podobnie jak inne procedury numeryczne blok wymaga podania wartości startowych poszukiwanych zmiennych.

Postępowanie:

1. określić wartości startowe poszukiwanych zmiennych z1, z2, ...

2. wpisać słowo Given, rozpoczynające blok równań i nierówności 3. wpisać równania (nierówności) liniowe lub nieliniowe 4. użyć funkcji Find

Find(z1,z2,.....,zn) - zwraca wektor wartości zmiennych, które są rozwiązaniem układu

Przykład 4

Znaleźć pierwiastki układu równań:

cos x + x - y=0

x2 + y2 - 4=0

f

:=

+

1(x)

cos(x)

x

x := 3

− , 2

− .9. 3

2

f

:=

−

2(x)

4

x

2

f1(x)

f2(x)

3

2

1

0

1

2

3

− f2(x)

2

x

x := 1

y := 1

Given

cos(x) + x − y = 0

Zmienia wartości startowe x=-1, y=-1

lub dodać warunki x<0 y<0 do bloku 2

2

Given

x + y = 4

r := Find(x , y)

 1.245 

r = 



 1.565 

Wykład 3 -rownania i uklady rownan 4

16. Rozwiązywanie układów równań liniowych W celu rozwiązania układu równań liniowych A*x=b można zastosować jedną z poniższych metod:

a) x=A-1*b

b) zastosować blok Given - Find

c) zastosować funkcję lsolve

16.1. Rozwiązanie układu z macierzą odwrotną

 1

2

− 3.5

 1 









A :=

0

2

1.1





b :=

2





A = 2

− 1.1

 1.5 3

2

− 

 2

− 

 1

− .142 

− 1





x := A

⋅b

x =

0.505





 0.9 

16.2. Rozwiązanie układu z wykorzystaniem bloku Given - Find

 0 

 

x :=

0

 

 0 

Given

A⋅x = b

 1

− .142 





x := Find(x)

x =

0.505





 0.9 

16.3. Rozwiązanie układu z wykorzystaniem finkcji lsolve

 1

− .142 





x := lsolve(A, b)

x =

0.505





 0.9 

Wykład 3 -rownania i uklady rownan 5

17. Optymalizacja. Wyznaczanie ekstremów z(x , y) := 30⋅x + 20⋅y

x := 0

y := 0

Given

2⋅x + y ≤ 1000

3⋅x + 3⋅y ≤ 2400

1.5⋅x ≤ 600

x ≥ 0

y ≥ 0

 200 

Maximize(z , x , y) = 



 600 