❶ 實用數學演算法是什麼
常用數學演算法!也是計算方法程序-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吧,是數學啊演算法框圖好,具體的需要語法的可以自己寫下,稍等(畫圖中……)