多項式全家桶(五):多項式三角函數,反三角函數

       \ \ \ \ \ \ \,說好了,這個作用不大,主要是……過一下板子,趕時間的小朋友可以右上角叉叉了……


1. 多項式SinSin & 多項式CosCos

       \ \ \ \ \ \ \,P5264 【模板】多項式三角函數

       \ \ \ \ \ \ \,歐拉公式:

eix=cosx+isinxe^{ix}=\cos x+i\sin x

       \ \ \ \ \ \ \,直接推公式:

eix=cosxisinxe^{-ix}=\cos x-i\sin x

       \ \ \ \ \ \ \,加減一下得到:

2cosx=eix+eix2\cos x=e^{ix}+e^{-ix}

2isinx=eixeix2i\sin x=e^{ix}-e^{-ix}

       \ \ \ \ \ \ \,所以有:

cosx=eix+eixi\cos x=\frac{e^{ix}+e^{-ix}}{i}

sinx=eixeix2i\sin x=\frac{e^{ix}-e^{-ix}}{2i}

       \ \ \ \ \ \ \,用多項式AA替換掉 xx 即可:

cos(A)=exp(iA)+exp(iA)i\cos (A)=\frac{exp(i\cdot A)+exp(-i\cdot A)}{i}

sin(A)=exp(iA)exp(iA)2i\sin (A)=\frac{exp(i\cdot A)-exp(-i\cdot A)}{2i}

       \ \ \ \ \ \ \,多項式卷單項式,expexp,求逆,多項式卷多項式就好了,現在問題是 ii 怎麼搞:

       \ \ \ \ \ \ \,已知 i2=1i^2=-1,所以說 ii 既是 mod1mod-1%mod\%mod意義下的二次剩餘,具體怎麼算二次剩餘呢,可以看這裏,顯然可以預處理出來,前置和目錄裏面已經說的有了,既爲imgimg

inline Polynomial Sin(const Polynomial &a){
	return (Exponential(a*img)-Exponential(a*(mod-img)))*Inv(2ll*img%mod);
}
inline Polynomial Cos(const Polynomial &a){
	return (Exponential(a*img)+Exponential(a*(mod-img)))*Inv(2);
}

2. 多項式AsinAsin & 多項式AtanAtan

       \ \ \ \ \ \ \,P5265 【模板】多項式反三角函數

       \ \ \ \ \ \ \,這個東西比較麻煩啦,直接給公式咯,具體證明可以看教材:

Asin(A)=A1A2dxAsin(A)=\int \frac{A'}{\sqrt{1-A^2}}dx

Atan(A)=A1+A2dxAtan(A)=\int \frac{A'}{1+A^2}dx

inline Polynomial Asin(const Polynomial &a){
	Polynomial As_a=a*a;
  	As_a.resize(a.size());
  	for(int i=0;i<a.size();i++)As_a[i]=(mod-As_a[i]);
	As_a[0]=(1+As_a[0])%mod;
  	return Integral(Derivation(a)*Inverse(Kth_root(As_a,2)));
}
inline Polynomial Atan(const Polynomial &a){
	Polynomial At_a=a*a;
  	At_a.resize(a.size());At_a[0]=(1+At_a[0])%mod;
  	return Integral(Derivation(a)*Inverse(At_a));
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章