Presentation is loading. Please wait.

Presentation is loading. Please wait.

MATLAB Exercises Assoc. Prof. Dr. Pelin GÜNDEŞ

Similar presentations


Presentation on theme: "MATLAB Exercises Assoc. Prof. Dr. Pelin GÜNDEŞ"— Presentation transcript:

1 MATLAB Exercises Assoc. Prof. Dr. Pelin GÜNDEŞ
Optimization MATLAB Exercises Assoc. Prof. Dr. Pelin GÜNDEŞ

2 Introduction to MATLAB

3 Introduction to MATLAB

4 Introduction to MATLAB
% All text after the % sign is a comment. MATLAB ignores anything to the right of the % sign. ; A semicolon at the end of a line prevents MATLAB from echoing the information you enter on the screen … A succession of three periods at the end of the line informs MATLAB that code will continue to the next line. You can not split a variable name across two lines. You can not continue a comment on another line.

5 Introduction to MATLAB
^c You can stop MATLAB execution and get back the command prompt by typing ^c (Ctrl-C) – by holding down ‘Ctrl’ and ‘c’ together. help command_name helpwin Opens a help text window that provides more information on all of the MATLAB resources installed on your system. helpdesk Provides help using a browser window.

6 Introduction to MATLAB
= The assignment operator. The variable on the left-hand side of the sign is assigned the value of the right-hand side. == Within a if construct MATLAB is case sensitive. An a is different than A. All built-in MATLAB commands are in lower case. MATLAB does not need a type definition or dimension statement to introduce variables.

7 Introduction to MATLAB
Variable names start with a letter and contain up to 31 characters (only letters, digits and underscore). MATLAB uses some built in variable names. Avoid using built in variable names. Scientific notation is expressed with the letter e, for example, 2.0e-03, 1.07e23, e+03. Imaginary numbers use either i or j as a suffix, for example 1i, -3.14j,3e5i

8 Introduction to MATLAB
Arithmetic Operators + Addition - Subtraction * Multiplication / Division ^ Power ‘ Complex conjugate transpose (also array transpose)

9 Introduction to MATLAB
In the case of arrays, each of these operators can be used with a period prefixed to the operator, for example, (.*) or (.^) or (./). This implies element-by-element operation in MATLAB. , A comma will cause the information to echo

10 Exercise >> a=2;b=3;c=4,d=5;e=6, c = 4 e = 6
% why did only c and e echo on the screen?

11 Exercise >> who % lists all the variables on the screen
Your variables are: a b c d e >> a % gives the value stored in a a = 2

12 Exercise >> A=1.5 % Variable A A = 1.5000
>> a, A % Case matters a = 2

13 Exercise >> one=a;two=b;three=c;
>> % assigning values to new variables >> four=d;five=e;six=pi; % value of pi available >> f=7; >> A1=[a b c;d e f]; % A1 is a 2 by 3 matrix % space seperates columns % semi-colon seperates rows >> A1(2,2) % accesses the matrix element on the second raw and second column ans = 6

14 Exercise >> size(A1) % gives you the size of the matrix (row, columns) ans = >> AA1=size(A1) % What should happen here? From previous % statement the size of A1 contains two numbers arranged as a row % matrix. This is assigned to AA1 AA1 =

15 Exercise >> size(AA1) % AA1 is a one by two matrix ans = 1 2
>> A1’ % this transposes the matrix A1

16 Exercise >> B1=A1’ % the transpose of matrix A1is assigned to B1. B1 is a % three by two matrix B1 = >> C1=A1*B1 % Matrix multiplication C1 =

17 Exercise >> C2=B1*A1 C2 = 29 36 43 36 45 54 43 54 65
>> C1*C2 % Read the error matrix ??? Error using ==> * Inner matrix dimensions must agree.

18 Exercise >> D1=[1 2]' % D1 is a column vector D1 = 1 2
>> C1,C3=[C1 D1] % C1 is augmented by an extra column C1 = C3 =

19 Exercise >> C2 C2 = >> C3=[C3;C2(3,:)] % The column represents all the columns C3 =

20 Exercise >> C4=C2*C3 C4 = 4706 7906 2896 5886 9882 3636
>> C5=C2.*C3 % The .* represents the product of each element of % C2 with the corresponding element of C3 C5 =

21 Exercise >> C6=inverse(C2)
??? Undefined function or variable 'inverse'. % Apparently, inverse is not a command in MATLAB, if command % name is known, it is easy to obtain help >> lookfor inverse % this command will find all files where it comes % across the word “inverse” in the initial comment lines. The % command we need appears to be INV which says inverse of a % matrix. The actual command is in lower case. To find out how to use % it: >> help inv inv(C2) % inverse of C2

