Toto je starší verze dokumentu!


Cvičení 4

Uloha 1

Soubor pal3_H.m (samostatne definova H(x,e))

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);

Uloha 1

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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)');

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):

Marek Sacha 2009/10/13 00:48

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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 sumOflambdas ];
    % Print separate points
    plot(x,y,'y.');
    % Approximation line
    plot(x,x*o(1)+o(2),C(j));
    

end

hold off;
courses/a4b33opt/cviceni4.1255388122.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