在matlab下三角函数怎么求解
1个回答
展开全部
%%下面方法比较笨,但是可行。
%%先看一下为什么你解不出来
%%把你的k*1.57e-6看成一个整体x
%%变成求解tan(x)./x-1/0.2159==0
x=-2:0.0001:2;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
title('[-2,2]')
figure
x=-1.5:0.0001:1.5;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
title('[-1.5,1.5]')
%%从上面两张图可以看出
%%第一幅图中由于存在-1.57(-pi/2)时,tan变成无穷大
%%这里精确解我也不知道怎么取到就是了。
%%不过放大第二幅图(放大那个交点),解应当在-1.420到-1.419之间
figure
x=-1.420:0.0000001:-1.419;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
for i=1:length(x)-1
if (y(i)*y(i+1)<0)
break;
end
end
vpa(x(i),10)
得到结果为
-1.419899200
对称性还可以得到1.419899200
你可以逐步求精,上面只是取到小数点后7位,你还可以再往下做,效率不是很高就是了。
当然上面得到的是x
你的k应当是
k=x(i)/1.57e-6;
vpa(k,10)
tan(k*(1.57E-6))./(k*(1.57E-6))-1/0.2159
另外-pi/2以外的区域,还有根,你可以类同地处理
%%先看一下为什么你解不出来
%%把你的k*1.57e-6看成一个整体x
%%变成求解tan(x)./x-1/0.2159==0
x=-2:0.0001:2;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
title('[-2,2]')
figure
x=-1.5:0.0001:1.5;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
title('[-1.5,1.5]')
%%从上面两张图可以看出
%%第一幅图中由于存在-1.57(-pi/2)时,tan变成无穷大
%%这里精确解我也不知道怎么取到就是了。
%%不过放大第二幅图(放大那个交点),解应当在-1.420到-1.419之间
figure
x=-1.420:0.0000001:-1.419;
y=tan(x)./x-1/0.2159;
plot(x,y,x,zeros(size(x)))
for i=1:length(x)-1
if (y(i)*y(i+1)<0)
break;
end
end
vpa(x(i),10)
得到结果为
-1.419899200
对称性还可以得到1.419899200
你可以逐步求精,上面只是取到小数点后7位,你还可以再往下做,效率不是很高就是了。
当然上面得到的是x
你的k应当是
k=x(i)/1.57e-6;
vpa(k,10)
tan(k*(1.57E-6))./(k*(1.57E-6))-1/0.2159
另外-pi/2以外的区域,还有根,你可以类同地处理
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询