Springen naar inhoud

Probleem in matlab


  • Log in om te kunnen reageren

#1

LiesbethDN

    LiesbethDN


  • >25 berichten
  • 96 berichten
  • Ervaren gebruiker

Geplaatst op 17 november 2008 - 14:45

Goede middag,

Ik zou de functie arctan(x) moeten benaderen met Legendre-veeltermen in MATLAB. We kregen het functievoorschrift gegeven, en natuurlijk het voorschrift voor de veeltermen. Ik heb volgende dingen in MATLAB gezet, maar mijn foutenkromme ziet er niet uit zoals hij er eigenlijk zou moeten uitzien. Zou iemand mij kunnen helpen ? Want volgens mij zit er een fout in mijn code of in de commando's waarmee ik de code wil oproepen in het slechtste geval.
Alvast bedankt.

De Legendre veeltermen :

function L = legendre(i,x)

n = length(x);
L = zeros(1,n);

if i > 1
L = (2*i-1)/i.*x.*legendre(i-1,x) - (i-1)/i.*legendre(i-2,x);
elseif i == 0
L = 1;
elseif i == 1
L = x;
end

De benadering :

function som = arctanLeg(i,x)

n = length(x);
som = zeros(1,n);

for j = 0 : i
functie = @(x) atan(x).*legendre(i,x);
som = som + (2*j+1)/2.*quad(functie,-1,1).*legendre(i,x);
end

Hoe ik alles wil oproepen :

x = linspace(-1,1,10000);
y = arctanLeg(9,x);
z = atan(x) - y;
plot(x, z, 'b', 'LineWidth', 2);

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 17 november 2008 - 16:08

De volgende keer graag [code]-tags gebruiken.

De fout zit in dit stuk:
for j = 0 : i
	functie = @(x) atan(x).*legendre(i,x);
	som = som + (2*j+1)/2.*quad(functie,-1,1).*legendre(i,x);
end
Volgens mij moet die i in de loop een j zijn.

#3

LiesbethDN

    LiesbethDN


  • >25 berichten
  • 96 berichten
  • Ervaren gebruiker

Geplaatst op 17 november 2008 - 19:51

Achja nu zie ik het. Eigenlijk heel dom dat ik daar heb over gelezen. Bedankt !

Ook bedankt voor de info ivm de code-tags, ik wist niet dat dit kon.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures