1. 程式人生 > >GSL多項式求根

GSL多項式求根

#include <stdio.h>
#include <gsl/gsl_poly.h>

#pragma comment(lib, "libgsl_d.lib")
#pragma comment(lib, "libgslcblas_d.lib")

int
main (void)
{
  int i;
  /* coefficients of P(x) =  -1 + x^5  */
  double a[6] = { -1, 0, 0, 0, 0, 1 };  
  double z[10];

  gsl_poly_complex_workspace * w 
      = gsl_poly_complex_workspace_alloc (6);
  
  gsl_poly_complex_solve (a, 6, w, z);

  gsl_poly_complex_workspace_free (w);

  for (i = 0; i < 5; i++)
    {
      printf ("z%d = %+.18f %+.18f\n", 
              i, z[2*i], z[2*i+1]);
    }

  return 0;
}

相關推薦

GSL多項式

#include <stdio.h> #include <gsl/gsl_poly.h> #pragma comment(lib, "libgsl_d.lib") #pragma comment(lib, "libgslcblas_d.lib")

MATLAB 7.0 學習入門 -- (練習三 多項式

     Matlab中使用行向量表示多項式。比如  可以表示為 行矩陣 A = [ 12, 0.21, 11.897, 3.77 ]。即按照x的降冪來表示。從x的n次冪到0次冪(常數項)。     為了求根,我們在Matlab 7.0中輸入x的冪的行向量,然後通過root

數值分析之牛頓法多項式

很樸素的方法,如果在區間[a,b]內有根,那麼f(a)*f(b)<0 不難得到以下程式碼: #include <iostream> #include <memory> using namespace std; double f(int m

【BZOJ3625】【codeforces438E】小朋友和二叉樹 生成函數+多項式逆+多項式

== reverse turn chang 一個 函數 span 化簡 amp 首先,我們構造一個函數$G(x)$,若存在$k∈C$,則$[x^k]G(x)=1$。 不妨設$F(x)$為最終答案的生成函數,則$[x^n]F(x)$即為權值為$n$的神犇二叉樹個數

牛頓法多項式

C++程式碼 #include <iostream> #include <cstdio> using namespace std; const int maxn = 105; int a[maxn]; int n, t; int main() {

多項式逆與多項式

閒著沒事幹研究些黑科技(霧) 多項式求逆 求 A(x)*B(x)==1(mod x^n) 其中n為A(x),B(x)的度的較大值 已知A(x)求B(x),B(x)=A(x)^(-1)(mod x^n) 假設n=1,則B(x)=A(x)常數項在mod

[BZOJ3625][Codeforces Round #250][多項式逆][多項式]小朋友和二叉樹

模板題 題解 #include <cstdio> #include <iostream> #include <algorithm> #include <string> #include <cstrin

[bzoj 3625][Codeforces Round #250]小朋友和二叉樹 NTT多項式逆+多項式

Description 我們的小朋友很喜歡電腦科學,而且尤其喜歡二叉樹。 考慮一個含有n個互異正整數的序列c[1],c[2],…,c[n]。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合{c[1],c[2],…,c[n]}中,我們的小朋友就會將其稱作

【BZOJ3625】【CF438E】小朋友和二叉樹(生成函式,多項式逆,多項式,NTT)

Description 我們的小朋友很喜歡電腦科學,而且尤其喜歡二叉樹。 考慮一個含有n個互異正整數的序列c[1],c[2],...,c[n]。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合{c[1],c[2],...,c[n]}中,我們的小朋友就會將其稱作神犇的。

bzoj3625(NTT+多項式逆+多項式

這題是我搜NTT搜到的,當時就看到“多項式開根”這樣的標題,於是找到了L-leader的部落格,補了下冪級數的東西,用兩節數學課學會了。 題面 我再看題解,好像都是教我怎麼開方,求逆的,然後又拖了幾天。終於昨晚睡不著,突然就想到了。。。 先介紹一下生成函式

【BZOJ3625】【CF438E】小朋友和二叉樹 NTT 生成函式 多項式 多項式

題目大意   考慮一個含有n個互異正整數的序列c1,c2,…,cn。如果一棵帶點權的有根二叉樹滿足其所有頂點的權值都在集合{c1,c2,…,cn}中,我們的小朋友就會將其稱作神犇的。並且他認為,一棵帶點權的樹的權值,是其所有頂點權值的總和。   給出一個整數

[Codeforces438E]The Child and Binary Tree(多項式+多項式逆)

=== === 這裡放傳送門 === === 題解 這道題的意思是給定一個集合,求有多少形態不同的二叉樹滿足每個點的權值都屬於這個集合並且總點權等於i。 設F(x)表示總點權等於x的的二叉樹數目,那麼由當前已經有的二叉樹構造更大的二叉樹就是先把

[Notes][多項式]雜記 · 多項式演算法—多項式多項式取模 多項式

多項式 由若干個單項式相加組成的代數式叫做多項式 形如:f(x)=∑ni=0aixif(x)=∑i=0naixi, degf(x)deg⁡f(x)稱為ff的度,是f(x)f(x)最高次項的次數。 生成函式 形如∑∞i=0aixi∑i=0∞aixi

【bzoj3625】【CF438E/round250E】小朋友和二叉樹【FFT/NTT】【多項式逆】【多項式

題目連結 題解:我們設f[i]表示權值為i的二叉樹的數目,g[i]為i這個值是否在C集合中出現。則很容易得到f[x]=∑xi−1g[i]∑x−ij=0f[j]f[x−i−j]f[x]=∑i−1xg[i]∑j=0x−if[j]f[x−i−j],且f[0]=1f[

7-29 二分法多項式 (20 分)

二分法求函式根的原理為:如果連續函式f(x)在區間[a,b]的兩個端點取值異號,即f(a)f(b)<0,則它在這個區間內至少存在1個根r,即f(r)=0。 二分法的步驟為: 檢查區間長度,如果小於給定閾值,則停止,輸出區間中點(a+b)/2;否則 如果f(a)f(b)&

matlab基礎學習(2)之多項式

在matlab中求多項式的根非常的簡單,只要使用matlab內建的roots函式即可。 例如:對於多項式 p(x) = x^5 + 5 * x +7 使用matlab求其根的程式碼程式碼: %多

JAVA-5-18 二分法多項式 (20分)

二分法求函式根的原理為:如果連續函式f(x)f(x)在區間[a, b][a,b]的兩個端點取值異號,即f(a)f(b)<0f(a)f(b)<0,則它在這個區間內至少存在1個根rr,即f(r)=0f(r)=0。 二分法的步驟為: 檢查區間長度,如果小於給定閾

Luogu5205 【模板】多項式(NTT+多項式逆)

get def ostream open clas lld https 數組 %d   https://www.cnblogs.com/HocRiser/p/8207295.html 安利!   寫NTT把i<<=1寫成了i<<=2,又調了一年。發現

4-2 多項式值 (15分)

程序 for content scan open %d 接口 tex sym 本題要求實現一個函數,計算階數為n,系數為a[0] ... a[n]的多項式f(x)=\sum_{i=0}^{n}(a[i]\times x^i)f(x)=∑?i=0?n??(a[i]×x?i??

PTA 數據結構 一元多項式導 (僅供參考)

僅供參考 struct -o sca scanf scan -1 can 數組 請勿粘貼 輸入格式: 以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過1000的整數)。數字間以空格分隔。 輸出格式: 以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格