+ x

Transkrypt

+ x
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 1
Równania nieliniowe, nieliniowe układy
równań, optymalizacja
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 2
Plan zajęć
●
Rozwiązywanie równań nieliniowych
-metoda bisekcji
●
Rozwiązywanie układów równań nieliniowych
-funkcja fsolve()
●
Optymalizacja
-programowanie liniowe i kwadratowe
-programowanie liniowe przykład wyboru asortymentu produkcji
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 3
Ćwiczenie 1
Zdefiniuj funkcję SciLaba: bisekcja(a,b,f,eps), gdzie:
• a,b: końce przedziału [a,b] w którym poszukujemy
pierwiastka
• f: dowolna funkcja jednej zmiennej.
• eps: kryterium zbieżności
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 4
Ćwiczenie 1
Zdefiniuj funkcję SciLaba: bisekcja(a,b,f,eps), gdzie:
• a,b: końce przedziału [a,b] w którym poszukujemy
pierwiastka
• f: dowolna funkcja jednej zmiennej.
• eps: kryterium zbieżności
f ( bi − 1 )
f ( xi )
ai − 1 = ai
f ( ai − 1 )
bi
xi =
1
2
bi − 1
( ai − 1 + bi − 1 )
bi = xi
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
[ ai , bi ] =
 [ ai − 1 , xi ]

 [ xi , bi − 1 ]
