版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算方法及程序?qū)崿F(xiàn)計(jì)算方法及程序?qū)崿F(xiàn)計(jì)算方法及程序?qū)崿F(xiàn)資料僅供參考文件編號(hào):2022年4月計(jì)算方法及程序?qū)崿F(xiàn)版本號(hào):A修改號(hào):1頁(yè)次:1.0審核:批準(zhǔn):發(fā)布日期:一、對(duì)分法
1、#include""
main()
{
float
a[3]={,,},b[3]={-2,0,1},c[3];
float
f(float
x);
int
i;
for(i=0;i<3;i++)
{do{
c[i]=(a[i]+b[i])/;
if(f(c[i])==0)
exit(0);
else
if(f(c[i])*f(a[i])<0)
b[i]=c[i];
else
a[i]=c[i];
}
while((b[i]-a[i])>1e-5);
}c[i]=a[i];
printf("the
roots
are:");
for(i=0;i<3;i++)
printf("%f",c[i]);printf("");
}
float
f(float
x)
{
float
y;
y=x*x*x-2*x*x-4*x-7;
return(y);
}3、對(duì)分部分函數(shù)調(diào)用(題目要求如2)
#include
""
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
a=c;}
while((b-a)>1e-5);
return(a);}
main()
{
float
a=,b=,s;
s=f1(a,b);
printf("the
root
is
%f",s);}
2、用對(duì)分法求出方程x3-2x2-4x-7=0在區(qū)間【3,4】?jī)?nèi)的根,精度要求為105。
#include""
main()
{
float
a=,b=,c;
float
f(float
x);
do{
c=(a+b)/;
if(f(c)==0){printf("the
root
is
%f",c);
exit(0);/*找到方程的根*/
}
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);
}對(duì)分法的算法:
掃描法的算法:4、對(duì)分法和掃描結(jié)合
求方程x4-5x2+x+2=0的實(shí)根的上、下界,實(shí)現(xiàn)根的隔離,并用對(duì)分法求出所有的實(shí)根,精度要求為105。此方程的4個(gè)實(shí)根分別為:root=
root=
root=
root=
#include
""
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=,p[5],q[5],n;
scanf("%f%f",&a,&b)
x=a;
while(x<b)
{
if(f(x)*f(x+h)<=0)
{p[i]=x;q[i]=x+h;i=i+1;
printf("[%f,%f]\n",
p[i],
q[i]);
}
x=x+h;
n=i;
}
for(i=0;i<n;i++)
{a=p[i];b=q[i];
while(b-a>1e-5)
{
c=(a+b)/2;
if(f(c)==0)
{printf("%f\n",c);exit(0);}
else
if(f(a)*f(c)<0)
b=c;
else
a=c;
}
printf("%f\n",c)
}
}
二、秦九韶算法
使用秦九韶算法計(jì)算多項(xiàng)式的值a0xn+a1x1n+……a1nx+an
例如計(jì)算3x2+2x+1,當(dāng)x=-1時(shí)值為2。
main()
{
float
aa[20],y,x;
int
i,n;
printf("input
duo
xiang
shi
ci
shu
n:\n"
)
scanf("%d",&n);
printf("input
duo
xiang
shi
de
xi
shu\n");
for(i=0;i<=n;i++)
scanf("%f",&aa[i]);
printf("input
x\n");
scanf("%f",&x);
y=aa[0];
for(i=1;i<=n;i++)
y=y*x+aa[i];
printf("pn=%f\n",y);
}秦九韶算法三、牛頓法
1、編寫(xiě)牛頓法求方程根的通用程序,精度要求為105。(x3-x2-2x-3=0
初值
x0=2)
#include""
main()
{
float
f(float
x);
float
fd(float
x);
float
x,x0,x1;
x1=;
do{
x0=x1;
x1=x0-f(x0)/fd(x0);
}
while(fabs(x1-x0)>1e-5);
printf("the
root
is%f\n",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的立方根,精度要求為。
#include""
main()
{
double
x0,x1;
int
a;
printf("input
a\n");
scanf("%d",&a);
if(a==0){printf("a=0\n");exit(0);}
x1=a;
do{
x0=x1;
x1=x0-(x*x*x-a)/(3*x*x);
}
while(fabs(x1-x0)>=;
printf("the
root
is%f\n",x1);
printf("root=%f\n",x1);
}
3、用牛頓法求方程x-ex=0(x-exp(-x)=0)在1附近的根,精度要求為。
#include""
main()
{
float
x0,x1;
x1=;
do{
x0=x1;
x1=x0-(x-exp(-x))/(1+exp(-x));
}
while(fabs(x1-x0)>1e-5);
printf("the
root
is%f\n",x1);
}
牛頓法的算法:
4
四、列主元高斯消元法(通用程序)
#include""
#define
M
3
#define
N
3
main()
{
float
a[M][N+1],x[N],temp,l,s;
int
i,j,k,r;
printf("please
input
the
date:\n");
for(i=0;i<M;i++)
for(j=0;j<N+1;j++)
scanf("%f",&a[i][j]);
for(k=0;k<N-1;k++)
{
{r=k;
for(i=k+1;i<=M-1;i++)
if(fabs(a[i][k])>fabs(a[r][k]))
r=i;
}
if(a[r][k]==0)
{
printf("QY\n");
exit(0);
}
else
if(r!=k)
for(j=k;j<=N;j++)
{
temp=a[k][j];
a[k][j]=a[r][j];
a[r][j]=temp;
}
for(i=k+1;i<=N-1;i++)
{
l=a[i][k]/a[k][k];
for(j=k+1;j<=N;j++)
a[i][j]=a[i][j]-l*a[k][j];
}
}
for(k=N-1;k>=0;k--)
{
s
=;
for(j=k+1;j<=N-1;j++)
s
=
s
+a[k][j]*x[j];
x[k]=(a[k][N]-
s)/a[k][k];
}
for(i=0;i<=N-1;i++)
printf("x[%d]=%f\n",i,x[i]);
}列主元高斯消元法的算法:
5
五、LU分解法
用LU分解法解線性方程組,系數(shù)矩陣由二維數(shù)組a給出,右端由b數(shù)組給出。
#include""
main()
{
int
i,j,k,m,n=4;
float
t;
float
b[4]={1,1,-1,-1};
float
a[4][4]={{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+a[k][m]*a[m][j];
a[k][j]=a[k][j]-t;
}
for(i=k+1;i<n;i++)
{
t=0;
for(m=0;m<=k-1;m++)
t=t+a[i][m]*a[m][k];
a[i][k]=(a[i][k]-t)/a[k][k];
}
}
for(i=0;i<n;i++)
{
t=0;
for(j=0;j<=i-1;j++)
t=t+a[i][j]*b[j];
b[i]=b[i]-t;
}
for(i=n-1;i>=0;i--)
{
t=0;
for(k=i+1;k<n;k++)
t=t+a[i][k]*b[k];
b[i]=(b[i]-t)/a[i][i];
}
for(i=0;i<n;i++)
printf("%",b[i]);
}
LU分解法的算法:
6
六、雅可比迭代法
1、通用程序
#define
N
4
#include""
float
cha(x,y)
float
x[N],y[N];
{
float
z;
int
i,k;
z=fabs(y[0]-x[0]);
for(i=1;i<N;i++)
if(fabs(y[i]-x[i])>z)
z=fabs(y[i]-x[i]);
return
(z);
}
main()
{
float
a[N][N],b[N],x[N],y[N],h;
int
i,j,k;
float
t=0,s;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
scanf("%f",&h);
a[i][j]=h;
}
for(i=0;i<N;i++)
{
scanf("%f",&h);
b[i]=h;y[i]=0;
}
for(i=0;i<N;i++)
if(a[i][i]==0)
{printf("QIYI");exit(0);}
printf("Jacobi\n");
for(k=1;k<=30;k++)
{
for(i=0;i<N;i++)
x[i]=y[i];
for(i=0;i<N;i++)
{
t=0;
for(j=0;j<N;j++)
if(j!=i)
t=t+a[i][j]*x[j];
y[i]=(b[i]-t)/a[i][i];
}
if(cha(x,y)<1e-6)
{printf("xunhuancishu:k=%d\n",k);
for(i=0;i<N;i++)
printf("%10f",x[i]);printf("\n");
break;
}}
if(k>30)printf("fasann\n");
}2、實(shí)驗(yàn)書(shū)第4題
#include""
float
cha(x,y)
float
x[3],y[3];
{
float
z;
int
i,k,n=3;
z=fabs(y[0]-x[0]);
for(i=1;i<n;i++)
if(fabs(y[i]-x[i])>z)
z=fabs(y[i]-x[i]);
return
(z);
}
main()
{
float
a[3][3]={{10,-2,-1},{-2,10,-1},{-1,-2,5}};
float
b[3]={3,15,10},y[3]={0,0,0},x[3];
float
t=0,s;
int
i,j,k,n=3;
printf("Gauss-Seidel\n");
for(k=1;k<=30;k++)
{
for(i=0;i<n;i++)
x[i]=y[i];
for(i=0;i<n;i++)
{
t=0;
for(j=0;j<n;j++)
if(j!=i)
t=t+a[i][j]*x[j];
y[i]=(b[i]-t)/a[i][i];
}
if(cha(x,y)<1e-6)
{
printf("xunhuancishu:k=%d\n",k);
for(i=0;i<n;i++)
printf("%10f",y[i]);
printf("\n");
break;
}
}
if(k>30)printf("fasann\n");}
6
六、雅可比迭代法
1、通用程序
#define
N
4
#include""
float
cha(x,y)
float
x[N],y[N];
{
float
z;
int
i,k;
z=fabs(y[0]-x[0]);
for(i=1;i<N;i++)
if(fabs(y[i]-x[i])>z)
z=fabs(y[i]-x[i]);
return
(z);
}
main()
{
float
a[N][N],b[N],x[N],y[N],h;
int
i,j,k;
float
t=0,s;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
scanf("%f",&h);
a[i][j]=h;
}
for(i=0;i<N;i++)
{
scanf("%f",&h);
b[i]=h;y[i]=0;
}
for(i=0;i<N;i++)
if(a[i][i]==0)
{printf("QIYI");exit(0);}
printf("Jacobi\n");
for(k=1;k<=30;k++)
{
for(i=0;i<N;i++)
x[i]=y[i];
for(i=0;i<N;i++)
{
t=0;
for(j=0;j<N;j++)
if(j!=i)
t=t+a[i][j]*x[j];
y[i]=(b[i]-t)/a[i][i];
}
if(cha(x,y)<1e-6)
{printf("xunhuancishu:k=%d\n",k);
for(i=0;i<N;i++)
printf("%10f",x[i]);printf("\n");
break;
}}
if(k>30)printf("fasann\n");
}2、實(shí)驗(yàn)書(shū)第4題
#include""
float
cha(x,y)
float
x[3],y[3];
{
float
z;
int
i,k,n=3;
z=fabs(y[0]-x[0]);
for(i=1;i<n;i++)
if(fabs(y[i]-x[i])>z)
z=fabs(y[i]-x[i]);
return
(z);
}
main()
{
float
a[3][3]={{10,-2,-1},{-2,10,-1},{-1,-2,5}};
float
b[3]={3,15,10},y[3]={0,0,0},x[3];
float
t=0,s;
int
i,j,k,n=3;
printf("Gauss-Seidel\n");
for(k=1;k<=30;k++)
{
for(i=0;i<n;i++)
x[i]=y[i];
for(i=0;i<n;i++)
{
t=0;
for(j=0;j<n;j++)
if(j!=i)
t=t+a[i][j]*x[j];
y[i]=(b[i]-t)/a[i][i];
}
if(cha(x,y)<1e-6)
{
printf("xunhuancishu:k=%d\n",k);
for(i=0;i<n;i++)
printf("%10f",y[i]);
printf("\n");
break;
}
}
if(k>30)printf("fasann\n");}
8
雅可比迭代法的算法:
高斯-塞德?tīng)柕ǖ乃惴ǎ?/p>
八、牛頓基本插值公式(實(shí)驗(yàn)書(shū)第三題)
main()
{
int
i,k,n;
float
x[20],y[20],t,h,p;
scanf("%d",&n);
for(i=0;i<=n;i++)
scanf("%f%f",&x[i],&y[i]);
scanf("%f",&t);
for(k=1;k<=n;k++)
{
for(i=n;i>=k;i--)
{y[i]=(y[i]-y[i-1])/(x[i]-x[i-k]);
printf("%",y[i]);
}
printf("\n");
}
p=y[0];
h=1;
for(i=1;i<=n;i++)
{
h=h*(t-x[i-1]);
p+=h*y[i];
}
printf("p=%f\n",p);
}牛頓基本插值公式算法:
9
九、Lagarange全程插值算法(實(shí)驗(yàn)書(shū)第一題)
main()
{int
i,k,n;
float
x[20],y[20],t,s,p;
p=0;
scanf("%d",&n);
for(i=0;i<=n;i++)
scanf("%f%f",&x[i],&y[i]);
scanf("%f",&t);
for(k=0;k<=n;k++)
{s=1;
for(i=0;i<=n;i++)
if(i!=k)
s=s*((t-x[i])/(x[k]-x[i]));
p=y[k]*s+p;}
printf("%f",p);
}Lagarange全程插值算法:
十、復(fù)合辛普森求積公式的算法
1、編制復(fù)合Simpson公式求積分的通用程序,設(shè)N=8,試算10211Xdx
①、#include""
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);
}
②
10
十一、多項(xiàng)式型經(jīng)驗(yàn)公式算法
設(shè)實(shí)驗(yàn)數(shù)據(jù)如下:
Xi
Yi
求其二次擬合多項(xiàng)式
#define
N
7
#define
m
2
#include
""
main()
{
int
i,j,k;
float
x[N+1]={0,,,,,,,},d,l;
float
y[N+1]={0,,,,,,,};
float
t[m+1],temp,s;
float
a[m+1][m+2]={0};
for(i=0;i<=m;i++)
{
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)外墻構(gòu)造詳圖
- 2025年度砂石廠員工培訓(xùn)與發(fā)展合同3篇
- 2025年度科研試驗(yàn)合同:活動(dòng)板房作為科研試驗(yàn)平臺(tái)的租賃3篇
- 超市調(diào)研課程設(shè)計(jì)
- 二零二五年度建筑施工現(xiàn)場(chǎng)安全應(yīng)急預(yù)案編制合同范例
- 2025版環(huán)境監(jiān)測(cè)網(wǎng)絡(luò)建設(shè)環(huán)境行政服務(wù)合同3篇
- 2025年期貨交易工作計(jì)劃范文(2篇)
- 關(guān)于員工請(qǐng)假規(guī)章制度
- 2025年新世紀(jì)版八年級(jí)地理上冊(cè)階段測(cè)試試卷含答案
- 2025年滬教版八年級(jí)化學(xué)上冊(cè)階段測(cè)試試卷
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)模擬試題(無(wú)答案)
- 醫(yī)療器械考試題及答案
- 初三家長(zhǎng)會(huì)數(shù)學(xué)老師發(fā)言稿
- 責(zé)任護(hù)理組長(zhǎng)競(jìng)選
- 法人代持免責(zé)任協(xié)議書(shū)(2篇)
- 閘站監(jiān)理實(shí)施細(xì)則
- 2024-2025學(xué)年湖北省恩施土家族苗族自治州數(shù)學(xué)六上期末檢測(cè)試題含解析
- 2024年中國(guó)寵物殯葬服務(wù)行業(yè)市場(chǎng)規(guī)模及發(fā)展前景研究報(bào)告(智研咨詢)
- 礦用電纜市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 失蹤老人歸家協(xié)議書(shū)模板
- 單位委托員工辦理水表業(yè)務(wù)委托書(shū)
評(píng)論
0/150
提交評(píng)論