2013-02-15 65 views
0

我一直在试图在matlab中显示an和bn fourier系数,但没有成功,我能够显示a0,因为这不是迭代的一部分。使用matlab数值积分的傅立叶系数

,我将非常感谢您的帮助,下面是我的代码

syms an; 
syms n; 
syms t; 
y = sym(0); 
L = 0.0005; 
inc = 0.00001; % equally sample space of 100 points 

an = int(3*t^2*cos(n*pi*t/L),t,-L,L)*(1/L); 
bn = int(3*t^2*sin(n*pi*t/L),t,-L,L)*(1/L); 
a0 = int(3*t^2,t,-L,L)*(1/L); 
a0 = .5 *a0; 

a0=a0 

for i=1:5 
    y = subs(an, n, i)*cos(i*pi*t/0.0005) 
    z = subs(bn, n, i)*sin(i*pi*t/0.0005) 
end 
+0

matlab检索到的错误是什么? – fpe 2013-02-16 10:58:29

+0

,您能否向我们提供预期结果清单? – fpe 2013-02-16 11:05:03

回答

1

如果你的问题中说的一切是正确的,我会倾向于解决这样说:

clc, clear all,close all 

L = 0.0005; 
n = 5; 
an = zeros(1,n); 
bn = zeros(1,n); 

for i = 1:5  
    f1 = @(t) 3.*(t.^2).*cos(i.*pi.*t./L); 
    f2 = @(t) 3.*(t.^2).*sin(i.*pi.*t./L); 
    an(i) = quad(f1,-L,L).*(1./L); 
    bn(i) = quad(f2,-L,L).*(1./L); 
    a0 = .5.*quad(@(t) 3.*t.^2,-L,L).*(1./L); 
end 

希望这有助于。

+0

谢谢...看起来像我所需要的,结果似乎接近我所期望的,同时我编辑了原始代码,因为我忘记了包括同样的样本空间点。 – Ola 2013-02-16 23:10:52

+0

预期结果:我希望能够改变同样的样本空间并使用matlab数值计算来计算百分比误差值。 – Ola 2013-02-16 23:12:34

+0

如果答案符合您的期望,您可以考虑将其证明为正确的答案 – fpe 2013-02-17 08:52:48