【matlab基础知识代码】(九)傅里叶级数逼近&泰勒级数

文章介绍了如何在Matlab中利用`taylor`函数对给定函数进行泰勒级数展开,展示了不同阶次的展开结果,以及如何针对特定中心点展开。
摘要由CSDN通过智能技术生成

 

 

 

 

 

 

 

 

>> syms x; f=sin(x)/(x^2+4*x+3); y=taylor(f,x,'Order',9)
 
y =
 
- (386459*x^8)/918540 + (515273*x^7)/1224720 - (3067*x^6)/7290 + (4087*x^5)/9720 - (34*x^4)/81 + (23*x^3)/54 - (4*x^2)/9 + x/3

>> ezplot(f,[-1,1]), hold on; h=ezplot(y,[-1,1]); set(h,'Color','r'), hold off

 比较拟合效果

 在这个区间拟合效果比较好

>> F=taylor(f,x,2,'Order',9)
 
F =
 
sin(2)/15 - ((131623*cos(2))/35880468750 + (875225059*sin(2))/34445250000000)*(x - 2)^8 + (x - 2)*(cos(2)/15 - (8*sin(2))/225) - ((623*cos(2))/11390625 + (585671*sin(2))/2733750000)*(x - 2)^6 + ((262453*cos(2))/19136250000 + (397361*sin(2))/5125781250)*(x - 2)^7 - (x - 2)^2*((8*cos(2))/225 + (127*sin(2))/6750) + (x - 2)^3*((23*cos(2))/6750 + (628*sin(2))/50625) + (x - 2)^4*((28*cos(2))/50625 - (15697*sin(2))/6075000) + (x - 2)^5*((203*cos(2))/6075000 + (6277*sin(2))/11390625)
>> syms a;taylor(f,x,a,'Order',5)
 
ans =
 
sin(a)/(a^2 + 4*a + 3) - (cos(a)/(a^2 + 4*a + 3) - (sin(a)*(2*a + 4))/(a^2 + 4*a + 3)^2)*(a - x) - (a - x)^2*(sin(a)/(2*(a^2 + 4*a + 3)) + (cos(a)*(2*a + 4))/(a^2 + 4*a + 3)^2 - (sin(a)*((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3)) - (a - x)^3*((sin(a)*((2*a + 4)/(a^2 + 4*a + 3)^2 - (((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3))*(2*a + 4))/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3) - cos(a)/(6*(a^2 + 4*a + 3)) + (cos(a)*((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3) + (sin(a)*(2*a + 4))/(2*(a^2 + 4*a + 3)^2)) + (a - x)^4*(sin(a)/(24*(a^2 + 4*a + 3)) - (sin(a)*(((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3))/(a^2 + 4*a + 3) + ((2*a + 4)*((2*a + 4)/(a^2 + 4*a + 3)^2 - (((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3))*(2*a + 4))/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3) + (cos(a)*((2*a + 4)/(a^2 + 4*a + 3)^2 - (((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3))*(2*a + 4))/(a^2 + 4*a + 3)))/(a^2 + 4*a + 3) + (cos(a)*(2*a + 4))/(6*(a^2 + 4*a + 3)^2) - (sin(a)*((2*a + 4)^2/(a^2 + 4*a + 3)^2 - 1/(a^2 + 4*a + 3)))/(2*(a^2 + 4*a + 3)))

尝试不同的展开阶次,6,8,10...16 

>> syms x; y=sin(x); ezplot(y), hold on, for n=[6:2:16], p=taylor(y,x,'Order',n), ezplot(p), end
 
p =
 
x^5/120 - x^3/6 + x
 
 
p =
 
- x^7/5040 + x^5/120 - x^3/6 + x
 
 
p =
 
x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x
 
 
p =
 
- x^11/39916800 + x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x
 
 
p =
 
x^13/6227020800 - x^11/39916800 + x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x
 
 
p =
 
- x^15/1307674368000 + x^13/6227020800 - x^11/39916800 + x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x

 

 蓝色为原函数

 原函数,自变量列表,中心点列表,order,k

>> syms x y; f=(x^2-2*x)*exp(-x^2-y^2-x*y); F=taylor(f,[x,y],[0,0],'Order',8);
collect(F,x)%对x进行合并同类项
 
ans =
 
x^7/3 + (y + 1/2)*x^6 + (2*y^2 + y - 1)*x^5 + ((7*y^3)/3 + (3*y^2)/2 - 2*y - 1)*x^4 + (2*y^4 + y^3 - 3*y^2 - y + 2)*x^3 + (y^5 + y^4/2 - 2*y^3 - y^2 + 2*y + 1)*x^2 + (y^6/3 - y^4 + 2*y^2 - 2)*x

>> syms x y a; f=(x^2-2*x)*exp(-x^2-y^2-x*y); Z=taylor(f,[x,y],[1,a],'Order',3);F1=simplify(Z)
 
F1 =
 
-(exp(- a^2 - a - 1)*(4*a^4 - 4*a^3*x - 8*a^3*y + 8*a^3 + a^2*x^2 + 4*a^2*x*y - 12*a^2*x + 4*a^2*y^2 - 12*a^2*y + 14*a^2 + 4*a*x^2 + 10*a*x*y - 12*a*x + 4*a*y^2 - 12*a*y + 10*a + 2*x*y - 4*x - y^2 - 4*y + 6))/2

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值