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