c语言作业编程实现,数值分析作业(C语言编程实现).doc

数值分析作业(C语言编程实现)

#include

#include

double f(double x)

{

double ans;

ans=exp(x);

return ans;

}

void main()

{

double a=1,b=3,error=0.0001,t[20][20],h,c;

int i,j,k,m,n;

h=b-a;

t[0][0]=h*(f(a)+f(b))/2;

k=1;

while(1)

{

t[0][k]=0;

m=1;

for(j=0;j

m=m*2;

for(i=1;i<=m;i++)

t[0][k]=t[0][k]+h*f(a+(i-0.5)*h);

t[0][k]=(t[0][k]+t[0][k-1])/2;

for(j=1;j<=k;j++)

{c=1;

for(n=0;n

c=c*4;

t[j][k-j]=(c*t[j-1][k-j+1]-t[j-1][k-j])/(c-1);

}

if(fabs(t[k][0]-t[k-1][0])

{printf("\n积分结果 I ≈ %lf\n",t[k][0]);

break;

}

else

{h=h/2;

k++;

}

}

}

#include

#include

double f(double t)

{

double ans;

ans=pow(cos(t),1.0/3);

return ans;

}

void main()

{

double x=0,eslong=0.000001,x0;

int N=20,i;

printf("\n近似初值 x0 = %lf\n",x);

for(i=0;i

{

x0=x;

x=f(x);

printf(" x%d = %lf\n",i+1,x);

if(fabs(x-x0)

break;

}

if(fabs(x-x0)

printf("得到近似结果为 x ≈ %lf\n\n",x,i);

else

printf("迭代失败\n");

}

#include

#include

double a=0,b=1,x,y=0,h=0.1,k1,k2,k3,k4;

int i,N;

double f(double t,double s)

{

double ans;

ans=1+t*t;

return ans;

}

void main()

{

N=(b-a)/h;

x=a;

printf("\n 初值为 (x0,y0) = ( %.8f , %.8f )\n",x,y);

for(i=0;i

{

k1=f(x,y);

k2=f(x+h/2,y+h*k1/2);

k3=f(x+h/2,y+h*k2/2);

k4=f(x+h,y+h*k3);

y=y+h*(k1+2*(k2+k3)+k4)/6;

x=x+h;

printf(" 第%d次输出结果为 (x%d,y%d) = ( %.8f , %.8f )\n",i+1,i+1,i+1,x,y);

}

}

#include

void main()

{

double datax[4]={1.2,2.9,4.6,5.8},datay[10]={14.84,33.71,58.36,79.24},l[3],x=1.5,y;

int i,j;

y=0;

for(i=0;i<=3;i++)

{

l[i]=1;

for(j=0;j

l[i]=(x-datax[j])/(datax[i]-datax[j])*l[i];

for(j=i+1;j<=3;j++)

l[i]=(x-datax[j])/(datax[i]-datax[j])*l[i];

y=y+datay[i]*l[i];

}

printf("\n f(x)在 x = %f 处的近似值为: y = %f\n",x,y);

}

#include

void main()

{

double datay[9]={11.7,14.87,21.44,31.39,44.73,61.46,81.57,105.11,1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值