VENOM$ 2022-06-03 19:13 采纳率: 0%
浏览 52
已结题

编写c++或者matlab程序,求微分方程的数值解差分解。

编写c++或者matlab程序,求微分方程的数值解差分解。用c++或者matlab都可以。有点急,谢谢各位了。

img

  • 写回答

1条回答 默认 最新

  • 歇歇 2022-06-10 23:15
    关注

    微分方程的数值解法——常微分方程——差分法
    差分法思想:
    差分就是讲解析解中的差分方程中的微分项用差分来代替,当取得变量步长足够小时可以无限逼近。

    两大步骤:
    1.建立差分格式
    1.对解得存在区域划分
    2.采用不同的算法可以得到不同的精度,即截断误差
    3.数值解对解析解的精度
    4.数值解收敛于真解的速度
    5.处分算法的稳定性
    2.差分格式求解
    将微分方程转化为代数方程求解,一般常用地推算法

    %微分方程数值解法----欧拉法测试
    %-------------------------------------
    clc;
    clear all;
    close all;
    %-------------------------------------
    %du/dt + u^2 = 0
    %u(0)=1
    %-------------------------------------
    N = 100;
    t_s = 0;
    t_e = 1;
    dt = (t_e-t_s)/N;
    t = t_s:dt:t_e-dt;
    %-------------------------------------
    %解析解
    u_j=1./(1+t);
    u_s(1) = 1;
    for i=2:N
        u_s(i)=-u_s(i-1)^2*dt+u_s(i-1);
    end
    subplot(2,1,1);
    plot(t,u_j,'-o',t,u_s,'-*');
    xlabel('t');
    ylabel('y');
    legend('解析解','数值解');
    subplot(2,1,2);
    plot(t,u_j-u_s,'-r');
    xlabel('t');
    ylabel('err');
    legend('误差');
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 创建了问题 6月3日