作业帮 > 综合 > 作业

怎么用matlab画tan(x) 大约值

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/28 01:56:28
怎么用matlab画tan(x) 大约值


画前六位 n=0,1,2,3,4,5  但是我画出来怎么是一条直线?大神帮我看看程序

a问 我的方程是:
function T=tan_taylor(x,n)
T=(-1)^n*x.^(2*n+1)/factorial(2*n+1)/((-1)^n*x.^(2*n)/factorial(2*n));

b问我的程序是:
clc
clear
x=linspace(-pi,pi,100);

T1=tan_taylor(x,0);
T2=tan_taylor(x,1);
T3=tan_taylor(x,2);
T4=tan_taylor(x,3);
T5=tan_taylor(x,4);
T6=tan_taylor(x,5);
Tan_Approx=T1+T2+T3+T4+T5+T6;

plot(x,tan(x),x,Tan_Approx);
画了半天Tan_approx都是一条直线 跟tan(x)实际值完全不接近
你题目理解错了,计算nth值是计算图片中那个式子取给定n时的tan(x)值,而不是直接sin(x)的第n项除以cos(x)的第n项.
真正代码如下:
%% 函数
function T = tan_taylor(x,n)
k = 0:n;
L = length(x);
T = zeros(L,1);
for i = 1:L
T(i) = sum((-1).^k.*x(i).^(2*k+1)./factorial(2*k+1)) ...
/sum((-1).^k.*x(i).^(2*k)./factorial(2*k));
end
% 主程序
x = linspace(-pi,pi,100);
plot(x,ff(x,6))
再问: 我明白你的意思了 可是不能用太高级的算法 不能用loop 只能用简单的
再答: 算法?这里根本就没涉及什么算法啊,那个循环只是为了遍历输入向量。
对了,我上面代码plot(x, ff(x, 6))这个ff应改成tan_taylor