1 svar
1227 visningar
wangr 1 – Fd. Medlem
Postad: 11 nov 2019 21:46

Summering av Riemannsumma

Hej! 

Jag ska summera

  01x*sinx

med hjälp av Riemannsummor i MATLAB på fyra olika sätt (vänster och höger rektangelregel, mittpunktsmetoden samt trapetsmetoden. För höger rektangelregel har jag gjort såhär (och på liknande sätt med vänster)

n = 100;
a = 0; b = 1;
f=@(x)(x.*sin(x));
x = linspace (a,b,n+1);
h = (b-a)/n;
q1 = sum(h.*f(x(1:n)));

Jag tror att detta ska stämma. Jag vet dock inte hur jag ska gå vidare med mittpunktsmetoden/trapetsmetoden. Jag testade att använda en vektor i summeringen även denna gång. 

s = a + (h/2)

och vektorn s:n-1, men det verkade inte fungera. Funderade även på att använda en for-loop men osäker på hur det skulle se ut. Ganska ny på programmering så lite lost. Någon som vet hur man ska tänka?

Tegelhus 225
Postad: 13 nov 2019 11:20 Redigerad: 13 nov 2019 11:21

Egentligen går båda att lösa på ungefär samma sätt, bara några mindre saker som måste modifieras jämfört med vänster- och högerrektangelreglerna. Fundera över vad som skiljer de olika metoderna åt, och hur det resulterar i olika summeringar. Båda går att lösa enbart genom att ändra på det du skriver innanför sum().

För mittpunktsmetoden vill du ju använda funktionsvärdet "i mitten" av rektangeln. För att få det kan du ta genomsnittet av x-värdet till vänster och x-värdet till höger. (Tips: jämför lösningarna för vänster och höger rektangelregel).

På samma sätt vill du för trapetsmetoden använda dig av x-värdena till vänster och höger. Skillnaden där är dock att istället för att ta genomsnittet av x-värdena och räkna ut funktionsvärdet för det, vill du räkna ut funktionsvärdena för respektive punkt och sedan ta genomsnittet av funktionsvärdena.

Lycka till!

Svara
Close