Fylla i arean under en funktion
Hej,
sitter med en uppgift där jag ska fylla i arean under en funktion med hjälp av kommandot "fill".
Efter lite hjälp så har jag kommit fram till
x = [2 3 4 5 6];
y = @(x) (x).^3;
f = y(x);
X = [x,fliplr(x)];
Y = [zeros(size(x)), fliplr(f)];
I = integral(y, 2, 6);
fill(X, Y, 'y');
Jag fastnar på varför man skulle behöva göra såhär i X? Varför funkar det inte bara att ta vektorn x i fill kommandot? Varför behöver jag göra en ny vektor X som är 2 3 4 5 6 6 5 4 3 2? Jag är med på att jag gör en radvektor i Y med samma antal element som är i X men varför behöver jag flipa f i Y?
TACKSAM FÖR HJÄLP
Det går lika bra med
Y = [f, zeros(size(x))];
För varje x-värde så vill du ha y-värdena 0 och f(x). Möjligt dock att det finns någon färdig funktion som fixar detta.
Men jag förstår inte varför det är så viktigt att jag ska ha hela 2 3 4 5 6 6 5 4 3 2 istället för bara 2 3 4 5 6 i X?
Angående det du skrev dock: varför vill jag ha yvärdena noll? f(x) rimligt men varför är det så viktigt att ha 0?
Funktionen fyller värdena som ligger inneslutna mellan punkterna i X och punkterna i Y. Exakt hur detta görs vet jag inte. Ordningen på punkterna borde spela roll.
Det borde gå att lägga till ett färre antal punkter, men det här funkar ju.
Tillägg: 31 jan 2024 20:15
Funkar även med
X = [x, x(end),x(1)];
Y = [f,0,0];