Matlab在高等数学中的应用4、 编写演示任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.(建议采用泰勒级数展开表达式编程计算,然后用符号函数taylor验证)
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 19:08:45
![Matlab在高等数学中的应用4、 编写演示任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.(建议采用泰勒级数展开表达式编程计算,然后用符号函数taylor验证)](/uploads/image/z/9501928-16-8.jpg?t=Matlab%E5%9C%A8%E9%AB%98%E7%AD%89%E6%95%B0%E5%AD%A6%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A84%E3%80%81+%E7%BC%96%E5%86%99%E6%BC%94%E7%A4%BA%E4%BB%BB%E6%84%8F%E5%87%BD%E6%95%B0%E5%B1%95%E5%BC%80%E4%B8%BA%E5%90%84%E9%98%B6%E6%B3%B0%E5%8B%92%E7%BA%A7%E6%95%B0%E7%9A%84%E7%A8%8B%E5%BA%8F%2C%E5%B9%B6%E6%98%BE%E7%A4%BA%E5%85%B6%E8%AF%AF%E5%B7%AE%E6%9B%B2%E7%BA%BF.%EF%BC%88%E5%BB%BA%E8%AE%AE%E9%87%87%E7%94%A8%E6%B3%B0%E5%8B%92%E7%BA%A7%E6%95%B0%E5%B1%95%E5%BC%80%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%BC%96%E7%A8%8B%E8%AE%A1%E7%AE%97%2C%E7%84%B6%E5%90%8E%E7%94%A8%E7%AC%A6%E5%8F%B7%E5%87%BD%E6%95%B0taylor%E9%AA%8C%E8%AF%81%EF%BC%89)
Matlab在高等数学中的应用4、 编写演示任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.(建议采用泰勒级数展开表达式编程计算,然后用符号函数taylor验证)
Matlab在高等数学中的应用
4、 编写演示任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.(建议采用泰勒级数展开表达式编程计算,然后用符号函数taylor验证)
Matlab在高等数学中的应用4、 编写演示任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.(建议采用泰勒级数展开表达式编程计算,然后用符号函数taylor验证)
对于任意函数y=f(x),其泰勒展开式为
其中 为余项,也就是泰勒展开式的误差.MATLAB语句为
>>fxs=input('输入y=f(x)的表达式','s'); %输入原始条件,fxs是字符串
>>K=input('输入泰勒级数展开式的阶K');
>>a=input('展开的位置a=');
>>b=input('展开的区间半宽度b=');
>>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点的一阶导数,注意求导后数组长度减少1
>>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,:))
>>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
执行此程序,输入fxs=cos(x),K=5,a=0.5,b=2,所得曲线见图3.2(又变为误差曲线).读者可以改变其坐标系范围以仔细观测最关心的部分,也可输入其他函数做验算,注意输入函数应符合元素群运算规则.