许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  数值方法揭秘:Adams预测-校正初值问题

数值方法揭秘:Adams预测-校正初值问题

阅读数 6
点赞 0
article_banner

1 问题描述

2 方法参考

3 Adams预测-校正公式

  • 现采用四阶标准Runge-Kutta法求出发值 y_1 y_2 y_3

4 计算结果

  • 计算结果与误差
计算结果与误差
  • 求解图像
求解图像

5 求解程序

function sys=adams()
%{
程序功能:
1、Adams预测-校正法求解常微分方程
2、y(n+1)=y(n)+h*f(xn,yn)
%}
  clc,clear,close all;
  x1=0;
  y1=1;
  x2=1;
  h=0.1;
  n=(x2-x1)/h;
  
  x=zeros(n+1,1);
  y=zeros(n+1,1);
  ya=zeros(n+1,1);
  yr=zeros(n+1,1);
  e=zeros(n+1,1);
  fr=zeros(n+1,1);
  
  x(1)=x1;
  y(1)=y1;
  yr(1)=y(1);
  e(1)=0;
  fr(1)=f(x(1),y(1));
  
  %四阶标准Runge-Kutta法求出发值 
  for i=1:3
      
      k1=f(x(i),y(i));
      k2=f(x(i)+0.5*h,y(i)+0.5*h*k1);
      k3=f(x(i)+0.5*h,y(i)+0.5*h*k2);
      k4=f(x(i)+h,y(i)+h*k3);
      y(i+1)=y(i)+h*(k1+2*k2+2*k3+k4)/6;
      x(i+1)=x(i)+h;     
      fr(i+1)=f(x(i+1),y(i+1));
      
      yr(i+1)=(1+2*x(i+1))^(0.5);
      e(i+1)=abs(yr(i+1)-y(i+1));
      
  end
  
  %Adams预测-校正
  for j=4:n
      
      x(j+1)=x(j)+h;
      ya(j+1)=y(j)+h*(55*fr(j)-59*fr(j-1)+37*fr(j-2)-9*fr(j-3))/24;
      y(j+1)=y(j)+h*(9*f(x(j+1),ya(j+1))+19*fr(j)-5*fr(j-1)+fr(j-2))/24;      
      fr(j+1)=f(x(j+1),y(j+1)); 
      
      yr(j+1)=(1+2*x(j+1))^(0.5);
      e(j+1)=abs(yr(j+1)-y(j+1));
  end
  
  sys(:,1)=x;
  sys(:,2)=y;
  sys(:,3)=yr;
  sys(:,4)=e;
  
  draw(x,y,yr);
       
end

function sys=f(x,y)

  sys=y-2*x/y;
  
end

function draw(x,y,yr)
    set(0,'defaultfigurecolor','w')
    plot(x, y, '-b', x, yr, '--r')
    xlabel('X')
    ylabel('Y')
    title('The Euler Solution Chart')
    grid on
end


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空