求解未知方程

clear
clc
close all

% 定义 a 的范围
a_values = 0:0.01:5;

% 初始条件
Y0 = [1; 0];

% 时间步长
dt = 0.01;

% 时间范围
t_end = dt * length(a_values);
t_total = 0:dt:t_end;

% 初始化存储结果的数组
Y_total = zeros(length(t_total), 1);

% 设置初始条件
Y_current = Y0;
Y_total(1) = Y0(1);

% 循环遍历每个 a 值
for i = 1:length(a_values)
    a = a_values(i);
    % 定义微分方程组
    dydt = @(t, Y) [Y(2); a - Y(1) - Y(2)];
    
    % 使用 ode45 求解
    tspan = [0 dt];
    [t, Y] = ode45(dydt, tspan, Y_current);
    
    % 更新当前解
    Y_current = Y(end, :);
    Y_total(i + 1) = Y_current(1);
end

% 绘制结果
figure;
plot(t_total, Y_total, '-o');
title('Solution of y'''' + y'' + y = a with varying a');
xlabel('Time t');
ylabel('Solution y');
grid on;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值