微分方程数值解用matlab练习

Posted lwqq3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微分方程数值解用matlab练习相关的知识,希望对你有一定的参考价值。

实习题1:

将xx化成一阶方程组,并用Euler法和改进的Euler法求解,步长h = 0.1, 0.05。

画出Euler法,Euler改进法以及精确解的数值结果图形

技术图片
clear all;
clc;
h1 = 0.05;
len = 1 + 1 / h1;
u = zeros(1, len);
v = zeros(1, len);
t = zeros(1, len);
exact = zeros(1, len);

u(1) = 0;
v(1) = 1;
t(1) = 0;
exact(1) = 0;
for i = 1:len-1
    t(i + 1) = i * h1;
    u(i + 1) = u(i) + h1 * v(i);
    v(i + 1) = v(i) - h1 * u(i);
    exact(i + 1) = sin(h1 * i);
end

u1 = zeros(1, len);
v1 = zeros(1, len);
u1(1) = 0;
v1(1) = 1;
for i = 1:len-1
    u1(i + 1) = ((1 + h1 * h1 / 4) * u(i) + h1 * v(i)) / (1 - h1 * h1 / 4);
    v1(i + 1) = v1(i) + (u1(i) + u1(i + 1)) * h1 / 2;
end
    
plot(t, u, r*, markersize, 10);
hold on
plot(t, u1, r., markersize, 20);
hold on
plot(t, exact);
grid on
View Code

 

以上是关于微分方程数值解用matlab练习的主要内容,如果未能解决你的问题,请参考以下文章

matlab练习程序(龙格库塔法)

怎么用matlab解方程啊?

本学期微分方程数值解课程总结(matlab代码)

matlab练习程序(常微分方程向量场)

Matlab如何在解微分方程并将数值代入时使用parfor

Matlab常微分方程数值解法