- 浏览: 534429 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gaolegao2008:
如果报 is_volum 列名找不到之类的,我是从新部署了一个 ...
spring quartz 定时器报错 -
gaolegao2008:
部署到linux上时,还有一种情况就是mysql数据库区分大小 ...
spring quartz 定时器报错 -
qq123zhz:
yahier 写道 对我有帮助,但我看的一个demo程序,却没 ...
spring quartz 定时器报错 -
qq123zhz:
这个要在eclipse的插件环境下运行的,你不懂eclipse ...
GEF 自动布局 -
qq123zhz:
这个很久了,不记得啥时候写的了
json转为Map
包括拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔 。都是经典的数学算法,希望能开托您的思路。转自kunli.info
1.拉格朗日插值多项式 ,用于离散数据的拟合
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include <stdio.h> #include <conio.h> #include <alloc.h> float lagrange(float *x,float *y,float xx,int n) /*拉格朗日插值算法*/ { int i,j; float *a,yy=0.0; /*a作为临时变量,记录拉格朗日插值多项式*/ a=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } main() { int i,n; float x[20],y[20],xx,yy; printf("Input n:"); scanf("%d",&n); if(n>=20) {printf("Error!The value of n must in (0,20)."); getch();return 1;} if(n<=0) {printf("Error! The value of n must in (0,20)."); getch(); return 1;} for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } printf("\n"); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]);} printf("\n"); printf("Input xx:"); scanf("%f",&xx); yy=lagrange(x,y,xx,n); printf("x=%f,y=%f\n",xx,yy); getch(); }
2.牛顿插值多项式,用于离散数据的拟合
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include <stdio.h> #include <conio.h> #include <alloc.h> void difference(float *x,float *y,int n) { float *f; int k,i; f=(float *)malloc(n*sizeof(float)); for(k=1;k<=n;k++) { f[0]=y[k]; for(i=0;i<k;i++) f[i+1]=(f[i]-y[i])/(x[k]-x[i]); y[k]=f[k]; } return; } main() { int i,n; float x[20],y[20],xx,yy; printf("Input n:"); scanf("%d",&n); if(n>=20) {printf("Error! The value of n must in (0,20)."); getch(); return 1;} if(n<=0) {printf("Error! The value of n must in (0,20).");getch(); return 1;} for(i=0;i<=n-1;i++) { printf("x[%d]:",i); scanf("%f",&x[i]); } printf("\n"); for(i=0;i<=n-1;i++) { printf("y[%d]:",i);scanf("%f",&y[i]);} printf("\n"); difference(x,(float *)y,n); printf("Input xx:"); scanf("%f",&xx); yy=y[20]; for(i=n-1;i>=0;i--) yy=yy*(xx-x[i])+y[i]; printf("NewtonInter(%f)=%f",xx,yy); getch(); }
3.高斯列主元消去法,求解其次线性方程组
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include<stdio.h> #include <math.h> #define N 20 int main() { int n,i,j,k; int mi,tmp,mx; float a[N][N],b[N],x[N]; printf("\nInput n:"); scanf("%d",&n); if(n>N) { printf("The input n should in(0,N)!\n"); getch(); return 1; } if(n<=0) { printf("The input n should in(0,N)!\n"); getch(); return 1; } printf("Now input a(i,j),i,j=0...%d:\n",n-1); for(i=0;i<n;i++) { for(j=0;j<n;j++) scanf("%f",&a[i][j]);} printf("Now input b(i),i,j=0...%d:\n",n-1); for(i=0;i<n;i++) scanf("%f",&b[i]); for(i=0;i<n-2;i++) { for(j=i+1,mi=i,mx=fabs(a[i][j]);j<n-1;j++) if(fabs(a[j][i])>mx) { mi=j; mx=fabs(a[j][i]); } if(i<mi) { tmp=b[i];b[i]=b[mi];b[mi]=tmp; for(j=i;j<n;j++) { tmp=a[i][j]; a[i][j]=a[mi][j]; a[mi][j]=tmp; } } for(j=i+1;j<n;j++) { tmp=-a[j][i]/a[i][i]; b[j]+=b[i]*tmp; for(k=i;k<n;k++) a[j][k]+=a[i][k]*tmp; } } x[n-1]=b[n-1]/a[n-1][n-1]; for(i=n-2;i>=0;i--) { x[i]=b[i]; for(j=i+1;j<n;j++) x[i]-=a[i][j]*x[j]; x[i]/=a[i][i]; } for(i=0;i<n;i++) printf("Answer:\n x[%d]=%f\n",i,x[i]); getch(); return 0; } #include<math.h> #include<stdio.h> #define NUMBER 20 #define Esc 0x1b #define Enter 0x0d float A[NUMBER][NUMBER+1] ,ark; int flag,n; exchange(int r,int k); float max(int k); message(); main() { float x[NUMBER]; int r,k,i,j; char celect; clrscr(); printf("\n\nUse Gauss."); printf("\n\n1.Jie please press Enter."); printf("\n\n2.Exit press Esc."); celect=getch(); if(celect==Esc) exit(0); printf("\n\n input n="); scanf("%d",&n); printf(" \n\nInput matrix A and B:"); for(i=1;i<=n;i++) { printf("\n\nInput a%d1--a%d%d and b%d:",i,i,n,i); for(j=1;j<=n+1;j++) scanf("%f",&A[i][j]); } for(k=1;k<=n-1;k++) { ark=max(k); if(ark==0) { printf("\n\nIt's wrong!");message(); } else if(flag!=k) exchange(flag,k); for(i=k+1;i<=n;i++) for(j=k+1;j<=n+1;j++) A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k]; } x[n]=A[n][n+1]/A[n][n]; for( k=n-1;k>=1;k--) { float me=0; for(j=k+1;j<=n;j++) { me=me+A[k][j]*x[j]; } x[k]=(A[k][n+1]-me)/A[k][k]; } for(i=1;i<=n;i++) { printf(" \n\nx%d=%f",i,x[i]); } message(); } exchange(int r,int k) { int i; for(i=1;i<=n+1;i++) A[0][i]=A[r][i]; for(i=1;i<=n+1;i++) A[r][i]=A[k][i]; for(i=1;i<=n+1;i++) A[k][i]=A[0][i]; } float max(int k) { int i; float temp=0; for(i=k;i<=n;i++) if(fabs(A[i][k])>temp) { temp=fabs(A[i][k]); flag=i; } return temp; } message() { printf("\n\n Go on Enter ,Exit press Esc!"); switch(getch()) { case Enter: main(); case Esc: exit(0); default:{printf("\n\nInput error!");message();} } }
4.龙贝格求积公式,求解定积分
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include<stdio.h> #include<math.h> #define f(x) (sin(x)/x) #define N 20 #define MAX 20 #define a 2 #define b 4 #define e 0.00001 float LBG(float p,float q,int n) { int i; float sum=0,h=(q-p)/n; for (i=1;i<n;i++) sum+=f(p+i*h); sum+=(f(p)+f(q))/2; return(h*sum); } void main() { int i; int n=N,m=0; float T[MAX+1][2]; T[0][1]=LBG(a,b,n); n*=2; for(m=1;m<MAX;m++) { for(i=0;i<m;i++) T[i][0]=T[i][1]; T[0][1]=LBG(a,b,n); n*=2; for(i=1;i<=m;i++) T[i][1]=T[i-1][1]+(T[i-1][1]-T[i-1][0])/(pow(2,2*m)-1); if((T[m-1][1]<T[m][1]+e)&&(T[m-1][1]>T[m][1]-e)) { printf("Answer=%f\n",T[m][1]); getch(); return ; } } }
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->5.牛顿迭代公式,求方程的近似解
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include<stdio.h> #include<math.h> #include<conio.h> #define N 100 #define PS 1e-5 #define TA 1e-5 float Newton(float (*f)(float),float(*f1)(float),float x0 ) { float x1,d=0; int k=0; do { x1= x0-f(x0)/f1(x0); if((k++>N)||(fabs(f1(x1))<PS)) { printf("\nFailed!"); getch(); exit(); } d=(fabs(x1)<1?x1-x0:(x1-x0)/x1); x0=x1; printf("x(%d)=%f\n",k,x0); } while((fabs(d))>PS&&fabs(f(x1))>TA) ; return x1; } float f(float x) { return x*x*x+x*x-3*x-3; } float f1(float x) { return 3.0*x*x+2*x-3; } void main() { float f(float); float f1(float); float x0,y0; printf("Input x0: "); scanf("%f",&x0); printf("x(0)=%f\n",x0); y0=Newton(f,f1,x0); printf("\nThe root is x=%f\n",y0); getch(); }
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->#include<stdio.h> #include<math.h> int NC(a,h,n,r,f) float (*a)[]; float h; int n,f; float *r; { int nn,i; float ds; if(n>1000||n<2) { if (f) printf("\n Faild! Check if 1<n<1000!\n",n); return(-1); } if(n==2) { *r=0.5*((*a)[0]+(*a)[1])*(h); return(0); } if (n-4==0) { *r=0; *r=*r+0.375*(h)*((*a)[n-4]+3*(*a)[n-3]+3*(*a)[n-2]+(*a)[n发表评论
-
eclipse Resource 资料
2016-11-15 16:51 617IWorkspace/IWorkspaceRoot/IPro ... -
.docker/machine/machines/default/ca.pem: no such file or directory
2016-09-06 15:59 886Was doing adocker-machine env ... -
list.AddAll 去重复
2015-09-11 12:01 5901问题描述: 有List A和B,A、B中元素都是可保证 ... -
eclipse 插件开发 Setting the Java build path
2014-06-04 11:00 1216JDT Plug-in Developer Guide & ... -
xstream 下划线_问题
2013-12-30 10:18 4180最近在使用xtream 1.4.3,出现了如下的问题: ... -
RCP MessageConsole设置显示的最大行数
2013-09-05 11:34 966MessageConsole.setWaterMarks(5 ... -
freemarker 自定义freeMarker标签
2013-08-12 16:09 3886import java.io.IOException; i ... -
xstream javabean设置属性默认值的问题
2013-04-24 09:54 6568在xstream反序列化使用过程中发现,如果xml无该属 ... -
在使用xstream反序列化时遇到的问题
2013-04-24 09:42 1747public abstract class SBase { ... -
RCP 知识点
2013-03-14 15:10 997获得工作区的所有工程: //获得workspace的所有 ... -
RCP FileSystem 文件系统
2013-02-19 10:42 1381public static File toLocalFile ... -
json转为Map
2013-01-19 22:27 32829package digu.pendant.util; ... -
eclipse4.x 去掉quick access
2013-01-11 14:57 4057/** * 去掉quick access * ... -
xstream 的高级用法,自定义输出结构
2012-12-19 14:35 2423public static void main(Stri ... -
jdt 核心知识
2012-11-27 21:39 1277jdt官方核心知识...................... ... -
jdt 创建java工程,生成代码,运行main方法
2012-11-27 10:50 2345public static IJavaProje ... -
两个osgi的例子程序
2012-11-20 10:21 1077osgi的例子....................直接上代 ... -
jfreechart 的官方例子,很全
2012-11-20 10:19 944jfreechart的官方的demon,很全。 -
SWT 隔行换色-自动宽高调整
2012-10-16 17:32 1710** * 创建:ZhengXi 2009-8-4 */ ... -
RCP 为action添加操作进度条
2012-10-16 13:59 1292public class StartAction extend ...
相关推荐
"10个重要的算法C语言实现源代码" 这篇文章.share了10个重要的算法的C语言实现源代码,涵盖了拉格朗日插值、牛顿插值、高斯列主元消去法、龙贝格积分、牛顿迭代、牛顿-科特斯方法、雅克比矩阵、秦九昭算法、幂法、...
典型密码算法及其C语言实现共13章节,详细讲述了一些典型密码算法的算法原理及C语言实现。密码算法包括:序列密码、分组密码、公钥密码和Hash算法。其中序列密码有祖冲之算法,分组密码有DES、3DES和SMS4算法,公钥...
这个压缩包文件包含的C语言源代码提供了丰富的实践机会,帮助初学者深入理解这些概念。 首先,我们要讨论数据结构。数据结构是用来组织、管理和存储数据的方式,它定义了数据之间的关系和操作。常见的数据结构包括...
在本文中,我们将深入探讨两种重要的插值算法和一种求解线性方程组的方法的C语言实现。这些算法在数值分析和计算科学中扮演着关键角色,它们分别是: 1. 拉格朗日插值多项式 拉格朗日插值是一种通过已知离散数据点...
这个压缩包“算法:C语言实现(第1~4部分)源代码”显然包含了使用C语言编写的算法实现,可能是针对数据结构(Data Structures)的基础知识,以及一些基础到进阶的算法。 首先,我们可以从"DS_C"这个压缩包子文件的...
这篇C语言源代码实现了DES加密解密算法,特别适合于资源有限的环境,如STM32或51单片机。STM32系列是基于ARM Cortex-M内核的微控制器,而51单片机则是早期广泛应用的8位微处理器。在这些平台上,由于内存(RAM)资源...
在"一种残差加权的TDOA定位算法C语言代码"中,我们可以推测这是一个利用改进的TDOA方法来提高定位精度的程序。残差加权通常是为了处理噪声和测量误差,通过迭代优化算法来更新估计的位置,从而获得更准确的结果。...
### 知识点一:《算法导论》与C语言实现 #### 1.1 书籍简介 - **《算法导论》**是一本经典的计算机科学教材,它全面介绍了算法的设计与...同时,学习如何在C语言环境下实现这些算法也是提高编程能力的一个重要途径。
置换算法C语言实现
实现素数验证,加密解密等功能。可以对一串字符进行加密解密等操作,但运算速度较慢。
十种经典算法的C语言实现 本资源主要介绍了十种经典的数学算法的C语言实现,包括拉格朗日插值、牛顿插值、 高斯列主元消去法、龙贝格积分、牛顿迭代、牛顿-科特斯方法、雅克比迭代、秦九昭算法、幂法和高斯塞德尔...
理解银行家算法并能用C语言实现,对于学习操作系统和解决实际系统中的死锁问题至关重要。银行家算法虽然复杂,但通过合理的数据结构设计和巧妙的算法实现,可以有效地确保系统的安全性。在实际编程中,需要注意的是...
16进制10进制.txt 32.txt asm.txt Crctable.txt C标志符命名源程序.txt erre.txt erre2.txt ff.txt for循环的.txt list.log N皇后问题回溯算法.txt ping.txt re.txt source.txt winsock2.txt ww.txt ...
C语言实现AES需要理解和实现SubBytes、ShiftRows、MixColumns和AddRoundKey四个核心步骤。 3. **RSA(Rivest-Shamir-Adleman)公钥密码体制**:RSA是一种非对称加密算法,它基于大数因子分解的困难性。RSA包括一对...
标签中的“C语言实现”意味着源代码使用C语言编写,这种实现通常更注重性能和跨平台兼容性。C语言的低级特性允许直接访问内存和执行高效的位操作,这对于哈希算法的实现至关重要。 压缩包中的文件"SHA256"可能包含...
`Subpaylist.cpp`可能是实现这些功能的源代码文件,它可能包含了节点结构体的定义、优先级队列的操作以及A*算法的主体逻辑。而`route.txt`文件可能是一个输入文件,包含地图信息或者用于测试算法的初始和目标位置。 ...
总的来说,"经典算法 C语言实现"是一个极好的学习资源,它将理论知识与实践相结合,可以帮助IT从业者巩固基础,提升技能,同时也适合作为面试准备和项目开发的参考材料。无论是初学者还是有经验的开发者,都能从中...
总之,C4.5算法在机器学习中扮演着重要角色,它的C语言实现涉及到数据预处理、决策树构建、连续属性处理、缺失值处理、剪枝策略以及模型评估等多个方面。理解和掌握这些关键点对于理解和实现C4.5算法至关重要。在...