#include "ADDS_21161_EzKit.h" #include #include #include float dm sinus_wzor[1501]; float dm sinus_taylor[1501]; float dm sinus_taylor_opt[1501]; float dm blad[1501]; float dm blad_opt[1501]; int dm wsp[8]={0, 0, 0, 0, 0, 0, 0,0}; float dm wspb[8]={0, 0, 0, 0, 0, 0, 0,0}; float x,a,b,c,d,e,a1,b1,c1,d1,e1,f1; int i,j=0; int n=5; // z zakresu 1 do 11 int silnia(int n) { int i=2, s=1; while( i < n+1 ) { s = s * i; i = i + 1; } return s; } void main() { a1=silnia(1); b1=silnia(3); c1=silnia(5); d1=silnia(7); e1=silnia(9); f1=silnia(11); a=1.0/a1; b=1.0/b1; c=1.0/c1; d=1.0/d1; e=1.0/e1; for (i = 0; i<=1500 ; i++) { x = i*0.001; sinus_wzor[i] = sinf(x); sinus_taylor[i] = 0; for (j = 1; j<=n ; j++) { sinus_taylor[i] += ((j % 2) ? 1 : -1) * (pow(x,j*2-1))/silnia(j*2-1); } blad[i]=fabs(sinus_wzor[i]-sinus_taylor[i]); if (n==2) { sinus_taylor_opt[i]=x-b*pow(x,3)+(20.0*pow(x,3)-5.0*x)/(16.0*c1); blad_opt[i]=fabs(sinus_wzor[i]-sinus_taylor_opt[i]); } else if (n==3) { sinus_taylor_opt[i]=x-b*pow(x,3)+c*pow(x,5)-(112.0*pow(x,5)-56.0*pow(x,3)+7.0*x)/(64.0*d1); blad_opt[i]=fabs(sinus_wzor[i]-sinus_taylor_opt[i]); } else if (n==4) { sinus_taylor_opt[i]=x-b*pow(x,3)+c*pow(x,5)-d*pow(x,7)+(576.0*pow(x,7)-432.0*pow(x,5)+120.0*pow(x,3)-9.0*x)/(256.0*e1); blad_opt[i]=fabs(sinus_wzor[i]-sinus_taylor_opt[i]); } else if (n==5) { sinus_taylor_opt[i]=x-b*pow(x,3)+c*pow(x,5)-d*pow(x,7)+e*pow(x,9)-(2816.0*pow(x,9)-2816*pow(x,7)+1232.0*pow(x,5)-220.0*pow(x,3)+11.0*x)/(1024.0*f1); blad_opt[i]=fabs(sinus_wzor[i]-sinus_taylor_opt[i]); } } }