⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex534.m

📁 MATLAB及其在理工课程中的应用指南,西安电子科技大学出版社出版 陈怀琛编著
💻 M
字号:
%《MATLAB及其在理工课程中的应用指南》第五章例5-3-4程序
% 任意函数的泰勒级数展开
% 西安电子科技大学出版社出版  陈怀琛编著 1999年10月初版,2004年11月第二版
%
fxs=input('输入y=f(x)的表达式(书上为cos(x))','s');	% 输入原始条件,fxs是字符串
K=input('输入泰勒级数的展开阶数K=(书上为5) ');
a=input('展开的位置x0= (书上为0.5) ');
b=input('展开的区间半宽度b= (书上为2) ');
x=linspace(a-b,a+b);					% 构成自变量数组,确定其长度和步长
lx=length(x);dx=2*b/(lx-1);
y=eval(fxs);								% 求出y的准确值
subplot(1,2,1),plot(x,y,'.'),hold on	% y的准确曲线用点线绘出
% 求出a点一阶导数,注意求导后数组长度减小一
Dy=diff(y)/dx;Dya(1)=Dy(round((lx-1)/2));	
yt(1,:)=y(round(lx/2))+Dya(1)*(x-a); 	%求y的一阶泰勒展开,绘图
plot(x,yt(1,:))
set(gcf,'color','w')                                % 置图形背景色为白色
for k=2:K
   Dy=diff(y,k)/(dx^k);Dya(k)=Dy(round((lx-k)/2));	% 求出a点k阶导数
   yt(k,:)=yt(k-1,:)+Dya(k)/prod(1:k)*(x-a).^k;	% 求出y的k阶展开
   plot(x,yt(k,:)), 						% 绘图
   e(k,:)=y-yt(k,:);						% 求出yt的误差
end
title([fxs,'的各阶泰勒级数曲线']),			% 注意如何组成标注的字符串
grid, hold off, subplot(1,2,2)						
for k=1:K  plot(x,e(k,:)),hold on,end		% 绘制误差曲线
title([fxs,'的各阶泰勒级数误差']),grid, hold off

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -