扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:信息产业部电子第二十二研究所青 来源:yesky 2007年11月16日
关键字: Visual C++ 常微分方程 初值 求解
float y[6]; file://用于存放计算出的常微分方程数值解 float r; file://同真实解的误差情况 memset(y,0,sizeof(float)*6);//清零 y[0]=1; file://y(0)=1 …… for(float x=0;x<0.6;x+=0.1) file://区间分5段,步长为0.1 { r=x+expf(-x); file://真实解y(x)=x+e-x y[i+1]=y[i]+0.1*(x-y[i]+1); file://数值解(近似) r=fabs(r-y[i]); file://误差 str.Format("y[%d]=%f r=%f\r\n",i,y[i],r); i++; msg+=str; } AfxMessageBox(msg); …… |
xI(各分点) | yI (数值解) | y(xi) (真实值) | | y(xi)- yI | (误差) |
0.0 | 1.000000 | 1.000000 | 0.000000 |
0.1 | 1.000000 | 1.004837 | 0.004837 |
0.2 | 1.010000 | 1.018731 | 0.008731 |
0.3 | 1.029000 | 1.040818 | 0.011818 |
0.4 | 1.056100 | 1.070320 | 0.014220 |
0.5 | 1.090490 | 1.106531 | 0.016041 |
…… for(float x=0;x<0.6;x+=0.1) { r=x+expf(-x); T1=y[i]+0.1*(x-y[i]+1); file://分步进行计算 T2=y[i]+0.1*((x+0.1)-T1+1); y[i+1]=(T1+T2)/2; r=fabs(r-y[i]); str.Format("y[%d]=%f r=%f\r\n",i,y[i],r); i++; msg+=str; } AfxMessageBox(msg); |
xI(各分点) | yI (数值解) | y(xi) (真实值) | | y(xi)- yI | (误差) |
0.0 | 1.000000 | 1.000000 | 0.000000 |
0.1 | 1.005000 | 1.004837 | 0.000163 |
0.2 | 1.019025 | 1.018731 | 0.000294 |
0.3 | 1.041218 | 1.040818 | 0.000400 |
0.4 | 1.070802 | 1.070320 | 0.000482 |
0.5 | 1.107076 | 1.106531 | 0.000545 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者