Neka je u M-fajlu zadat vektor .
X = [1 4 2 -5 -2 9];
Napisati M-fajl sa funkcijom koja formira polinom kome su nule pozitivne vrednosti vektora i računa vrednost tog polinoma u tački .
x
function [p, y] = nule(x)
vektor;
% I način - for petlja
Y = [];
for i = 1:length(X)
if X(i) > 0
Y = [Y, X(i)];
end
end
% II način - korišćenje ugrađene funkcije find()
% Y = X(find(X > 0));
% funkcija poly() vraća polinom čije su nule elementi vektora koji prosleđujemo kao argument
p = poly(Y);
y = polyval(p, x);
Napisati M-fajl sa funkcijom koja za uneti argument računa vrednost izvoda u tački polinoma dobijenog pozivom funkcijskog fajla
x
function i = izvod(x)
% Svejedno je koju vrednost x ćemo proslediti kao argument pri pozivu funkcije
% [p, y]=nule(x) jer nam je bitan samo polinom koji se formira.
% Kada funkcijskom fajlu koji vraća više vrednosti kao rezultat dodelimo jednu promenljivu, % dobićemo prvu vrednost rezultata. U našem slučaju, potreban nam je samo polinom, ne i %vrednost polinoma u tački x=1
p = nule(1);
% k=polyder(p) vraća polinom k koji predstavlja prvi izvod polinoma p
% dok k=polyder(p,q) vraća polinom k koji predstavlja prvi izvod polinoma p*q.
i = polyval(polyder(p), x);
Nacrtati grafik polinoma na intervalu koristeci ekvidistantnu mrežu sa tačaka
x
% polinom se predstavlja vektorom njegovih koeficijenata
% x^4 + x^2 -1 = 1*x^4 + 0*x^3 + 1*x^2 + 0*x^1 - 1*x^0
p = [1, 0, 1, 0, -1];
% ekvidistantna mreža od 50 tačaka na [-2, 2]
x = linspace(-2, 2, 50);
% vrednost polinoma u čvorovima mreže
y = polyval(p, x);
plot(x, y);
% izjednačavanje osa
axis equal
title('Grafik polinoma x^4+x^2-1');
xlabel('x-osa');
ylabel('y-osa');