1、 return; if(m_e=0)请输入精度! /迭代初值 long n = 1; double h = m_b-m_a; /步长 double temp = h*(f(m_a) + f(m_b)/2.0, t; double p = m_e + 1.0;/精度控制 double sum, x; while (p = m_e) sum = 0.0; for (long k=0; k=m_e) n=n+n; S2n=computerAutoT(m_a,m_b,n,temp); Cn=16/15*S2n-1/15*Sn; S4n=computerAutoT(m_a,m_b,n,temp); C2
2、n=16/15*S4n-1/15*S2n; Rn=64/63*C2n-1/63*Cn; S8n=computerAutoT(m_a,m_b,n,temp); C4n=16/15*S8n-1/15*S4n; R2n=64/63*C4n-1/63*C2n; p=fabs(R2n-Rn); Sn=S2n;,R2n);实验四 源程序 1.改进欧拉法程序代码double f2(double x,double y) return (-x*y*y);double Euler(double &x,double y,double h) double Yk; Yk=y+h/2*(f2(x,y)+f2(x+h,y+
3、h*f2(x,y); x=x+h; y=Yk; return y;void GJEuler:请输入x取值上下限! if(m_h=0)请输入步长! if(m_y0=0)请确认y的初值是否为0! double y100,a=m_a; y0=m_y0; char buffer7; for(int i=0;i=1e-12;i+,x=x+m_h) yi+1=Runge_Kutta1(x,yi,m_h); m_Runge.InsertItem(i,buffer); gcvt(x+m_h,7,buffer); m_Runge.SetItemText(i,1,buffer); m_Runge.SetItemT
4、ext(i,2,buffer); m_Runge.SetRedraw(TRUE);初始化函数中的列表控件的操作同改进欧拉法实验五 源程序1.高斯塞德尔迭代法程序代码数据读入同实验一中的高斯列主消元法double abc (double a10,double x,int i,int m) double s=0; int j; for(j=0;jm;j+) if(i=j) continue; s+=aij*xj; return (s);/G-S迭代 for(k1=1;k1e) e=fabs(x0i-t); if(em_E) break;/计算结果输出 char buffer50; char str
5、ing100; char min1015; gcvt(x0j,7,buffer); strcpy(minj,buffer); k=0; for(i=0; for(j=0;14&minij!=0; stringk=minij; k+; stringk= k+; stringk= m_k.Format(,k1);%s,string);2.牛顿迭代法程序代码void Five_Newton: if(m_E=0) AfxMessageBox( if(m_x0=0)请确认初值是否为0! double xk1,xk0,x; xk0 = m_x0; for (int k=0;100; xk1 = xk0 - f(xk0)/g(xk0); if (fabs(xk1-xk0) m_E& fabs(f(xk1) m_E) x = xk1; else xk0 = xk1;,x);,k);运行结果下图分别为1. 进入界面的主对话框2. 变步长梯形法的对话框3. Romberge对话框4. 改进欧拉法对话框 5. 四阶Romge-Kutta对话框6. 高斯-塞德尔对话框7. 牛顿迭代法对话框
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2