77范文网 - 专业文章范例文档资料分享平台

西电计算方法上机实习题(3)

来源:网络收集 时间:2019-02-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(2)题

2、用LU分解法解方程组 (1)程序设计 #include void main() { float x[4]; int i; float a[4][5]={48,-24,0,-12,4, -24,24,12,12,4, 0,6,20,2,-2, -6,6,2,16,-2 }; void DirectLU(float*,int,float[]); DirectLU(a[0],4,x); for(i=0;i<=3;i++)printf(\}

void DirectLU(float*u,int n,float x[]) { int i,r,k; for(r=0;r<=n-1;r++) { for(i=r;r<=n;i++) for(k=0;k<=r-1;k++) *(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i)); for(i=r+1;i<=n-1;i++)

}

{ for(k=0;k<=r-1;k++) *(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r)); *(u+i*(n+1)+r)/=*(u+r*(n+1)+r); } }

for(i=n-1;i>=0;i--) { for(r=n-1;r>=i+1;r--) *(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r]; x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i)); }

四、总结

掌握了用列主元消去法和LU分解法求解方程组程序编写的技巧。

4 插值法

一、实验目的

(1)熟悉拉格朗日插值法多项式和牛顿插值多项式,注意其不同点; (2)掌握三次样条插值解决一些实际问题。

二、实验内容

1、按所给数据做二次插值,并求给定点的函数值 2、按所给数据做五次插值,并求给定点的函数值 3、牛顿前插公式计算函数值

三、实验步骤、程序设计、实验结果及分析

1、二次插值 (1)程序设计 #include

float Lagrange(float x[],float y[],float xx,int n) //n为(n+1)次插值; { int i,j; float *a,yy=0; a=new float[n]; 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]; } delete a; return yy; }

void main() { float x[5]={-3.0,-1.0,1.0,2.0,3.0}; float y[5]={1.0,1.5,2.0,2.0,1.0}; float xx1=-2,xx2=0,xx3=2.75,yy1,yy2,yy3; yy1=Lagrange(x,y,xx1,3); yy2=Lagrange(x,y,xx2,3); yy3=Lagrange(x,y,xx3,3); printf(\ printf(\ printf(\}

(2)实验结果

2、五次插值 (1)程序设计 #include

float Lagrange(float x[],float y[],float xx,int n) //n为(n+1)次插值; { int i,j; float *a,yy=0; a=new float[n]; 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]; }

delete a; return yy; }

int main() { float x[6]={0.30,0.42,0.50,0.58,0.66,0.72}; float y[6]={1.04403,1.08462,1.11803,1.15603,1.19817,1.23223}; float xx1=0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3; yy1=Lagrange(x,y,xx1,6); yy2=Lagrange(x,y,xx2,6); yy3=Lagrange(x,y,xx3,6); printf(\ printf(\ printf(\}

(2)实验结果

3、牛顿前插公式计算函数值 (1)程序设计 #include #define N 3

void Difference(float y[],float f[4][4],int n) { int k,i; f[0][0]=y[0];f[1][0]=y[1];f[2][0]=y[2];f[3][0]=y[3]; for(k=1;k<=n;k++) for(i=0;i<=(N-k);i++) f[i][k]=f[i+1][k-1]-f[i][k-1]; return; }

int main() { int i,k=1; float a,b=1,m=21.4,t=1.4,f[4][4]={0};

float x[5]={20,21,22,23,24}; float y[5]={1.30103,1.32222,1.34242,1.36173,1.38021}; Difference(y,f,N); a=f[0][0]; for(i=1;i<=N;i++) { k=k*i; b=b*(t-i+1); a=a+b*f[0][i]/k; } printf(\ for (i=0;i<=4;i++) printf( \ printf(\ for (i=0;i<=4;i++) printf(\ for(k=1;k<=3;k++) { printf(\ for(i=0;i<=(3-k);i++) { printf(\ } } printf (\ printf(\ printf (\}

(2)实验结果

四、总结

学习了插值法,学会了利用插值法编程求多项式的解,可以求解很多问题,让求解多项式解变得非常简单。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库西电计算方法上机实习题(3)在线全文阅读。

西电计算方法上机实习题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/478403.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: