Aiuto urgente per matlab

mercoledì 17 gennaio 2007 - 13.49

bend Profilo | Newbie

ciao a tutti..sono alle primissime armi con matlab e devo programmare questo problema per un esame:

K
an = h /π*∑ f(xk)cos(n2 π*( xk-xmin)/(xmax-xmin)
k=1

K
a0 = h/2* π*∑ f(xk)
k=1

N
F(xk)= a0 /2 + ∑ an cos(n2 π*( xk-xmin)/(xmax-xmin)
n=1
con h=delta


si tratta dell'espansione in serie di fourier.
qui di seguito quello che sono riuscito a programmare,che pero mi da risultati non accettabili.
quali errori potrei aver commesso e come potrei risolverli? grazie a tutti gia da ora.




function[]=fourier();
maxpoints=1024;
terms=6;
fcoef=zeros(1,terms);
[fid,err]=fopen('C:\Programmi\MATLAB7\work\fourier.in','r');
points=fscanf(fid,'%f\n',1);
%terms=points;
x=zeros(1,points);
y=zeros(1,points);
for pnt=1:points;
x(pnt)=fscanf(fid,'%f\n',1);
y(pnt)=fscanf(fid,'%f\n',1);
s=sprintf('%d %2.6f %2.6f ',pnt,x(pnt),y(pnt));
disp(s);
end;
err=fclose(fid);
delta=x(2)-x(1);
norm=1.0d0/pi;

%PART #1
%......
for counter=1:terms;
somma=0.0;
if (counter==1);
for k=1:points;
somma=somma+y(k);
end;
fcoef(1)=delta * somma / (2 * pi);

else;
for k=1:points;
somma=somma + y(k) * cos((counter-1) * 2 * pi * (x(k) - x(1)) / (x(points) - x(1)));
end;
fcoef(counter)=delta * somma /pi;
end;
% s=sprintf('%d %12.6f %12.6f |n',counter,delta,somma);
% disp(s);
end;
[fid,err]=fopen('C:\Programmi\MATLAB7\work\fourier.coe','w');
for counter=1:terms;
fprintf(fid,'|n %3d %12.10f ',(counter-1),fcoef(counter));
end;
err=fclose(fid);

%PART #2

f=zeros(1,points);
[fid,err]=fopen('C:\Programmi\MATLAB7\work\fourier.out','w');
for item=1:points;
f(item)=fcoef(1) / 2;
for n=2:terms;
f(item)=f(item) + fcoef(n) * cos((n-1) * 2 * pi * (x(item) - x(1)) / (x(points) - x(1)));
end;
fprintf(fid,'%12.6f %12.6f %12.6f \n',x(item),f(item),y(item));
end;
err=fclose(fid);

Brainkiller Profilo | Guru

Ciao,
purtroppo il nostro forum non parla di programmazione Matlab ma di programmazione principalmente .NET. Quindi non sappiamo aiutarti.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

bend Profilo | Newbie

grazie.dove potrei cercare aiuto?

Brainkiller Profilo | Guru

>grazie.dove potrei cercare aiuto?

Da quello che so se non è un problema matematico il tuo, Matlab include nel prodotto una guida molto completa che ti aiuta a risolvere questi problemi.

Per quanto riguarda un aiuto, puoi provare a consultare la User Community ufficiale della Mathworks a questo indirizzo (in inglese naturalmente):
http://www.mathworks.com/matlabcentral/

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5