Zadanie 1. Znaleźć minimalną wartość wyrażenia f(x,y,z)=2x-3y
Transkrypt
Zadanie 1. Znaleźć minimalną wartość wyrażenia f(x,y,z)=2x-3y
Zadanie 1. Znale minimaln warto wyra enia f(x,y,z)=2x-3y-5z+2 przy zadanych ograniczeniach: x+y-z-2>=0, -x>=3+z+y, 2x+y=4+z, x>=0. Podstawi po zmienna "x_opt" punkt w którym znajduje si warto najmniejsza, pod zmienn "w_opt" warto funkcji f(x,y,z) w tym punkcie Do rozwi zania zadania wykorzystujemy funkcj SciLaba linpro(), funkcja f(x,y,z) jest bowiem wyra eniem liniowym. linpro() znajdzie warto najmniejsz wyra enia f1(x,y,z)=2x-3y-5z. Funkcj celu zapisujemy w postaci macierzowej jako: x T f ( x, y , z ) = p * y , z Ograniczenia zapisujemy jako: 2 p = −3 −5 2x + y − z = 4 − x − y + z ≤ −2 x + y + z ≤ −3 Polecenia zapisujemy jako: // parametr m okre la liczb ogranicze równo ciowych p=[2;-3;-5], C=[2,1,-1;-1,-1,1;1,1,1], b=[4;-2;-3], m=1 // okre lenie zakresu w którym poszukujemy warto ci zmiennych x,y,z ci=[0;-100000;-100000], cs=[100000;100000;100000] [x_opt,lagr,f]=linpro(p,C,b,ci,cs,m) w_opt= f+2 // uzyskane rozwi zanie: x_opt=[0;0.5;-3.5], w_opt=18 Zadanie 2. Obliczy pole figury ograniczonej krzywymi: y = cos(x)+8; y = x^2+2*x+4 39 35 31 27 23 19 15 11 7 3 -5 -4 -3 -2 -1 0 1 2 3 4 5 Jeden ze sposobów rozwi zania polegałby na znalezieniu punktów przeci cia si wykresów obu funkcji, obliczenia dwóch całek pojedynczych, oraz ich ró nicy. Polecenia zapisujemy jako: // znalezienie punktów przeci cia – wykorzystanie funkcji SciLaba // fsolve() – tworzymy układ równa : // y - cos(x)- 8 = 0 // y - x^2-2*x-4 = 0 function [y]=fst(z) // w definiowanej funkcji przyjmujemy z=[x;y] a=[0,0;-1,0]; b=[0,1;-2,1]; c=[-8;-4]; d=[-1,0;0,0] y=a*z^2+b*z+c+d*cos(z) endfunction // u ycie funkcji fsolve() – pocz tkowym rozwi zaniem punkt (0,0) xy1=fsolve([0;0],fst); // znalezione rozwi zanie: xy1=[ 1.2959523; 8.2713968] xy2=fsolve([-3;0],fst); // znalezione rozwi zanie: xy2=[ - 3.0024159; 7.0096695] // obliczenie całek pojedynczych c1= integrate('cos(x)+8','x',xy1(1),xy2(1)) c2= integrate('x^2+2*x+4','x',xy1(1),xy2(1)) pole = c1-c2 // znalezione rozwi zanie: pole = 15.882402 Zadanie 3. Zapisz funkcj o nazwie "styczne(x0,f,g)" która oblicza przybli one rozwi zanie równania f(x)=0 wykorzystuj c algorytm metody stycznych (patrz prezentacja Laboratorium nr 2) wykonuj c 10 iteracji. Punktem startowym jest argument "x0", funkcj argument "f" , argument "g" oznacza funkcj b d c pochodn funkcji "f" Algorytm metody stycznych: xi +1 = xi − f ( xi ) f ' (xi ) Polecenia zapisujemy jako: function x=styczne(x0,f,g) for i=1:10 x=x0-f(x0)/g(x0) x0=x end endfunction Zadanie 3a. Zapisz funkcj o nazwie "sieczne(x0,x1,f)" która oblicza przybli one rozwi zanie równania f(x)=0 wykorzystuj c algorytm metody siecznych (patrz prezentacja Laboratorium nr 2) wykonuj c 10 iteracji. Punktami startowymi s argumenty "x0,x1", funkcj argument "f" Algorytm metody siecznych: xi +1 = xi − (xi − xi−1 ) f ( xi ) f ( xi ) − f ( xi −1 ) Polecenia zapisujemy jako: function x=sieczne(x0,x1,f) for i=1:10 x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0)) x0=x1 x1=x end endfunction Zadanie 4. Oblicz przybli on warto całki z funkcji f(x) = sin(2x)+x-3 na [0,10] przy u yciu kwadratury zło onej - wzoru trapezów, dziel c przedział całkowania na 5 cz ci (np. wykorzystuj c funkcj inttrap()). Polecenia zapisujemy jako: // u ycie funkcji linspace(): // wygenerowanie wektora 6 punktów dziel cych [0,10] na 5 cz x=linspace(0,10,6) y=sin(2*x)+x-3 c=inttrap(x,y) ci // otrzymany wynik c=19.729104 Zadanie 4a. Oblicz przyblizon warto całki z funkcji f(x) = sin(2x)+x-3 na [0,10] przybli aj c j funkcj sklejan w oparciu o punkty w złowe {0,2,4,6,8,10} (wykorzystuj c funkcj intsplin()). Polecenia zapisujemy jako: x=[0,2,4,6,8,10] y=sin(2*x)+x-3 c=intsplin(x,y) // otrzymany wynik c= 18.784725