版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、对分法1、#include"math.h"main() float a3=-3.0,1.0,0.0,b3=-2,0,1,c3;float f(float x);int i;for(i=0;i<3;i+)do ci=(ai+bi)/2.0; if(f(ci)=0) exit(0);else if(f(ci)*f(ai)<0) bi=ci; else ai=ci; while(bi-ai)>1e-5); ci=ai; printf("the roots are:"); for(i=0;i<3;i+)printf("%f&
2、quot;,ci);printf("2.000000");float f(float x)float y;y=x*x*x-2*x*x-4*x-7;return(y);3、对分部分函数调用(题目要求如2)#include "math.h"float f(float x) float y; y=x*x*x-2*x*x-4*x-7; return(y); float f1(float a ,float b) float c; do c=(a+b)/2; if(f(c)=0) exit(0); else if(f(a)*f(c)<0) b=c; else
3、a=c; while(b-a)>1e-5); return(a); main() float a=3.0,b=4.0,s; s=f1(a,b); printf("the root is %f",s);2、用对分法求出方程x-2x-4x-7=0在区间【3,4】内的根,精度要求为10。#include"math.h"main()float a=3.0,b=4.0,c;float f(float x);do c=(a+b)/2.0; if(f(c)=0)printf("the root is %f",c); exit(0);/*找到方
4、程的根*/ else if(f(c)*f(a)<0) b=c; else a=c; while(b-a)>1e-5);printf("the root is %f",a);float f(float x)float y;y=x*x*x-2*x*x-4*x-7;return(y);对分法的算法:扫描法的算法:4、对分法和扫描结合求方程x-5x+x+2=0的实根的上、下界,实现根的隔离,并用对分法求出所有的实根,精度要求为10。此方程的4个实根分别为:root=2.246979 root=0.554956 root=0.801941 root=2.000000#in
5、clude "math.h"float f(float x) float y;y=x*x*x*x-5*x*x+x+2;return y;main()float a,b,c;int i=0;float x,h=0.001,p5,q5,n;scanf("%f%f",&a,&b) ;x=a; while(x<b) if(f(x)*f(x+h)<=0) pi=x;qi=x+h;i=i+1;printf("%f,%fn", pi, qi); x=x+h; n=i; for(i=0;i<n;i+) a=pi;b=
6、qi; while(b-a>1e-5) c=(a+b)/2; if(f(c)=0) printf("%fn",c);exit(0); else if(f(a)*f(c)<0) b=c; else a=c; printf("%fn",c) ; 二、秦九韶算法使用秦九韶算法计算多项式的值ax+ax+ax+a 例如计算3x+2x+1,当x=-1时值为2。main()float aa20,y,x; int i,n;printf("input duo xiang shi ci shu n:n" ) ;scanf("%d&q
7、uot;,&n);printf("input duo xiang shi de xi shun");for(i=0;i<=n;i+) scanf("%f",&aai);printf("input xn");scanf("%f",&x);y=aa0;for(i=1;i<=n;i+) y=y*x+aai;printf("pn=%fn",y);秦九韶算法:三、牛顿法1、编写牛顿法求方程根的通用程序,精度要求为10。(x-x-2x-3=0 初值 x=2)#includ
8、e"math.h"main()float f(float x);float fd(float x);float x,x0,x1;x1=2.0;do x0=x1; x1=x0-f(x0)/fd(x0); while(fabs(x1-x0)>1e-5);printf("the root is%fn",x1);float f(float x)return x*x*x-x*x-2*x-3;float fd(float x)return 3*x*x-2*x-2;2、用牛顿法求a的立方根,精度要求为0.000005。#include"math.h&q
9、uot;main()double x0,x1;int a;printf("input an");scanf("%d",&a);if(a=0)printf("a=0n");exit(0);x1=a;do x0=x1; x1=x0-(x*x*x-a)/(3*x*x); while(fabs(x1-x0)>=0.5e-5);printf("the root is%fn",x1);printf("root=%fn",x1);3、用牛顿法求方程x-e=0(x-exp(-x)=0)在1附近的根
10、,精度要求为0.00001。#include"math.h"main()float x0,x1;x1=1.0;do x0=x1;x1=x0-(x-exp(-x)/(1+exp(-x);while(fabs(x1-x0)>1e-5);printf("the root is%fn",x1);牛顿法的算法:四、列主元高斯消元法(通用程序)#include"math.h"#define M 3#define N 3main()float aMN+1,xN,temp,l,s;int i,j,k,r;printf("please
11、input the date:n");for(i=0;i<M;i+) for(j=0;j<N+1;j+) scanf("%f",&aij);for(k=0;k<N-1;k+) r=k; for(i=k+1;i<=M-1;i+) if(fabs(aik)>fabs(ark) r=i; if(ark=0) printf("QYn"); exit(0); else if(r!=k) for(j=k;j<=N;j+) temp=akj; akj=arj; arj=temp; for(i=k+1;i<=N
12、-1;i+) l=aik/akk;for(j=k+1;j<=N;j+) aij=aij-l*akj; for(k=N-1;k>=0;k-) s =0.0; for(j=k+1;j<=N-1;j+) s = s +akj*xj; xk=(akN- s)/akk; for(i=0;i<=N-1;i+)printf("x%d=%fn",i,xi); 列主元高斯消元法的算法:五、LU分解法用LU分解法解线性方程组,系数矩阵由二维数组a给出,右端由b数组给出。#include"math.h"main()int i,j,k,m,n=4;flo
13、at t;float b4=1,1,-1,-1;float a44=4,3,2,1,3,4,3,2,2,3,4,3,1,2,3,4;for(k=0;k<n;k+) for(j=k;j<n;j+) t=0; for(m=0;m<=k-1;m+) t=t+akm*amj; akj=akj-t; for(i=k+1;i<n;i+) t=0; for(m=0;m<=k-1;m+) t=t+aim*amk; aik=(aik-t)/akk; for(i=0;i<n;i+) t=0; for(j=0;j<=i-1;j+) t=t+aij*bj; bi=bi-t;
14、for(i=n-1;i>=0;i-) t=0; for(k=i+1;k<n;k+) t=t+aik*bk; bi=(bi-t)/aii; for(i=0;i<n;i+) printf("%10.4f",bi);LU分解法的算法:六、雅可比迭代法1、通用程序#define N 4#include"math.h"float cha(x,y)float xN,yN;float z;int i,k;z=fabs(y0-x0);for(i=1;i<N;i+)if(fabs(yi-xi)>z) z=fabs(yi-xi);return
15、(z);main()float aNN,bN,xN,yN,h;int i,j,k;float t=0,s;for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&h); aij=h; for(i=0;i<N;i+) scanf("%f",&h); bi=h;yi=0; for(i=0;i<N;i+) if(aii=0) printf("QIYI");exit(0); printf("Jacobin"); for(k=1;k<=30;k+)
16、 for(i=0;i<N;i+) xi=yi; for(i=0;i<N;i+) t=0; for(j=0;j<N;j+) if(j!=i) t=t+aij*xj; yi=(bi-t)/aii; if(cha(x,y)<1e-6) printf("xunhuancishu:k=%dn",k); for(i=0;i<N;i+) printf("%10f",xi);printf("n"); break; if(k>30)printf("fasannn");2、实验书第4题#includ
17、e"math.h"float cha(x,y)float x3,y3;float z;int i,k,n=3;z=fabs(y0-x0);for(i=1;i<n;i+)if(fabs(yi-xi)>z) z=fabs(yi-xi);return (z);main()float a33=10,-2,-1,-2,10,-1,-1,-2,5;float b3=3,15,10,y3=0,0,0,x3;float t=0,s;int i,j,k,n=3;printf("Gauss-Seideln");for(k=1;k<=30;k+) for(i
18、=0;i<n;i+) xi=yi; for(i=0;i<n;i+) t=0; for(j=0;j<n;j+) if(j!=i) t=t+aij*xj; yi=(bi-t)/aii; if(cha(x,y)<1e-6) printf("xunhuancishu:k=%dn",k); for(i=0;i<n;i+) printf("%10f",yi); printf("n"); break; if(k>30)printf("fasannn");七、高斯-塞德尔迭代法1、通用程序#de
19、fine N 3#include"math.h"float cha(x,y)float xN,yN;float z;int i,k;z=fabs(y0-x0);for(i=1;i<N;i+) if(fabs(yi-xi)>z) z=fabs(yi-xi);return (z);main()float aNN,bN,xN,yN,h;int i,j,k;float t=0,s;for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%f",&h); aij=h; for(i=0;i<N;i+) sc
20、anf("%f",&h); bi=h;xi=0; for(i=0;i<N;i+) if(aii=0) printf("QIYI");exit(0); printf("Gauss-Seideln"); for(k=1;k<=30;k+) for(i=0;i<N;i+) yi=xi; for(i=0;i<N;i+) t=0; for(j=0;j<N;j+) if(j!=i) t=t+aij*xj; xi=(bi-t)/aii; if(cha(x,y)<1e-6) printf("xun
21、huancishu:k=%dn",k); for(i=0;i<N;i+) printf("%10f",yi);printf("n"); break; if(k>30)printf("fasannn");2、实验书第4题#include"math.h"float cha(x,y)float x3,y3;float z;int i,k,n=3;z=fabs(y0-x0);for(i=1;i<n;i+)if(fabs(yi-xi)>z) z=fabs(yi-xi);return (z);
22、main()float a33=10,-2,-1,-2,10,-1,-1,-2,5;float b3=3,15,10,x3=0,0,0,y3;float t=0,s;int i,j,k,n=3;printf("Gauss-Seideln");for(k=1;k<=30;k+) for(i=0;i<n;i+) yi=xi; for(i=0;i<n;i+) t=0; for(j=0;j<n;j+) if(j!=i) t=t+aij*xj; xi=(bi-t)/aii; if(cha(x,y)<1e-6) printf("xunhuanci
23、shu:k=%dn",k); for(i=0;i<n;i+) printf("%10f",yi); printf("n"); break; if(k>30)printf("fasannn");雅可比迭代法的算法:高斯-塞德尔迭代法的算法:八、牛顿基本插值公式(实验书第三题)main()int i,k,n;float x20,y20,t,h,p;scanf("%d",&n);for(i=0;i<=n;i+)scanf("%f%f",&xi,&yi
24、);scanf("%f",&t);for(k=1;k<=n;k+) for(i=n;i>=k;i-) yi=(yi-yi-1)/(xi-xi-k); printf("%10.5f",yi); printf("n"); p=y0;h=1;for(i=1;i<=n;i+) h=h*(t-xi-1); p+=h*yi; printf("p=%fn",p);牛顿基本插值公式算法:九、Lagarange全程插值算法(实验书第一题)main()int i,k,n;float x20,y20,t,s,p
25、;p=0;scanf("%d",&n);for(i=0;i<=n;i+)scanf("%f%f",&xi,&yi);scanf("%f",&t);for(k=0;k<=n;k+)s=1;for(i=0;i<=n;i+) if(i!=k) s=s*(t-xi)/(xk-xi); p=yk*s+p; printf("%f",p);Lagarange全程插值算法:十、复合辛普森求积公式的算法1、编制复合Simpson公式求积分的通用程序,设N=8,试算dx、#includ
26、e"math.h"float f(float x) return 1/(x*x+1);main() int i; float a=0,b=1,h,x,s,T1,T2; h=b-a; T1=h*(f(a)+f(b)/2; do s=0; x=a+h/2; s=s+f(x); T2=T1/2+h*s/2; while(fabs(T2-T1)>1e-5); 十一、多项式型经验公式算法设实验数据如下:X0.10.20.30.40.50.60.7Y5.12345.30535.56845.93786.42707.07987.94493求其二次拟合多项式#define N 7#define m 2#include "math.h"main() int i,j,k; float xN+1=0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,d,l; float yN+1=0,5.1234,5.3053,5.5684,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 媒体健康教育宣传方案
- 高层建筑外墙作业安全施工方案
- 中老年人骨质疏松健康促进方案
- 让现代多媒体技术与作文相得益彰
- 亚丁电音节赞助合作方案
- 高空作业风险评估与应急预案
- 《员工升职协议》
- 小学心理健康教育活动反馈方案
- 2024年09版小学5年级下册英语第4单元综合卷
- 外语教师口语教学方案
- 中医药膳学全套课件
- 马王堆出土文物艺术欣赏-课件
- 初中语文人教六年级下册《专题阅读:概括主要事件》PPT
- 13、停电停水等突发事件的应急预案以及消防制度
- DB42T1811-2022西瓜设施育苗技术规程
- 早教托育园招商加盟商业计划书
- 医疗HRP整体解决方案课件
- 电力电缆基础知识专题培训课件
- 分布式光伏安装清包合同
- 四机厂介绍企业介绍
- AEO认证系列-供应链安全培训
评论
0/150
提交评论