📄 testatanmod.m
字号:
%% test arctan/mod
% y0/x0<1 as for x0=1, so y0<1
% z0=0
clear all
clc
x0=1;z0=0;
y0=linspace(0,1,100);
mode=1;dv_n='y';
% function [xn,gain,Fs,Ds,zn,yn]
% =cordic(x0,y0,z0,mode,dv_n,ROM,wordwidth,acc)
n=-(0:64)';ROM=[-n,atan(2.^n)];
for i=1:length(y0)
[xn(i),An(i),F,D,zn(i),yn(i)]...
=cordic(1,y0(i),z0,1,'y',ROM);
Fs(1:length(F),i)=F;
Ds(1:length(D),i)=D;
%sprintf('theta=%f',theta(i))
end
arctan=zn;
mod=xn./An;
%
true_atan=atan(y0);
true_mod=sqrt(1+y0.^2);
error_atan=true_atan-arctan;
error_mod=true_mod-mod;
%plot
figure(2)
hold on
plot(y0,arctan,'LineWidth',2,'Color','g')
plot(y0,true_atan,'y')
plot(y0,mod,'LineWidth',2,'Color','g')
plot(y0,true_mod,'y')
plot(y0,error_atan,'r')
plot(y0,error_mod,'m')
hold off
legend('true atan','arctan',...
'true mod','mod',...
'error atan','error mod')
xlabel('y0'),ylabel('values')
save F2.dat Fs -ascii
save D2.dat Ds -ascii
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -