后退欧拉法求解常微分方程(c++)

后退欧拉法求解常微分方程(c++)




#include
#include
using namespacestd;

intmain()

{

double x,y,yn,h,temp;

x=0;//x赋初值

y=1;//y赋初值

h=0.1;//步长设置为0.1

cout<<setiosflags(ios::left);

cout<<setw(20)<<"y的计算值";

cout<<setw(20)<<"y的理论值";

cout<<setw(20)<<"x的值";

cout<<setw(20)<<"误差"<<endl;

cout<<setw(20)<<y;

cout<<setw(20)<<y;

cout<<setw(20)<<x;

cout<<setw(20)<<0<<endl;

for (int i=0;i<10;i++)

{

temp=y;//每次迭代之前y未变化的值,用于后面的计算

y=y+h(y-2x/y);//使y显化

x+=h;

do

{

yn=y;

y=temp+h(y-(2x/y));

}

while (abs(yn-y)>0.0000001);

cout<<setw(20)<<y;//输出y的新值

cout<<setw(20)<<sqrtf(1+2*x);//计算y的理论值

cout<<setw(20)<<x;//输出x的新值

cout<<setw(20)<<abs(y-sqrtf(1+2x))<<endl*;//计算误差

}

return 0;

}

后退欧拉法求解常微分方程(c++)




原文链接: https://www.cnblogs.com/liusuanyatong/p/11259924.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/225027

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月13日 下午12:39
下一篇 2023年2月13日 下午12:40

相关推荐