MatLab – Cvičení 3

Zadání

  1. Napište funkci v Matlabu, která vyhodnotí funkční předpis daný níže. Pokud bude uživatelem zadaná pouze jedna vstupní proměnná x, pak nechť y má standardní hodnotu nula. Funkce tedy sama rozpozná kolik vstupních proměnných uživatel zadá (nargin). Funkce nechť funguje vektorově, tedy zadá-li uživatel libovolně rozměrné pole hodnot, vyhodnotí se funkce pro každý prvek pole zvlášť (element-wise).
    f(x,y)=xe^{-x^{2}-y^{2}}+tanh(xy)
  2. Vykreslete hodnoty funkce f(x), f(x,1), f(x,2) v rozmezí x=-5...5
      • Do jednoho 2D obrázku
      • Každou do vlastního 2D podobrázku (subplot)

    Popište osy, vložte nadpis a legendu. Jednotlivé čáry barevně odlište. Výsledek (a) uložte do souboru formátu JPG, BMP a PDF a porovnejte velikosti souborů a kvalitu obrázku.

  3. vykreslete 3D graf funkce f(x,y) pro x=-5...5y=-6...6

Řešení

Hlavní program

clear *
close all
clc
%-------------1-------------
%Nachází se v souboru cv3fc.m
%-------------2-------------
x = cv3fc(-5:0.1:5); %Jen jedna hodnota(y = 0)
x2 = cv3fc(-5:0.1:5, 1); %y = 1
x3 = cv3fc(-5:0.1:5, 2); %y = 2

hold on %V jednom grafu
plot(-5:0.1:5,x, 'r') %Červená barva
plot(-5:0.1:5,x2, 'g') %Zelená barva
plot(-5:0.1:5,x3, 'b') %Modrá barva
title('Graf');%Popis grafu - název grafu
xlabel('osa X'); %Popis grafu - na ose x
ylabel('osa Y'); %Popis grafu - na ose y
legend( 'f(x)', 'f(x, 1)', 'f(x, 2)'); %

hold off %Každá hodnota má vlastní graf
figure
subplot(3,1,1)
plot(x)
subplot(3,1,2)
plot(x2)
subplot(3,1,3)
plot(x3)
%-------------3-------------
figure
x4 = cv3fc(-5:0.1:5, -6:0.12:6);
plot3(-5:0.1:5, -6:0.12:6, x4) %Vykrslí 3D graf podle předpisu

Funkce

function [z] = cv3fc( x, y )
 if(nargin == 1) %Pokud bude zadána pouze jedna hodnota tak se y = 0
     y = 0;
 end;
 z = x.*exp(-x.^2-y.^2)+tanh(x.*y); %Předpis Funkce
end

You may also like...

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *