贵州大学-数值分析上机.docxVIP

  • 39
  • 0
  • 约1.6万字
  • 约 29页
  • 2018-04-13 发布于湖北
  • 举报
贵州大学-数值分析上机

《数值分析上机实验报告》  PAGE \* MERGEFORMAT 20 数值分析上机实验报告 学 院: 土木工程学院 专业名称: 土木工程 姓 名: XXXX 学 号: 201XXXXXXX 指导老师: XXX老师 2017年01月02日 第一题 一,用Newton法求方程:x7-28x4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001.) 解:(1)解题方法及理论依据: Newton迭代法定理:设函数在有限区间上二阶导数存在,且满足条件:  = 1 \* GB3 \* MERGEFORMAT ①;  = 2 \* GB3 \* MERGEFORMAT ②在区间上不变号;  = 3 \* GB3 \* MERGEFORMAT ③;  = 4 \* GB3 \* MERGEFORMAT ④,其中是中使达到的一个。 则对任意初始近似值,由Newton迭代过程 所生的迭代序列平方收敛于方程在区间上的唯一解。 计算机程序C语言 #includestdio.h #includemath.h void main() {int flag=1,c; //设置flag控制while循环(即控制整个程序是否继续运行) while(flag==1) {float x,y,f,f1; int i=0; printf(\n请输入x的值:\n); scanf(%f,x); //输入x的初值 for(;(f1!=0)(fabs(y-x)=0.000001);) //迭代循环控制条件 {y=x; f=pow(x,7)-28*pow(x,4)+14; //原方程 f1=7*pow(x,6)-28*4*pow(x,3); //原方程的导数方程 x=x-f/f1; //牛顿迭代公式 i++; //累计迭代的次数 printf(x=%f,y=%f\n,x,y); //输出每次迭代的值 } printf(\n方程的近似根:y=%f\n,y); printf(\n迭代次数:%d\n,i); printf(是否继续(Y/N)?); //提示是否输入下一个x的初值 getchar(); c=getchar(); if(c==N||c==n) //如果输入N或n,则flag=0退出程序;则继续运行程序 flag=0; else flag=1; } } 实验结果(截屏图): (3)Matlab语言 xk=1.2; fx=xk.^7-28*xk.^4+14; fxx=7*xk.^6-4*28*xk.^3; iffxx==0.0 disp end xkk=xk-fx/fxx; while abs(xkk-xk)=0.000001 xk=xkk; fxx=7*xk.^6-4*28*xk.^3; fx=xk.^7-28*xk.^4+14; iffxx==0.0 disp end xkk=xk-fx/fxx; end xkk 实验结果(截屏图): 问题讨论与分析: Newton迭代法是一个二阶收敛迭代式,他的几何意义是的切线与x轴的交点,故也称为切线法。它是平方收敛的,但它是局部收敛的,即要求初始值与方程的根充分接近,所以在计算过程中需要先确定初始值。本题在讨论中,讨论了区间(0.1,1.9)两端点是否能作为Newton迭代的初值,结果发现0.1不满足条件,而1.9满足,能作为初值。 第二题 二,已知函数值如下表: x1 2345f(x)00.6931471.09861231.38629441.6094378x678910f(x)1.79175951.94591012.0794452.19722462.3025851f(x)f(1)=1f(10)=0.1试用三次样条插值求f(4.563)和f(4.563)的近似值。 解:(1)解题方法及理论依据: 公式1 公式2 三弯矩方程: 其矩阵形式: 其中 对于上述矩阵方程,由于其系数矩阵为三对角矩阵,所以用追赶法来解。 解三对角方程组的追赶法: 设线性方

文档评论(0)

1亿VIP精品文档

相关文档