C語言 實現多元函數求導

源文件如下:

#include<stdio.h>

#include<math.h>      
void qiudao(float *a,int n)                          //求導的各個係數的值,s爲求導的次數
{   
int i;
n--;
for(i=0;i<=n;i++)
a[i]=a[i+1]*(i+1);

}
void display_daoshu(float *a,int n,int s)            //顯示S次求導後的函數
{   int i;
    printf("%d次求導結果爲:",s);
for(i=n;i>=0;i--)
{
if(*(a+i)==0){}                              //當係數爲0時,不操作if(*(a+i)==1)
else
{
 if(*(a+i)==1)                              //當係數爲1時,顯示格式爲“X^次數+”
 {  
 if(i==0||i==1)
  {
           if(i==0)
{
          printf("%g+",*(a+i));             //當次數爲0時,顯示格式爲“係數+”
}
       if(i==1)
{
   printf("%g*X+",*(a+i));           //當次數爲1時,顯示格式爲“係數*X+”
}
  }
 else
printf("X^%d+",i);
 }
   else
{
           if(i==0||i==1)
  {
           if(i==0)
{
          printf("%g+",*(a+i));             //當次數爲0時,顯示格式爲“係數+”
}
       if(i==1)
{
   printf("%g*X+",*(a+i));           //當次數爲1時,顯示格式爲“係數*X+”
}
  }

else
{
   printf("%g*X^%d+",*(a+i),i);              //當次數不爲0或1是,顯示格式爲“係數*X^次數+”
}
}
}
}
printf("\b\t\t");                                 //去掉多餘的“+”符號,

}


int main()
{
double x=1.5,y;   //y=x-f(x)/f'(x)
int n,i;          //次數最大的值
int s=0;          //求導次數
float a[100];
system("color 0c");


printf("請輸入最大次數的值:");
scanf("%d",&n);


for(i=0;i<=n;i++)
{
printf("請輸入次數爲%d的係數:",i);
scanf("%f",a+i);
}
   printf("\n\t\t原函數爲/");
   display_daoshu(a,n,s);
   printf("\n\n");


printf("請輸入求導的次數s:");
scanf("%d",&s);


for(i=0;i<s;i++)
{
     qiudao(a,n,s);
--n;
}


     printf("\n\t\t");
     display_daoshu(a,n,s);
return 0;
}
發佈了23 篇原創文章 · 獲贊 11 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章