22 Exercise >> for i=1:20 f(i)=i^2;
end % The for loop is terminated with “end” >> plot(sin(0.01*f)',cos(0.03*f)) >> xlabel('sin(0.01f)') >> ylabel('cos(0.03*f)') >> legend('Example') >> title('A Plot Example') >> grid >> exit % finished with MATLAB

23 Graphical optimization
Minimize f(x1,x2)= (x1-3)2 + (x2-2)2 subject to: h1 (x1,x2): 2x1 + x2 =8 h2(x1,x2): (x1-1)2 + (x2-4)2 =4 g1(x1,x2): x1 + x2 ≤ 7 g2(x1,x2): x1 – 0.25 x22 ≤ 0 0 ≤ x1≤ 10; 0 ≤ x2≤ 10;

24 Example 1 % Example 1 (modified graphics)% %
% graphical solution using matlab (two design variables) % the following script should allow the graphical solution % to example % % Minimize f(x1,x2) = (x1-3)**2 + (x2-2)**2 % h1(x1,x2) = 2x1 + x2 = 8 % h2(x1,x2) = (x1-1)^2 + (x2-4)^2 = 4 % g1(x1,x2) : x1 + x2 <= 7 % g1(x1,x2) : x x2^2 <= 0.0 % 0 <= x1 <= 10 ; 0 <= x2 <= 10

25 Example 1 % % WARNING : The hash marks for the inequality constraints must % be determined and drawn outside of the plot % generated by matlab % x1=0:0.1:10; % the semi-colon at the end prevents the echo x2=0:0.1:10; % these are also the side constraints % x1 and x2 are vectors filled with numbers starting % at 0 and ending at 10.0 with values at intervals of 0.1 [X1 X2] = meshgrid(x1,x2); % generates matrices X1 and X2 correspondin % vectors x1 and x2

26 Example 1 cont’d f1 = obj_ex1(X1,X2);% the objecive function is evaluated over the entire mesh ineq1 = inecon1(X1,X2);% the inequality g1 is evaluated over the mesh ineq2 = inecon2(X1,X2);% the inequality g2 is evaluated over the mesh eq1 = eqcon1(X1,X2);% the equality 1 is evaluated over the mesh eq2 = eqcon2(X1,X2);% the equality 2 is evaluated over the mesh [C1,h1] = contour(x1,x2,ineq1,[7,7],'r-'); clabel(C1,h1); set(h1,'LineWidth',2) % ineq1 is plotted [at the contour value of 8] hold on % allows multiple plots k1 = gtext('g1'); set(k1,'FontName','Times','FontWeight','bold','FontSize',14,'Color','red') % will place the string 'g1' on the lot where mouse is clicked

27 Example 1 cont’d [C2,h2] = contour(x1,x2,ineq2,[0,0],'r--');
clabel(C2,h2); set(h2,'LineWidth',2) k2 = gtext('g2'); set(k2,'FontName','Times','FontWeight','bold','FontSize',14,'Color','red') [C3,h3] = contour(x1,x2,eq1,[8,8],'b-'); clabel(C3,h3); set(h3,'LineWidth',2) k3 = gtext('h1'); set(k3,'FontName','Times','FontWeight','bold','FontSize',14,'Color','blue') % will place the string 'g1' on the lot where mouse is clicked [C4,h4] = contour(x1,x2,eq2,[4,4],'b--'); clabel(C4,h4); set(h4,'LineWidth',2) k4 = gtext('h2'); set(k4,'FontName','Times','FontWeight','bold','FontSize',14,'Color','blue')

28 Example 1 cont’d [C,h] = contour(x1,x2,f1,'g'); clabel(C,h);
set(h,'LineWidth',1) % the equality and inequality constraints are not written with 0 on the right hand side. If you do write % them that way you would have to include [0,0] in the contour commands xlabel(' x_1 values','FontName','times','FontSize',12,'FontWeight','bold'); % label for x-axes ylabel(' x_2 values','FontName','times','FontSize',12,'FontWeight','bold'); set(gca,'xtick',[ ]) set(gca,'ytick',[ ]) k5 = gtext({'Chapter 2: Example 1','pretty graphical display'}) set(k5,'FontName','Times','FontSize',12,'FontWeight','bold') clear C C1 C2 C3 C4 h h1 h2 h3 h4 k1 k2 k3 k4 k5 grid hold off

29 Example 1 cont’d Objective function function retval = obj_ex1(X1,X2)
retval = (X1 - 3).*(X1 - 3) +(X2 - 2).*(X2 - 2); The first inequality function retval = inecon1(X1, X2) retval = X1 + X2; The second inequality function retval = inecon2(X1,X2) retval = X *X2.^2;

30 Example 1 cont’d The first equality function retval = eqcon1(X1,X2)
retval = 2.0*X1 + X2; The second equality function retval = eqcon2(X1,X2) retval = (X1 - 1).*(X1 - 1) + (X2 - 4).*(X2 - 4);

31 Example 2- Graphical solution


Download ppt "MATLAB Exercises Assoc. Prof. Dr. Pelin GÜNDEŞ"

Similar presentations


Ads by Google