第二题怎么做啊 100
展开全部
在C程序设计语言中,math.h中提供了double exp(double x)用于求以e为底的x次方值。
C语言程序:
#include <stdio.h>
#include <math.h>
void main()
{
double x, y;
printf("x = ");
scanf("%lf", &x);
if(x > 0)
{
y = exp(-x);
}
else if(x < 0)
{
y = -1 * exp(x);
}
else
{
y = 1;
}
printf("y = %lf\n", y);
}
C语言程序:
#include <stdio.h>
#include <math.h>
void main()
{
double x, y;
printf("x = ");
scanf("%lf", &x);
if(x > 0)
{
y = exp(-x);
}
else if(x < 0)
{
y = -1 * exp(x);
}
else
{
y = 1;
}
printf("y = %lf\n", y);
}
展开全部
这道题最主要的是如何求e的x次方。原理是泰勒展开式,别问我怎么出来的,这是数学家推出来的,我们就能看懂就行。 把e^x在x=0自展开得
f(x)=e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+Rn(x)
=1+x+x^2/2!+x^3/3!+...+x^n/n!+Rn(x)
写一个子函数,它可以递归实现加和,每次要做的就是计算x的n次方除以n的阶乘。返回计算结果和x的(n+1)次方除以n加一的阶乘。直到 x^n/n!的值小于1e-7就是小于10的-7次方,就可以不再往后加,只返回数值。函数要有两个参数,一个x,一个n,都是双精度吧,毕竟用了除法,然后,你看着办!
f(x)=e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+Rn(x)
=1+x+x^2/2!+x^3/3!+...+x^n/n!+Rn(x)
写一个子函数,它可以递归实现加和,每次要做的就是计算x的n次方除以n的阶乘。返回计算结果和x的(n+1)次方除以n加一的阶乘。直到 x^n/n!的值小于1e-7就是小于10的-7次方,就可以不再往后加,只返回数值。函数要有两个参数,一个x,一个n,都是双精度吧,毕竟用了除法,然后,你看着办!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
#include "math.h"
int main(int argc,char *argv[]){
double x,e=2.7182818284590452;
printf("Input x(R:)...\nx=");
scanf("%lf",&x);
printf("y = %g\n",x>0 ? pow(e,-x) : x<0 ? pow(-e,x) : 1.0);
return 0;
}
#include "math.h"
int main(int argc,char *argv[]){
double x,e=2.7182818284590452;
printf("Input x(R:)...\nx=");
scanf("%lf",&x);
printf("y = %g\n",x>0 ? pow(e,-x) : x<0 ? pow(-e,x) : 1.0);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询