2014-02-15 72 views
1

我是編程新手,嘗試使用數組編程多項式的導數時遇到問題。以下是我必須得到用戶的輸入。在java中使用數組尋找多項式的導數

Scanner sc=new Scanner(System.in); 
System.out.print("Enter the degree: "); 
int degree = sc.nextInt(); 
System.out.print("Enter "+(degree+1)+" coefficients: "); 
double[] C = new double[degree+1]; 
for(int i=0; i<C.length;i++) { 
    C[i]=sc.nextDouble(); 
} 
+10

你能在紙上做手工?我的意思是,你在數學或編程方面遇到麻煩嗎? – csmckelvey

+0

因此,現在循環遍歷您讀入的雙數組並計算導數多項式的係數。 –

+0

這不是一個答案(因爲問題不清楚),但你可能有興趣閱讀http://en.wikipedia.org/wiki/Horner%27s_method – Marco13

回答

2

讓我們假設該陣列C包含降序度的順序(例如,對於f(x) = C[0]*x^n + ... + C[n-1]*x + C[n]

然後D是您的衍生物的陣列的n次多項式的係數:

double D[] = new double[C.length-1]; 
for(int i = 0; i < C.length-1; i++) 
    D[i] = C[i]*(C.length-i-1); 
+0

實際上你可以做到這一點 –

0

假設你的多項式是這樣的,

F(X)= C [0] * X^N + C [1] * X ^(N-1)...... C [n]的

推導後,變得

F'(X)= C [0] *(N)的x ^(N-1)+ C [1](N-1)* X ^(N-2) + ........... + 0 * C [N]

Scanner sc=new Scanner(System.in); 
System.out.print("Enter the degree: "); 

int degree = sc.nextInt(); 
System.out.print("Enter "+(degree+1)+" coefficients: "); 

double[] C = new double[degree+1]; 
for(int i=0; i<C.length;i++) { 
    C[i]=sc.nextDouble(); 
} 

double derivative[] = new double[C.length-1]; 
for(int i=0;i<derivative.length;i++){ 
    derivative[i] = C[i]*(C.length - 1 -i); 
}