Matlab中如何绘制微分方程求解所得的y(x)关系曲线
Matlab绘制y(x)关系图像的实现方案
你已经得到了参数形式的x(t)、y(t)表达式,只需先确定积分常数C1、C2的取值,再基于参数t的采样值计算x、y序列即可绘图,以下是两种常用实现方法:
方法1:数值法(无需额外工具箱)
直接基于数值计算实现,兼容性最好:
% 1. 设定积分常数取值,可根据你的需求修改 C1 = 1; C2 = 2; % 2. 设定参数t的采样范围和点数,可根据曲线覆盖范围调整 t = linspace(-2, 1, 1000); % 3. 计算x、y序列 x = -C1.*exp(-t) + C2.*exp(3*t)./3; y = C1.*exp(-t) + C2.*exp(3*t); % 4. 绘图 plot(x, y, 'b-', 'LineWidth', 1.5) xlabel('x') ylabel('y') title('y(x)关系曲线') grid on
如果需要对比多组C1、C2对应的曲线,可hold on后重复计算绘图即可。
方法2:符号计算法(需符号计算工具箱)
适合需要频繁修改表达式、参数的场景:
% 定义符号变量 syms C1 C2 t % 写入x(t)、y(t)表达式 x(t) = -C1*exp(-t) + C2*exp(3*t)/3; y(t) = C1*exp(-t) + C2*exp(3*t); % 代入C1、C2的具体取值 x_val = subs(x, {C1, C2}, {1, 2}); y_val = subs(y, {C1, C2}, {1, 2}); % 绘制参数曲线,指定t的取值范围为[-2, 1] fplot(x_val, y_val, [-2, 1], 'r-', 'LineWidth',1.5) xlabel('x') ylabel('y') title('y(x)关系曲线') grid on
内容的提问来源于stack exchange,提问作者Elijah Antonov
相关产品推荐
相关产品推荐

