Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

courses:a4b33opt:cviceni4 [2009/10/12 14:42]
petul.ka created
courses:a4b33opt:cviceni4 [2025/01/03 18:28] (aktuální)
Řádek 1: Řádek 1:
 ===== Cvičení 4 ===== ===== Cvičení 4 =====
 +==== Uloha 1 ====
 +Soubor pal3_H.m (samostatne definova H(x,e))
 + --- //​[[[email protected]|Marek Sacha]] 2009/10/13 01:06//
 +<code matlab>
 +function [ h ] = pal3_H( x , e )
 +% [ h ] = pal3_H( x , e )
 +%
 +% Computes value of function H(x,e)
 +% x is a column vector
 +% e is a constant
 +%
 +% Author: Marek Sacha [email protected]
 +% Date: 12.10.2009
 +[ xw xh ] = size(x);
 +temp_e = e*-1*ones(xw,​xh);​
 +temp = [ zeros(xw,​xh) (x+temp_e) ((-1*x)+temp_e) ];
 +% do not forget to count max in second dimension
 +h = max(temp,​[],​2);​
 +</​code>​
 +
 +Uloha 1
 + --- //​[[[email protected]|Marek Sacha]] 2009/10/13 01:06//
 +<code matlab>
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +% Author: Marek Sacha <​[email protected]>​ %
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +
 +clear
 +clc
 +close all
 +
 +% initialize e
 +e = 0.3;
 +% initialize x
 +x = -1 : 0.01 : 1;
 +% function works vith column vector only
 +x = x';
 +y = pal3_H(x,​e);​
 +plot(x,​y,'​r'​);​
 +xlabel('​x ')
 +ylabel('​H(x,​e)'​);​
 +
 +</​code>​
 +
 +
 +==== Uloha 2 ====
 +Vykresli i graf s ruznymivysledky aproximacnich primkek pro ruzne tolerance chyby e (0.001, 0.01, 0.1 0.5 )
 +
 +Odvozeni prevodu ulohy na LP viz scan (trik lambda = lambda1 + lambda2 + .... + lambda n): 
 +
 +{{:​courses:​a4b33opt:​opt_cv3_odvozeni_uloha_2_opravene.jpg|}}
 +
 + --- //​[[[email protected]|Marek Sacha]] 2009/10/13 00:48//
 +<​code>​
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +% Author: Marek Sacha <​[email protected]>​ %
 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 +
 +clear all
 +clc
 +load data1.mat
 +
 +% initialize e, test various cases
 +E = [ 0.001 0.01 0.1 0.5 ];
 +
 +% Colours for different cases
 +C = [ '​r'​ '​g'​ '​b'​ '​c'​ ];
 +
 +hold on;
 +
 +for j=1:4
 +
 +    % Initialize e
 +    ​
 +    e=E(j);
 +
 +    [ xh xw ] = size(x);
 +    % Construct inequalities matrix
 +    %         ​a ​   b   ​l1 ​ l2 ... ln 
 +    %        ++++++++++++++++++++++++
 +    %       | x1   ​1 ​ -1   ​0 ​ ...  0 |
 +    %       | x2   ​1 ​  ​0 ​ -1  ...  0 |
 +    %       ...
 +    %       | xn   ​1 ​  ​0 ​  ​0 ​ ... -1 |
 +    % A =   ​|-x1 ​ -1  -1   ​0 ​ ...  0 |
 +    %       ​|-x2 ​ -1   ​0 ​ -1  ...  0 |
 +    %       ...
 +    %       ​|-xn ​ -1   ​0 ​  ​0 ​ ... -1 |
 +    %       | 0    0  -1   ​0 ​ ...  0 |
 +    %       | 0    0   ​0 ​ -1  ...  0 |
 +    %       ...
 +    %       | 0    0   ​0 ​  ​0 ​ ... -1 |
 +    %        ++++++++++++++++++++++++
 +    % 
 +    A = [ x ones(xh,1) -1*eye(xh); -1*x -1*ones(xh,​1) -1*eye(xh); zeros(xh,1) zeros(xh,1) -1*eye(xh) ];
 +    % Construct right side
 +    %     | e + y |
 +    % b = | e - y |
 +    %     | 0     |
 +    b = [ (e*ones(xh,​1))+y;​ (e*ones(xh,​1))-y;​ zeros(xh,1) ];
 +    % Construct function to be minimized
 +    % f = 0a + 0b + lambda1 + lambda2 + lambda3 + ... + lambdan
 +    f = [ 0 ; 0; ones(xh,​1)];​
 +    % Run linprog
 +    o = linprog(f,​A,​b);​
 +    % o = [ a b lambda1 lambda2 ... lambdan ];
 +    % Print separate points
 +    plot(x,​y,'​y.'​);​
 +    % Approximation line
 +    plot(x,​x*o(1)+o(2),​C(j));​
 +    ​
 +
 +end
 +
 +hold off;
 +</​code>​
 +
 +
 +
  
  
courses/a4b33opt/cviceni4.1255351351.txt.gz · Poslední úprava: 2025/01/03 18:23 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0