❶ 实用数学算法是什么
常用数学算法!也是计算方法程序-commonly used mathematical algorithms! Also calculation proceres
计算方法程序:
1.直接三角分解法
程序代码:
#include <math.h>
#include <stdio.h>
main()
{
int i,j,n,r,k;
float s,t;
float a[100][100],b[100],U[100][100],L[100][100],x[100],y[100];
printf("in put n\n");
scanf("%d",&n);
printf("input a[*][*]\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
printf("in put b[*]\n");
for(i=0;i<n;i++)
scanf("%f",&b[i]);
for(i=1;i<n;i++)
a[i][0]=a[i][0]/a[0][0];
for(k=1;k<n;k++)
{
for(j=k;j<n;j++)
{
s=0;
for (i=0;i<k;i++)
s=s+a[k][i]*a[i][j];
a[k][j]=a[k][j]-s;
}
for(i=k+1;i<n;i++)
{
t=0;
for(j=0;j<k;j++)
t=t+a[i][j]*a[j][k];
a[i][k]=(a[i][k]-t)/a[k][k];
}
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{ if(i>j)
{ L[i][j]=a[i][j]; U[i][j]=0;}
else
{ U[i][j]=a[i][j];
if(i==j) L[i][j]=1;
else L[i][j]=0;
}
}
printf("\nL[*][*]=");
for(i=0;i<n;i++)
{ printf("\n");
for(j=0;j<n;j++)
printf(" %0.2f",L[i][j]);
}
printf("\nU[*][*]=");
for(i=0;i<n;i++)
{ printf("\n");
for(j=0;j<n;j++)
printf(" %0.2f",U[i][j]);
}
printf("\n");
y[0]=b[0];
for(k=1;k<n;k++)
{
s=0;
for (i=0;i<k;i++)
s=s+L[k][i]*y[i];
y[k]=b[k]-s;
}
x[n-1]=(y[n-1]/U[n-1][n-1]);
for(k=(n-2);k>=0;k--)
{
t=0;
for(i=k+1;i<n;i++)
t=t+U[k][i]*x[i];
x[k]=(y[k]-t)/U[k][k];
}
for(i=0;i<n;i++)
printf(" %0.2f",y[i]);
printf("\n");
printf("The answer is \n");
for(i=0;i<n;i++)
printf(" %0.2f",x[i]);
printf("\n");
}
/*不是完全接照实验要求做的,没有检测这一步。只是照书上做的,如有需要,再加个IF语句判定*/
2.迭代法
程序代码
#include <stdio.h>
#include <math.h>
double f(double x)
{
return 2*sin(x);
}
main()
{
int n=0;
double x,y,e;
printf("请输入X的初值 X0:\n");
scanf("%lf",&x);
printf("请输入精度e的值 e:\n");
scanf("%lf",&e);
do{
printf("x%d=%lf\n",n,x);
n++;
y=f(x);
y=fabs(x-y);
x=f(x);
}while(y>e);
}
/*本代码只针对实验二中的函数,实际中可将其中的定义的double f(double x)改为要求函数即可*/
3.牛顿法(还是对实验二中的函数)
程序代码:
#include <stdio.h>
#include <math.h>
double f(double x)
{
return (2*sin(x)-x);
}
double df(double x)
{
return (2*cos(x)-1);
}
main()
{
int n=0;
double x,y,e;
printf("请输入X的初值 X0:\n");
scanf("%lf",&x);
printf("请输入精度e的值 e:\n");
scanf("%lf",&e);
do{
printf("x%d=%lf\n",n,x);
n++;
y=(x-f(x)/df(x));
y=fabs(x-y);
x=(x-f(x)/df(x));
}while(y>e);
}
/*本代码还只是针对实验二中的函数,实际中可将其中的定义的double f(double x)、double df(double x)改为要求函数,double df(double x)为double f(double x)的导数。*/
4.雅可比法(针对实验三)
程序代码
#include <math.h>
#include <stdio.h>
void main(void)
{
int i,j,n,t,r,f,k=0,h=0;
double e;
float a[100][100],b[100],x[100],y[100];
printf("请输入元数 n:\n");
scanf("%d",&n);
printf("请输入系数矩阵 a[*][*]:\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
printf("请输入 b[*]:\n");
for(i=0;i<n;i++)
scanf("%f",&b[i]);
printf("请输入精度要求 e:\n");
scanf("%lf",&e);
printf("请输入最大允许迭代次数 t:\n");
scanf("%d",&t);
printf("请输入x[*]的初值 x[0]:\n");
for(i=0;i<n;i++)
scanf("%f",&x[i]);
do
{
k++;
for(i=0;i<n;i++)
{
r=0;
for(f=0;f<n;f++)
{ if(f!=i)
r=r+a[i][f]*x[f];
}
y[i]=(1/a[i][i])*(b[i]-r);
if(k==t)
h=0;
else
{
if(fabs(x[i]-y[i])>e)
h=1;
else
h=0;
}
x[i]=y[i];
}
}while(h==1);
printf("答案是:\n");
for(i=0;i<n;i++)
printf("x%d=%f ",i,x[i]);
printf("\n");
printf("迭代次数是:%d\n",k);
}
❷ 什么是数学算法里的“二算法” 是怎样用的
二算法就是二进制算法,用于计算机程序的编写
❸ 数学算法的概念问题。不会的就不要来了。
质数又称素数。
指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.
算法设计思想是:
将一个数分别除以2、3、4……至这个数的算术平方根取整(6499的算术平方根取整的数是80),如果其中有一个或一个以上的商是整数,这个数就不是素数。
因6499÷67=97,所以6499不是素数。
❹ 数学算法结构
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。
一个算法应该具有以下五个重要的特征:
有穷性
(Finiteness)
算法的有穷性是指算法必须能在执行有限个步骤之后终止;
确切性
(Definiteness)
算法的每一步骤必须有确切的定义;
输入项
(Input)
一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;
输出项
(Output)
一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
可行性
(Effectiveness)
算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。
一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:[1]
1.算术运算:加减乘除等运算
2.逻辑运算:或、且、非等运算
3.关系运算:大于、小于、等于、不等于等运算
4.数据传输:输入、输出、赋值等运算[1]
二、算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。
算法可以宏泛地分为三类:
一、有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。
二、有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。
三、无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。
希望我能帮助你解疑释惑。
❺ 数学算法有哪些
不知道你具体要什么内容
四则运算、指数、对数、开方、积分、微分、求导、二次积分、高阶导数、偏微分、傅立叶变换、拉普拉斯变换、级数、极限、三角函数运算......太多了
❻ 数学算法:
N=6*A+3*B+C
其中,A代表可拆成三个不同自然数(如0 1 2)的种数,B代表可拆成二个不同自然数(如0 0 2)组合的种数,C代表可拆成三个相同自然数的种数;
1.X能被三整除则C等于1,否则等于0;
2.分析B,X=2*b1+b2;b1为[0,X/2]的自然数,共X/2+1个,但是,若X能被三整除则存在一种b1=b2的情况,所以此时B=X/2;
3.分析A,X=a1+a2+a3;假设a1<a2<a3;a2至少比a1大1,a3至少比a1大2,
则a1为[0,X/3-1]的自然数,共X/3个;
若(X-a1)能被2整除,则a2为[a1+1,(X-a1)/2-1]的自然数,共(X-a1)/2-a1-1个;
若(X-a1)不能被2整除,则a2为[a1+1,(X-a1)/2]的自然数,共(X-a1)/2-a1个;
a3为待定数,不需要考虑。
可根据以上分析写出代码让计算机进行计算
❼ 数学算法。
for是循环语句
print后面那个是输出
❽ 数学算法
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
}
}
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
斐波那契数列
斐波那契①是中世纪占主导地位的数学家之一,他在算术、代数和几何等方面多有贡献.他生于比萨的列奥纳多家族(1175—1250),是一位意大利海关设在南部非洲布吉亚的官员的儿子.由于他父亲的工作,使他得以游历了东方和阿拉伯的许多城市.而在这些地区,斐波那契熟练地掌握了印度—阿拉伯的十进制系统,该系统具有位置值并使用了零的符号.在那时,意大利仍然使用罗马数字进行计算.斐波那契看到了这种美丽的印度—阿拉伯数字的价值,并积极地提倡使用它们.公元1202年,他写了《算盘书》一书,这是一本广博的工具书,其中说明了怎样应用印度—阿拉伯数字,以及如何用它们进行加、减、乘、除计算和解题,此外还对代数和几何进行了进一步的探讨.意大利商人起初不愿意改变老的习惯,后来通过对阿拉伯数字不断地接触,加上斐波那契和其他数学家的工作,终使印度—阿拉伯数字系统得以在欧洲推广,并被缓慢地接受.
斐波那契数列——1,1,2,3,5,8,13,21,34,…
具有讽刺意味的是:斐波那契在今天的着名,是缘于一个数列.而这个数列则来自他的《算盘书》中一道并不出名的问题.他当时写这道题只是考虑作为一个智力练习.然而,到了19世纪,法国数学家E·卢卡斯出版了一部四卷本的有关娱乐数学方面的着作时,才把斐波那契的名字,加到该问题的解答和所出现的数列上去.
《算盘书》中引致斐波那契数列的问题是:
1)假定一个月大小的一对兔子(雄和雌的),对于繁殖还太年轻,但两个月大小的兔子便足够成熟.又假定从第二个月开始,每一个月它们都繁殖一对新的兔子(雄和雌的).
2)如果每一对兔子的繁殖都按上面说的同样的方式.试问,从开始起每个月有多少对兔子呢?
免子的对数
斐波那契数列的每一项,都等于它前两项的和.用公式表示为:
Fn=Fn-1+Fn-2.
那时,斐波那契并没有去研究这种数列的结果,从而他没有给出任何真正有意义的东西.一直到19世纪,当数学家们开始对这个数列感兴趣时,它的性质和它所触及的领域,才开始显现出来.
斐波那契数列出现在:
1)帕斯卡三角形,二项展开式和概率.
2)黄金比值突平鹁匦危?
3)自然和植物.
4)使人感兴趣的数学戏法.
5)数学恒等式
❾ 小学数学的计算中,算法有哪些例如:凑十法,想加算减
算法也就只有整数、小数、分数、百分数的加、减、乘、除,四则混合运算,乘方(只限于平方、立方),小数、分数、百分数的互化,形体周长、面积、体积计算,计量单位的换算,简单的有理数加减法。
至于运算的技巧就有很多,一般都是运算定律、性质进行简便计算,如加法交换律、加法结合律、连减性质、乘法交换律、乘法结合率、除法商不变性质,……很多,教师会在不同的阶段教学生灵活运用这些知识,提高学生的计算能力。
你说的凑十法只是计算技巧的一种。
❿ 数学算法的问题及十大算法是什么
LS,不是C吧,是数学啊算法框图好,具体的需要语法的可以自己写下,稍等(画图中……)