数值分析计算方法程序汇总
(一)秦九韶法
例:已知p=2x2-3x-4,求x=1时,p=?
程序:
#include "stdio.h"
void main()
{
float a[50],b,x;
int n,i,k;
scanf("%d%f",&n,&x);
for(i=0;i<=n;i++)
scanf("%f",&a[i]);
b=a[0];
k=1;
while(k<=n)
{
b=x*b+a[k];
k=k+1;
}
printf("%f",b);
}
结果:-5.000000
(二)复化中矩形公式
例:求 0··+g(ym)]h的值(已知g(y)=yn/2-1e-y/2 ,n=11,h=0.1,g(y)dy=[g(y1)+g(y2)+·
ym=20)。
程序:
#include "stdio.h"
#include <math.h>
main()
{
double y,h,s;
int n,i;
n=11;h=0.1;
s=0;y=0;
for(i=0;i<=200;i++)
{
y=y+h;
s=s+pow(y,n/2.0-1)*exp(-y/2.0);
}
s=s*h;
printf("%f\n",s);
}
结果:2266.139467
例:求 x2dx ? 11
程序:
#include "stdio.h"
void main()
{
double a,b,s,h,x;
int i,n;
a=-1.0;b=1.0;n=10;
h=(b-a)/n;x=a;s=x*x/2;
for(i=1;i<n;i++)
{
x=x+h;
s=s+x*x;
}
s=s+b*b/2;
s=s*h;
printf("s=%f\n",s);
}
结果:s=0.680000
(四)复化辛普森公式
例:求 x3dx ? 01
程序:
#include "stdio.h"
void main()
{
double a,b,c,s,h,x,y;
int i,n;
a=0.0;b=1.0;n=10;s=0.0;
h=(b-a)/n;x=a;y=x+h;c=(x+y)/2;
for(i=1;i<=n;i++)
{
s=s+x*x*x+4*c*c*c+y*y*y;
x=x+h;
y=y+h;
c=c+h;
}
s=s*h/6;
printf("s=%f\n",s);
}
结果:s=0.250000
例:求 x2dx ? 02
程序:
#include <stdio.h>
#include <math.h>
main()
{double a,b,h,s,x1,x2;
int i,n;
a=0;b=2;n=20;s=0;
h=(b-a)/n;
for(i=0;i<n;i++)
{x1=a+i*h+h/2*(1/1.732+1);
x2=a+i*h+h/2*(1-1/1.732);
s=s+x1*x1*x1+x2*x2*x2;
}
s=h/2*s;
printf("s=%f\n",s);
}
结果:s=4.000000
(六)二维中矩形公式
例:求 dx (x2 y2)dy ? 0011
程序:
#include <stdio.h>
#include <math.h>
main()
{double a,b,c,d,x[50],y[50],hx,hy,s;
int i,j,n,k;
a=0.0;b=1.0;c=0.0;d=1.0;
n=k=10;
hx=(b-a)/n;hy=(d-c)/k;
x[0]=a+hx/2;y[0]=c+hy/2;s=0.0;
for(j=0;j<k;j++)
{
for(i=0;i<n;i++)
{
s=s+x[i]*x[i]+y[j]*y[j];
x[i+1]=x[i]+hx;
}
y[j+1]=y[j]+hy;
}
s=hx*hy*s;
printf("s=%f\n",s);
}
结果:s=0.665000
(七)迭代法
例:求x=x2的解。
程序:
#include "stdio.h"
#include<math.h>
main()
{
double x,xl,y,yl;
int i,j;
x=0.5;xl=x;
y=0.5;yl=y;
for(i=0;;i++)
{x=x*x;
if(fabs(xl-x)<0.0001)
break;
else xl=x;
}
for(j=0;;j++)
{y=sqrt(y);
if(fabs(yl-y)<0.0001)
break;
else yl=y;
}
printf("x=%f,y=%f\n",x,y);
}
结果:x=0.000000,y=0.999915
(八)牛顿迭代法
y=f(x),求f(x*)=0。
y-y0=f'(x0)(x-x0)
-y0=f'(x0)(x1-x0)
x1=x0-f(x0)/f'(x0)
.......
xn+1=xn-f(xn)/f'(xn)
例:求f(x)=x-x2的零点(已知x0=0.1)。
程序:
#include "stdio.h"
#include<math.h>
main()
{
double x,xl;
int i;
x=0.1;xl=x;
for(i=0;;i++)
{x=x-(x-x*x)/(1-2*x);
if(fabs(xl-x)<0.0001)
break;
else xl=x;
}
printf("x=%f",x);
}
结果:x=-0.000000
(九)二分法
已知f(a)f(b)<0,则在[a,b]中至少有一点f(x*)=0。
令x1=(a+b)/2
如f(a)f(x1)<0,取a1=a,b1=x1;否则,取a1=x1,b1=b。
令x2=(a1+b1)/2
如f(a1)f(x2)<0,取a2=a1,b2=x2;否则,取a2=x2,b2=b1。
......
令xn+1=(an+bn)/2
如f(an)f(xn+1)<0,取an+1=an,bn+1=xn+1;否则,取an+1=xn+1,bn+1=bn。
例:求f(x)=x-x2在[0.1,2.45]内的零点。
程序:
#include "stdio.h"
#include<math.h>
main()
{
double a,al,b,bl,x,xl;
int i;
a=0.1;b=2.45;
for(i=0;;i++)
{x=(a+b)/2;
if((a-a*a)*(x-x*x)<0)
al=a,b=x;
else a=x,bl=b;
if(fabs(xl-x)<0.0001)
break;
else xl=x;
}
printf("x=%f",xl);
}
结果:x=1.000040
(十)一元回归
已知(x1,y1),(x2,y2)···(xN,yN),
y=a+bx yi=a+bxi+Ei Q(a,b)= Ei2
i 1N Ei=yi-a-bxi
总误差Q= (yi a bxi)2 令
i 1N Q Q 0, 0得 a b
aN+bX-Y=0, aX+bX2-XY=0
(其中X= xi, Y= yi, X= x, XY= xiyi)。可得: 22i
i 1i 1i 1i 1NNNN
N XX a Y X2 b XY
12 YX XXY a NX Y 1 2 2bXXXY NX XX NXY XY
例:已知(0,0),(1,2),(2,5);求a,b。
程序:
#include "stdio.h"
main()
{
float a,b,E,X,Y,Xl,Xy,Q,x[3]={0.0,1.0,2.0},y[3]={0.0,2.0,5.0};
int i,j,n=3;
X=0;Y=0;Xl=0;Xy=0;
for(i=0;i<n;i++)
{X=X+x[i];
Y=Y+y[i];
Xl=Xl+x[i]*x[i];
Xy=Xy+x[i]*y[i];
a=(Xl*Y-X*Xy)/(n*Xl-X*X);
b=(n*Xy-X*Y)/(n*Xl-X*X);
}
printf("a=%f,b=%f\n",a,b);
Q=0;E=0;
for(j=0;j<=3;j++)
{Q=Q+E*E;
E=y[j]-a-b*x[j];
}
printf("Q(总误差)=%f\n",Q);
}
结果:a=-0.166667,b=2.500000
Q(总误差)=0.166667
(十一)泰勒插值
例:计算当x=2.104时,ex=pn(x)=?
程序:
#include "stdio.h"
#include <math.h>
void main()
{double x,l,p;
int i,n;
x=2.104;n=100;
p=1;l=1;
for(i=0;i<=n;i++)
{
l=l*x/(i+1);
p=p+l;
}
printf("p=%f\n",p);
}
结果:p=8.198900
(十二)拉格朗日插值
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




