3 svar
55 visningar
ioem_ 122
Postad: 31 jan 14:51

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

Dr. G 9479
Postad: 31 jan 18:57

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. 

ioem_ 122
Postad: 31 jan 19:11

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?

Dr. G 9479
Postad: 31 jan 19:39

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

 

Svara
Close