File:Nonquasiconvex function.png

Aus Wikimedia Commons, dem freien Medienarchiv
Zur Navigation springen Zur Suche springen

Nonquasiconvex_function.png(472 × 396 Pixel, Dateigröße: 14 KB, MIME-Typ: image/png)

Bildtexte

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

Beschreibung[Bearbeiten]

Made by myself with MATLAB


Dieses Bild des Typs Graph sollte als Vektorgrafik im SVG-Format neu erstellt werden. Vektorformate haben zahlreiche Vorteile; weitere Information unter Commons:Media for cleanup. Wenn dir eine SVG-Version dieses Bildes vorliegt, so lade diese bitte hoch. Nach dem Hochladen der Datei ist diese Vorlage auf der aktuellen Bildbeschreibungsseite durch die Vorlage {{Vector version available}}, oder kürzer {{Vva}}, zu ersetzen. Es ist empfohlen die neue SVG-Datei „Nonquasiconvex function.svg“ zu nennen – dann benötigt die Vorlage vector version available (bzw. vva) keinen Parameter.

Lizenz[Bearbeiten]

Public domain Ich, der Urheberrechtsinhaber dieses Werkes, veröffentliche es als gemeinfrei. Dies gilt weltweit.
In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist:
Ich gewähre jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich.

Source code[Bearbeiten]

function main() 

% prepare the scrreen and define some parameters   
clf; hold on; axis equal; axis off; 
fontsize=25; thick_line=3; thin_line=2; black=[0, 0, 0]; red=[1, 0, 0];
arrowsize=0.1; arrow_type=1; arrow_angle=30; % (angle in degrees)

L=1.15;

X=(-L):0.01:(L);
f=inline('2*(X.^4-X.^2+1)-1.3');
Y=f(X);
plot(X, Y, 'linewidth', thick_line)

arrow([X(1) 0], [X(length(X)), 0],          thin_line, arrowsize, arrow_angle, arrow_type, black) 
arrow([0 min(Y)-0.4], [0 max(Y)+0.2], thin_line, arrowsize, arrow_angle, arrow_type, black) 


a=0.5; Z=X*0+a;
plot(X, Z, 'linewidth', thin_line, 'linestyle', '--', 'color', 'r');

x0=-10;

for i=2:(length(X)-1)
   x=X(i); xp=X(i-1);
   
   if x < 0 & f(x) < a & f(xp) >= a
      x0=x;
   elseif x < 0 & f(x) >= a & f(xp) < a
      x1=x;
   elseif x > 0 & f(x) <= a & f(xp) > a
      x2=x;
   elseif x > 0 & f(x) >= a & f(xp) < a
      x3=x;
   end
end

plot([x0, x1],  [0, 0], 'linewidth', 2*thick_line, 'color', 'r');
plot([x2, x3],  [0, 0], 'linewidth', 2*thick_line, 'color', 'r');

saveas(gcf, 'Nonquasiconvex_function.eps', 'psc2') % export to eps


function arrow(start, stop, thickness, arrow_size, sharpness, arrow_type, color)
   
% Function arguments:
% start, stop:  start and end coordinates of arrow, vectors of size 2
% thickness:    thickness of arrow stick
% arrow_size:   the size of the two sides of the angle in this picture ->
% sharpness:    angle between the arrow stick and arrow side, in degrees
% arrow_type:   1 for filled arrow, otherwise the arrow will be just two segments
% color:        arrow color, a vector of length three with values in [0, 1]
   
% convert to complex numbers
   i=sqrt(-1);
   start=start(1)+i*start(2); stop=stop(1)+i*stop(2);
   rotate_angle=exp(i*pi*sharpness/180);

% points making up the arrow tip (besides the "stop" point)
   point1 = stop - (arrow_size*rotate_angle)*(stop-start)/abs(stop-start);
   point2 = stop - (arrow_size/rotate_angle)*(stop-start)/abs(stop-start);

   if arrow_type==1 % filled arrow

      % plot the stick, but not till the end, looks bad
      t=0.5*arrow_size*cos(pi*sharpness/180)/abs(stop-start); stop1=t*start+(1-t)*stop;
      plot(real([start, stop1]), imag([start, stop1]), 'LineWidth', thickness, 'Color', color);

      % fill the arrow
      H=fill(real([stop, point1, point2]), imag([stop, point1, point2]), color);
      set(H, 'EdgeColor', 'none')
      
   else % two-segment arrow
      plot(real([start, stop]), imag([start, stop]),   'LineWidth', thickness, 'Color', color); 
      plot(real([stop, point1]), imag([stop, point1]), 'LineWidth', thickness, 'Color', color);
      plot(real([stop, point2]), imag([stop, point2]), 'LineWidth', thickness, 'Color', color);
   end
Dieses Bild des Typs Math sollte als Vektorgrafik im SVG-Format neu erstellt werden. Vektorformate haben zahlreiche Vorteile; weitere Information unter Commons:Media for cleanup. Wenn dir eine SVG-Version dieses Bildes vorliegt, so lade diese bitte hoch. Nach dem Hochladen der Datei ist diese Vorlage auf der aktuellen Bildbeschreibungsseite durch die Vorlage {{Vector version available}}, oder kürzer {{Vva}}, zu ersetzen. Es ist empfohlen die neue SVG-Datei „Nonquasiconvex function.svg“ zu nennen – dann benötigt die Vorlage vector version available (bzw. vva) keinen Parameter.

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell20:26, 27. Jan. 2007Vorschaubild der Version vom 20:26, 27. Jan. 2007472 × 396 (14 KB)Oleg Alexandrov (Diskussion | Beiträge)Made by myself with MATLAB

Keine Seiten verwenden diese Datei.

Globale Dateiverwendung

Die nachfolgenden anderen Wikis verwenden diese Datei: