我不知道如何在MATLAB中制作一个函数来解决这个问题。我对MATLAB完全不熟悉,我真的不知道从哪里开始。我知道如何编写一个函数来计算阶乘,但我无法弄清楚如何使用循环将每个下一个术语添加到我想要的术语数量..一些帮助将不胜感激。
答案 0 :(得分:1)
你可以试试这个
syms x
Y = sin(x);
Y_1 = taylor(Y,1);
Taylor将在第一个系列中扩展Y_1。如果您想要扩展订单n
,只需输入taylor(Y,n)
如果您想在x0
点评估泰勒系列,请调用
subs(Y_1,x0)
答案 1 :(得分:0)
自己找到答案..请注意sinx和sin(x)之间存在差异
function [sinx, error] = sinx_approx(x)
% approximates the value of sin(x), the approximation is more accurate as
% the number of terms selected is increased.
n= input('Up to how many terms would you like to evaluate?');
sinx=0;
for i=1:1:n
sinx=(-1)^(i+1) * x.^(2*i-1)/ factorial(2*i-1)+ sinx;
error=((sin(x)-sinx)/sin(x))*100;
display(sinx);
display(error);
end
end
%% Factorial是一个内置命令