问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

三角函数小角度近似条件及误差分析

创作时间:
作者:
@小白创作中心

三角函数小角度近似条件及误差分析

引用
CSDN
1.
https://blog.csdn.net/chaser30/article/details/132257869

三角函数的小角度近似在物理学、工程学等领域有着广泛的应用。本文将探讨四个常见的三角函数近似公式及其成立条件,并通过MATLAB代码验证这些近似公式的误差范围。

小角度近似成立边界(误差小于1%)

$cos\theta \approx 1$,$\theta \leq 8.07^\circ$时成立

  • 对比结果图

  • MATLAB代码

clc;clear;close all
x = 0:0.01:15;
y_real = cosd(x);
y_hat = ones(1,size(x,2));
err = (y_hat - y_real)./y_real.*100;
index = find(err > 0.997 & err< 1.002);
figure;plot(x,err);hold on;plot(x(index),err(index),'ro');
hold on; plot(x,y_hat);title('1 - cos x');
ylabel('Relat error, %');xlabel('Angle,°');
figure;plot(x,y_real,'b-');hold on;
plot(x,y_hat,'r-');legend('y = cos x','y = 1','Location','best')
xlabel('Angle,°');ylabel('y');title('y = cosx')

$tan\theta \approx \theta$,$\theta \leq 9.91^\circ$时成立

  • 对比结果图

  • MATLAB代码

clc;clear;close all
x = 0:0.01:45;
y_real = tand(x);
y_hat = deg2rad(x);
figure;plot(x,y_real,'b-');hold on;
plot(x,y_hat,'r-');legend('y = tan x','y = x(rad)','Location','best')
xlabel('Angle,°');ylabel('y');title('y = tanx')
err = (y_real - y_hat)./y_real.*100;
index = find(err > 0.998 & err< 1.002);
figure;plot(x,err);hold on;plot(x(index),err(index),'ro');
hold on; plot(x,ones(1,size(x,2)));title('tan x - x');
ylabel('Relat error, %');xlabel('Angle,°');

$sin\theta \approx \theta$,$\theta \leq 13.99^\circ$时成立

  • 对比结果图

  • MATLAB代码

clc;clear;close all
x = 0:0.01:90;
y_real = sind(x);
y_hat = deg2rad(x);
figure;plot(x,y_real,'b-');hold on;
plot(x,y_hat,'r-');legend('y = tan x','y = x(rad)','Location','best')
xlabel('Angle,°');ylabel('y');title('y = sinx')
err = (y_hat - y_real)./y_real.*100;
index = find(err > 0.998 & err< 1.002);
figure;plot(x,err);hold on;plot(x(index),err(index),'ro');
hold on; plot(x,ones(1,size(x,2)));title('x - sinx');
ylabel('Relat error, %');xlabel('Angle,°');

$cos\theta \approx 1 - \frac{\theta^2}{2}$,$\theta \leq 37.93^\circ$时成立

  • 对比结果图

  • MATLAB代码

clc;clear;close all
x = 0:0.01:90;
y_real = cosd(x);
y_hat = 1 - deg2rad(x).^2./2;
figure;plot(x,y_real,'b-');hold on;
plot(x,y_hat,'r-');
legend('y = cos x','y = 1-x^2/2(rad)','Location','best')
xlabel('Angle,°');ylabel('y');title('y = cosx')
err = abs((y_hat - y_real)./y_real.*100);
index = find(err > 0.999 & err< 1.002);
figure;plot(x,err);hold on;plot(x(index),err(index),'ro');
hold on; plot(x,ones(1,size(x,2)));title('cosx(°) - (1-x^2/2(rad))');
ylabel('Relat error, %');xlabel('Angle,°');
ylim([0,3])
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号