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;
}
  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值