Upload
ngohanh
View
234
Download
0
Embed Size (px)
Citation preview
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 1
Równania nieliniowe, nieliniowe układy równań, optymalizacja
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań 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
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 3
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
Ćwiczenie 1
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 4
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
Ćwiczenie 1
[ ] [ ] ( ) ( )[ ] ( ) ( )
><
=−−
−−
0,0,
,11
11
iiii
iiiiii xfafgdybx
xfafgdyxaba
( )ii
iii
xbbax
=+= −− 112
1
bi − 1
( )f bi − 1
( )ixf
( )f ai − 1
iba ai i− =1
( )ii
iii
xbbax
=+= −− 112
1
bi − 1
( )f bi − 1
( )ixf
( )f ai − 1
iba ai i− =1
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 5
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)/2while abs(f(x)) >= eps
if f(a)*f(x) < 0b = x
elsea = x
end x = (a + b)/2
endendfunction
Ćwiczenie 1 - cd
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 6
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].
Ćwiczenie 1 - cd
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 7
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].
Ćwiczenie 1 - cd
function y=f(x) y=x^3-2*x^2-2*x+1 endfunctionx=-1.5:0.1:3plot2d(x,f(x))eps=0.001
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 8
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].
Ćwiczenie 1 - cd
function y=f(x) y=x^3-2*x^2-2*x+1 endfunctionx=-1.5:0.1:3plot2d(x,f(x))eps=0.001x1=bisekcja(-1.5,-0.5,f,eps)// x1 = -1x2= bisekcja(-0.5,1.5,f,eps)// x2 = 0.3818x3= bisekcja(1.5, 3, f,eps)// x3 = 2.618
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 9
Zdefiniuj funkcję g(x)=2x+cos(x). Znajdź przy pomocy funkcji bisekcja() rozwiązanie równania g(x)=0. Obliczenia poprzedź wykonaniem wykresu funkcji, oraz doborem przedziału [a,b].
Ćwiczenie 1 - cd
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 10
Znajdź rozwiązanie równań f(x)=0 i g(x)=0 (dla wcześniej zdefiniowanych funkcji) wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe”
Ćwiczenie 2
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 11
Znajdź rozwiązanie równań f(x)=0 i g(x)=0 (dla wcześniej zdefiniowanych funkcji) wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe”
Ćwiczenie 2
x1=fsolve(-0.5,f); // -1
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 12
Znajdź rozwiązanie równań f(x)=0 i g(x)=0 (dla wcześniej zdefiniowanych funkcji) wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe”
Ćwiczenie 2
x1=fsolve(-0.5,f); // -1x2=fsolve(0,f); // 0.38x3=fsolve(3,f); // 2.618z=fsolve(3,g); // -0.45
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 13
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25Przedstaw interpretację graficzną zadania
Ćwiczenie 2
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 14
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25Przedstaw interpretację graficzną zadania
Ćwiczenie 2
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)
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 15
Rozwiąż, wykorzystując funkcję SciLaba fsolve() i dobierając różne punkty „startowe” układ równań nieliniowych:
x2+y2 = 50, xy = 25Przedstaw interpretację graficzną zadania
Ćwiczenie 2
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)
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 16
Ćwiczenie 3Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1,
przy następujących ograniczeniach: x1 + 3*x2 = 5x1 + x2 - x3 = 22x1 - x2 ≤ 3x1 + x2 + x3 ≤ 250 ≤ x1≤ 5, 0 ≤ x2 ≤ 10, 0 ≤ x3 ≤ 3
funkcja linpro(p,C,b,xL,xU,me):minimum dla:
f(X)= pT*X
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 17
Ćwiczenie 3Znajdź minimum funkcji f(x1,x2,x3) = 3x1+5x2-2x3+1,
przy następujących ograniczeniach: x1 + 3*x2 = 5x1 + x2 - x3 = 22x1 - x2 ≤ 3x1 + x2 + x3 ≤ 250 ≤ x1≤ 5, 0 ≤ x2 ≤ 10, 0 ≤ x3 ≤ 3
p = [3;5;-2];C = [1,3,0; 1,1,-1; 2,-1,0; 1,1,1 ];b = [5;2;3;25];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
funkcja linpro(p,C,b,xL,xU,me):minimum dla:
f(X)= pT*X
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań 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 ≤ x1≤ 10, 0 ≤ x2 ≤ 10
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 19
Ć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
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 20
Ć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
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 21
Ćwiczenie 5Metody optymalizacji – przykład – cd.
Zadanie optymalnego wyboru asortymentu produkcjiNiech 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.)
2552:4058:0,0
max89)(
21
21
21
21
≤+≤+≥≥
→+=
xxBxxAxxxxxf
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 22
Ćwiczenie 5 - cd// definicje macierzyc=[-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);
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 23
Ćwiczenie 5 - cd// definicje macierzyc=[-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 graficznadeff('[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')
Instytut Konstrukcji Budowlanych Metody Obliczeniowe
Zakład Komputerowego Wspomagania Projektowania Semestr 2
2 pa dziernik 2013ź Nieliniowe równania i układy rówań Slajd 24
Funkcje dostępne w SciLab
fsolve() - funkcja rozwiązująca układ równań nieliniowych linpro() - funkcja do rozwiązywania zadań programowania liniowego
optim() - funkcja do rozwiązywania nieliniowych zadań optymalizacji