非线性方程实根的正割法.docVIP

  • 76
  • 0
  • 约1.82千字
  • 约 4页
  • 2018-05-29 发布于河南
  • 举报
非线性方程实根的正割法

山东师范大学数学科学学院实验报告 实验课程: 非线性方程(组)的解法 实验项目: 非线性方程实根的正割法 姓名 郭新国 学号: 200708020244 班级: 二班 专业: 信计 指导教师: 朱爱玲 完成日期: 2010-4-20 实验目的:掌握解非线性方程实根的正割法的上机编程运算.实验内容 问题1. 用正割法求x^3-0.2x^2-0.2x-1.2=0在区间 [1,1.5]内的实根(精确到1e-3). // 用单点弦法求解 问题1中的方程,不妨设为x0 = 1.5, x1 = 1 #include iostream #include iomanip #include cmath using namespace std; int main() { int k; double x0,fx0,x,xk,fxk,err; double f(double x); k = 0; x0 = 1.5; fx0 = f(x0); xk = 1.0; err = 1.0; while ( err 0.001 ) { x = xk; fxk = f(xk); xk = xk - fxk*(xk - x0)/(fxk - fx0); err = fabs(x-xk); k++; } cout K-th iteration: k endl; // 迭代次数 cout err= setprecision(12) err endl; // 迭代序列最后两项之间的差 cout x= setprecision(12) x endl; // 方程的解 cout f(x)= setprecision(12) f(x) endl; // 方程中的函数f(x)在解x点的值 return (0); } double f(double x) { return ( pow(x,3) - 0.2*pow(x,2) - 0.2*x - 1.2 ); } 问题2. 用双点弦法解方程x=exp(-x) // 用双点弦法求解 问题2中的方程x = exp(-x),不妨设f(x) = x*exp(x)-1, 设x0 = 0, x1 = 1 // 1e-5为容许误差 #include iostream #include iomanip #include cmath using namespace std; int main() { int k; double x,xi,xj,fxi,fxj,err; double f(double x); k = 0; xi = 0.0; xj = 1.0; err = fabs(xi - xj); while ( err 0.00001 ) { // 迭代序列顺序 xi,xj,x... fxi = f(xi); fxj = f(xj); x = xj - fxj*(xj - xi)/(fxj - fxi); xi = xj; xj = x; err = fabs(xi - xj); k++; } cout K-th iteration: k endl; // 迭代次数 cout err= setprecision(12) err endl; // 迭代序列最后两项之间的差 cout x= setprecision(12) x endl; // 方程的解 cout f(x)= setprecision(12) f(x) endl; // 方程中的函数f(x)在解x点的值 return (0); } double f(double x) { return ( x*exp(x) - 1.0 ); } 运算结果: 指导教师意见

文档评论(0)

1亿VIP精品文档

相关文档