test.asv

来自「This project contains a C algorithm for 」· ASV 代码 · 共 43 行

ASV
43
字号
close all
clc
clear all    

Simulari=10; % efectuam mai multe simulari pt a avea un grafic mai relevant cand comparam rezultatele.

N=16;   %ordinul polinomului, multiplu de 4
for i=1:Simulari
    x(i)=-1+2*rand(1); %genereaza o matrice de 1X1 elemente aleatoare din intervalul nr fractionare (intre -1 si 1)
end

fid=fopen('..\x.dat','w','b');
    fwrite(fid,x.*2^15,'int16');      %introducem x in fisier, in format binar, pe 16 biti
    fclose(fid);
    
a=-1+2*rand(1,N); %genereaza o matrice de 1XN elemente cu valori aleatoare din intervalul nr fractionare(intre -1 si 1)    
fid=fopen('..\a.dat','w','b');
fwrite(fid,a.*2^15,'int16');       %introducem vectorul a in fisier, in format binar, pe 16 biti
fclose(fid);

for i=0:Simulari
   for k=0:(N-1)    
       P_ref(i)=0;
      P_ref(i)=P_ref(i) + a(k+1)*(x(i)^k);    %calculam valoarea de referinta a functiei cerute(polinomiala)
  end
end


pause

fid=fopen('..\p.dat','r','b');
P=fread(fid,Simulari,'int32');
fclose(fid);
P=P/(2^31);

n=0:Simulari;
figure(1), plot(n,P,'x',n,P_ref,'o'), grid on
figure(2), plot(n,P_ref-P'), grid on

% Erorile aparute sunt din cauza erorilor ce apar in C din cauza preciziei
% mai mici de reprezentare, precum si din trunchierile ce se fac la
% inmultiri si la scrierea/citirea din fisiere.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?