gdy
gdy
f ( ai − 1 ) f ( xi ) < 0
f ( ai − 1 ) f ( xi ) > 0
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 5
Ćwiczenie 1 - cd
Zdefiniuj funkcję SciLaba: bisekcja(a,b,f,eps), gdzie:
• a,b: końce przedziału [a,b] w którym poszukujemy
pierwiastka
• f: dowolna funkcja jednej zmiennej.
• eps: kryterium zbieżności
function x = bisekcja(a,b,f,eps)
x = (a + b)/2
while abs(f(x)) >= eps
if f(a)*f(x) < 0
b = x
else
a = x
end
x = (a + b)/2
end
endfunction
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 6
Ćwiczenie 1 - cd
Zdefiniuj funkcję f(x)=x3-2x2-2x+1. Znajdź przy pomocy funkcji
bisekcja() rozwiązanie równania f(x)=0. Obliczenia poprzedź
wykonaniem wykresu funkcji, oraz doborem przedziału [a,b].
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 7
Ćwiczenie 1 - cd
Zdefiniuj funkcję f(x)=x3-2x2-2x+1. Znajdź przy pomocy funkcji
bisekcja() rozwiązanie równania f(x)=0. Obliczenia poprzedź
wykonaniem wykresu funkcji, oraz doborem przedziału [a,b].
function y=f(x)
y=x^3-2*x^2-2*x+1
endfunction
x=-1.5:0.1:3
plot2d(x,f(x))
eps=0.001
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 8
Ćwiczenie 1 - cd
Zdefiniuj funkcję f(x)=x3-2x2-2x+1. Znajdź przy pomocy funkcji
bisekcja() rozwiązanie równania f(x)=0. Obliczenia poprzedź
wykonaniem wykresu funkcji, oraz doborem przedziału [a,b].
function y=f(x)
y=x^3-2*x^2-2*x+1
endfunction
x=-1.5:0.1:3
plot2d(x,f(x))
eps=0.001
x1=bisekcja(-1.5,-0.5,f,eps)
// x1 = -1
x2= bisekcja(-0.5,1.5,f,eps)
// x2 = 0.3818
x3= bisekcja(1.5, 3, f,eps)
// x3 = 2.618
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 9
Ćwiczenie 2
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając
różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25
Przedstaw interpretację graficzną zadania
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 10
Ćwiczenie 2
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając
różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25
Przedstaw interpretację graficzną zadania
function [f] = f2(x)
f(1) = x(1)^2 + x(2)^2 - 50;
f(2) = x(1)*x(2) -25;
endfunction
z1=fsolve([0;0],f2);
// (5,5)
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 11
Ćwiczenie 2
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając
różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25
Przedstaw interpretację graficzną zadania
function [f] = f2(x)
f(1) = x(1)^2 + x(2)^2 - 50;
f(2) = x(1)*x(2) -25;
endfunction
z1=fsolve([0;0],f2);
// (5,5)
z2=fsolve([-10;-10],f2);
// (-5,-5)
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 12
Ćwiczenie 3
Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1,
przy następujących ograniczeniach:
funkcja linpro(p,C,b,xL,xU,me):
minimum dla:
f(X)= pT*X
x1 + 3*x2
x1 + x2 - x3
2x1 - x2
x1 + x2 + x3
0 ≤ x1≤
=
=
5
2
≤
3
≤ 25
5, 0 ≤ x2 ≤ 10,
0 ≤ x3 ≤ 3
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 13
Ćwiczenie 3
Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1,
przy następujących ograniczeniach:
funkcja linpro(p,C,b,xL,xU,me):
minimum dla:
f(X)= pT*X
x1 + 3*x2
x1 + x2 - x3
2x1 - x2
x1 + x2 + x3
p = [3;5;-2];
C = [1,3,0; 1,1,-1; 2,-1,0; 1,1,1 ];
b = [5;2;3;25];
0 ≤ x1≤
=
=
5
2
≤
3
≤ 25
5, 0 ≤ x2 ≤ 10,
0 ≤ x3 ≤ 3
xL = [0;0;0]; xU = [5;10;3];
[xopt,lagr,fopt] = linpro(p,C,b,xL,xU,2)
fopt = fopt +1
// xopt = [0.5, 1.5, 0], fopt = 10
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 14
Ćwiczenie 3a
Znajdź minimum funkcji f(x1,x2,x3) = x12+x1x2+3x1+5x2-2x3+1,
przy następujących ograniczeniach:
x1 + 3*x2
funkcja quapro(Q,p,C,b,xL,xU,me):
x1 + x2 - x3
minimum dla:
f(X)= 0.5*XT*Q*X + pT*X
2x1 - x2
x1 + x2 + x3
0 ≤ x1≤
=
=
5
2
≤
3
≤ 25
5, 0 ≤ x2 ≤ 10,
0 ≤ x3 ≤ 3
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 15
Ćwiczenie 3a
Znajdź minimum funkcji f(x1,x2,x3) = x12+x1x2+3x1+5x2-2x3+1,
przy następujących ograniczeniach:
x1 + 3*x2
funkcja quapro(Q,p,C,b,xL,xU,me):
x1 + x2 - x3
minimum dla:
f(X)= 0.5*XT*Q*X + pT*X
2x1 - x2
x1 + x2 + x3
Q
p
C
b
=
=
=
=
[2,1,0; 1,0,0; 0,0,0]
[3;5;-2];
[1,3,0; 1,1,-1; 2,-1,0; 1,1,1 ];
[5;2;3;25];
0 ≤ x1≤
=
=
5
2
≤
3
≤ 25
5, 0 ≤ x2 ≤ 10,
0 ≤ x3 ≤ 3
xL = [0;0;0]; xU = [5;10;3];
[xopt,lagr,fopt] = quapro(Q,p,C,b,xL,xU,2)
fopt = fopt +1
// xopt = [0.5, 1.5, 0], fopt = 10.25
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 16
Ćwiczenie 4
Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)):
f(x,y)=sin(xy)+cos(x)
na obszarze ograniczonym poprzez nierówności:
0 ≤ x1≤ 10, 0 ≤ x2 ≤ 10
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 17
Ćwiczenie 4
Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)):
f(x,y)=sin(xy)+cos(x)
na obszarze ograniczonym poprzez nierówności:
0 ≤ x ≤ 10, 0 ≤ y ≤ 10
function [f,g,ind]=fst(x,ind)
// f – minimalizowana funkcja
// g – gradient funkcji f
endfunction
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 18
Ćwiczenie 4
Znajdź najmniejszą wartość funkcji (punkt startowy: (1,1)):
f(x,y)=sin(xy)+cos(x)
na obszarze ograniczonym poprzez nierówności:
0 ≤ x ≤ 10, 0 ≤ y ≤ 10
function [f,g,ind]=fst(x,ind)
f = sin(x(1)*x(2))+cos(x(1))
g = [0;0]
g(1)= x(2)*cos(x(1)*x(2))-sin(x(1))
g(2)= x(1)*cos(x(1)*x(2))
endfunction
[wart,xp]=optim(fst,'b',[0;0],[10;10],[1;1])
// xp=(π,0), wart= -1
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 19
Ćwiczenie 5
Metody optymalizacji – przykład – cd.
Zadanie optymalnego wyboru asortymentu produkcji
Niech m=2, (w fabryce wytwarzane są 2 produkty), n=2 (do wytworzenia jednego produktu
potrzebne są 2 surowce).
–
–
do wytworzenia produktu I – 8 jednostek surowca A,
2 jednostki surowca B,
do wytworzenia produktu II – 5 jednostek surowca A,
5 jednostek surowca B.
Zysk ze sprzedaży
–
–
jednostki produktu I - 9 tys. złotych
jednostki produktu II -8 tys. złotych
Wielkość dziennej dostawy
–
–
surowca A – 40 jednostek
surowca B – 25 jednostek
Zadanie (X – zbiór rozwiązań dopuszczalnych,
warstwicami funkcji f(x) są linie proste 9x1 + 8x2 = const.)
f ( x) = 9 x1 + 8 x2 →
x1 ≥ 0,
max
x2 ≥ 0
A : 8 x1 + 5 x2 ≤ 40
B : 2 x1 + 5 x2 ≤ 25
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 20
Ćwiczenie 5 - cd
// definicje macierzy
c=[-9;-8];xL=[0;0];xU=[1e10;1e10];C=[8,5;2,5];d=[40;25];
[xopt,lagr,fopt] = linpro(c,C,d,xL,xU,0);
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 21
Ćwiczenie 5 - cd
// definicje macierzy
c=[-9;-8];xL=[0;0];xU=[1e10;1e10];C=[8,5;2,5];d=[40;25];
[xopt,lagr,fopt] = linpro(c,C,d,xL,xU,0);
// prezentacja graficzna
deff('[w]=f(x,y)','w=c(1)*x+c(2)*y')
xx=[0:0.5:6]; yy=[0:0.5:6]; zz=feval(xx,yy,f);
contour2d(xx,yy,zz,10);
deff('[y1]=f1(x)','y1=-8*x/5+40/5')
deff('[y2]=f2(x)','y2=(25-2*x)/5')
xxx=[0:0.5:6];yy1=f1(xxx);yy2=f2(xxx);
plot2d([xxx',xxx'],[yy1',yy2'])
//,[-1,-1],'011',' ',[0 0 6 6])
xstring(xopt(1)+0.5,xopt(2)+0.05,'Rozwiazanie')
xtitle('Fabryka')
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2
Nieliniowe równania i układy rówań
4 maj 2009
Slajd 22
Funkcje dostępne w SciLab
• fsolve() – funkcja rozwiązująca układ równań nieliniowych
• linpro() – narzędzie rozwiązywania zadań programowania
liniowego
• quapro() – narzędzie rozwiązywania zadań programowania
liniowego
• optim() – funkcja rozwiązująca nieliniowe zadania optymalizacji
Ins tytut K ons trukcji B udowlanych
Zakład Komputeroweg o Ws pomag ania Projektowania
Metody Obliczeniowe
S emestr 2