您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第二次实验报告(非线性方程求根)
数值计算方法Matlab实验报告数学实验报告实验五学院:数学与统计学院班级:数学与统计学院(2)班姓名:石紫雲学号:201470010234数值计算方法Matlab实验报告非线性方程的数值解法实验1实验目的1)进一步熟练掌握求解非线性方程的牛顿迭代法和弦截法。2)根据牛顿迭代法和弦截法的原理,编写程序求解非线性方程,提高编程解决问题的能力。2实验内容(1)用牛顿法和割线法求下列方程的根x^2-e^x=0;x*e^x-1=0;(2)用牛顿迭代法求平方根,计算53实验原理(1)牛顿迭代公式:1()/'()kkkkxxfxfx双点弦法公式:111()()()()kkkkkkkfxxxxxfxfx(2)令2()fxxA,再用牛顿法求根。4实验步骤1)根据牛顿迭代法,双点弦法的算法编写相应的求根函数;2)用牛顿迭代法和双点弦法分别对方程进行求解;5程序设计牛顿迭代法x0=1.0;N=100;k=0;eps=5e-6;delta=1e-6;数值计算方法Matlab实验报告while(1)x1=x0-fc1(x0)/fc2(x0);k=k+1;ifkNdisp('Newtonmethodfailed')breakendif(abs(x1-x0)delta||abs(fc1(x1))delta)break;endx0=x1;endfprintf('%f',x0)fprintf('%f',abs(fc1(x1)))双点弦法functioncutline(x0,x1)N=100;k=0;delta=5e-8;while(1)(abs(x1-x0)=delta)c=x1;x1=cutnext(x0,x1);x0=c;k=k+1;ifkNdisp('Cutlinemethodfailed')break;endif(abs(x1-x0)delta||abs(fc1(x1))delta)break;endendfprintf('%10f\n',x1);functiony=cutnext(a,b)y=b-fc(b)/(fc(b)-fc(a))*(b-a);1)原函数数值计算方法Matlab实验报告functionfc1=fc1(x)fc1=x^2-exp(x);end导函数functionfc2=fc2(x)fc2=2*x-exp(x);end2)原函数functionfc1=fc1(x)fc1=x*exp(x)-1;end导函数functionfc2=fc2(x)fc2=1*exp(x)+x*exp(x);end3)原函数functionfc1=fc1(x)fc1=x^2-5;end导函数functionfc2=fc2(x)fc2=2*x;end6实验结果及分析方程x^2-e^x=0x*e^x-1=0250x牛顿迭代法结果牛顿法迭代次数弦截法结果弦截法迭代次数注:牛顿迭代法由于设置delta=1e-6,所以算出的误差e1.0*10^-6;割线法由于设置delta=5e-8,所以误差e5.0*10^-8.7总结
本文标题:第二次实验报告(非线性方程求根)
链接地址:https://www.777doc.com/doc-5712089 .html