Probleem in matlab

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Reageer
Berichten: 96

Probleem in matlab

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

Berichten: 7.068

Re: Probleem in matlab

De volgende keer graag

Code: Selecteer alles

-tags gebruiken.



De fout zit in dit stuk:

[code]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.

Berichten: 96

Re: Probleem in matlab

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.

Reageer