您好,欢迎来到九壹网。
搜索
您的当前位置:首页傅里叶级数展开matlab实现说课

傅里叶级数展开matlab实现说课

来源:九壹网
.. ..

傅里叶级数展开matlab 实现 给个例子说明下:将函数 y=x*(x-pi)*(x-2*pi),在(0,2*pi)的范围内傅里叶级数展 开 syms x fx=x*(x-pi)*(x-2*pi); [an,bn,f]=fseries(fx,x,12,0,2*pi)%前12 项展开 latex(f)%将f 转换成latex 代码 an = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] bn = [ -12, 3/2, -4/9, 3/16, -12/125, 1/18, -12/343, 3/128,

-4/

243,

3/250,

-12/1331,

1/144]

f

=

12*sin(x)+3/2*sin(2*x)+4/9*sin(3*x)+3/16*sin(4*x)+12/125*sin(5*x)+1/18*sin(6 *x)+12/343*sin(7*x)+3/128*sin(8*x)+4/243*sin(9*x)+3/250*sin(10*x)+12/1331* sin(11*x)+1/144*sin(12*x) ans = 12\\,\\sin \\left( x \\right) +3/2\\,\\sin \\left( 2\\,x \\right) +4/9\\,\\sin \\left( 3\\,x \\right) +3/16\\,\\sin \\left( 4\\,x \\right) +{\\frac {12}{125}}\\,\\sin \\left( 5\\,x \\right) +1/18\\,\\sin \\left( 6\\,x \\right) +{\\frac {12}{343}}\\,\\sin \\left( 7\\,x \\right) +{\\frac {3}{128}}\\,\\sin \\left( 8\\,x \\right) +{\\frac {4}{243}}\\,\\sin \\left( 9\\,x \\right) +{\\frac {3}{250}}\\,\\sin \\left( 10\\,x \\right) +{\\frac {12}{1331}}\\,\\sin \\left( 11\\,x \\right) +{\\frac {1}{144}}\\,\\sin \\left( 12\\,x \\right) function [an,bn,f]=fseries(fx,x,n,a,b) %傅里叶级数展开 % %an 为fourier 余弦项系数 %bn 为fourier 正弦项系数 %f 为展开表达式 %f 为给定函数 %x 为自变量 %n 为展开系数 %a,b 为x 的区间,默认为[-pi,pi] if nargin==3 a=-pi; b=pi; end l=(b-a)/2; if a+b fx=subs(fx,x,x+l+a); end an=int(fx,x,-l,l)/l; bn=[]; f=an/2; for ii=1:n ann=int(fx*cos(ii*pi*x/l),x,-l,l)/l; bnn=int(fx*sin(ii*pi*x/l),x,-l,l)/l;

f=f+ann*cos(ii*pi*x/l)+bnn*sin(ii*pi*x/l);

an=[an,ann]; end

if

a+b

bn=[bn,bnn]; f=subs(f,x,x-l-a);

end %%%%%%%%%%%%%%%%%%%% 【原创】MATLAB 求解符号表达式数值的方法:subs 函数 首先说明一下,使用的函数是subs,如果你已经知道了,就没必要继续往下看 了,浪费时间,O(∩_∩)O 首先是调用格式: R = subs(S) R = subs(S, new) R = subs(S, old, new) 其中S 为符号表达式,默认的是变量x! 下面看几个例子,相信大家就是使用了! 例1: >> syms x; >> f=x^2; >> subs(f,2) ans = 4 例2:将表达式

.. ..

x^2+y^2 中x 取值为2 >> syms x y; >> f=x^2+y^2; >> subs(f,x,2) ans = y^2 + 4 例3: >> syms x y; >> f=x^2+y^2; >> subs(f,findsym(f),2) ans = y^2 + 4 其中findsym(f)为查找f 中所有的符号变量 例4:同时对两个或多个变量取值求解 >> syms a b; subs(cos(a) + sin(b), {a, b}, {sym('alpha'), 2}) ans = sin(2) + cos(alpha) 例5:带入数据的值也可以是数组形式 >> syms t a; >> subs(exp(a*t), 'a', -magic(2)) ans = [ 1/exp(t), 1/exp(3*t)] [ 1/exp(4*t), 1/exp(2*t)]

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务