0
我想將三個不同的函數繪製成一個繪圖,ODE的近似解,ODE的精確解和相對誤差。我的功能只是輸出這些圖中的一個。我不確定如何一次繪製所有三個圖形,以及如何更改k的參數,以便將k繪製在.02,.1和1.5處。在MATLAB中更改參數
我有這個功能在一個單獨的文件。這是近似的解決方案:
function dydt = prblm1_fun(t,y)
k = 0.02
if t < 1
dydt = y(1)*k + sin(pi*t);
elseif t < 2
dydt = y(1)*k + 0.5;
else
dydt=y(1)*k + exp(t-2)/2;
end
此功能試圖解決近似和繪製三個。
[T,Y] = ode45(@prblm1_fun,[0 2.5],0);
plot(T,Y)
k=0.02;
for i =1:length(T)
if T(i) < 1
y_exact(i) = 1/(k^2+pi^2)*(pi*exp(k*T(i))-pi*cos(pi*T(i))- k*sin(pi*T(i)));
elseif T(i) < 2
y_exact(i) = 1/2/k*(exp(k*(T(i)-1))-1) + pi/(k^2+pi^2)*(exp(k*T(i)) + exp(k*(T(i)-1)));
else
y_exact(i) = 1/2/k*(exp(k*(T(i)-1))-exp(k*(T(i)-2))) + pi/(k^2+pi^2)(exp(k*T(i)) + exp(k*(T(i)-1))) + 1/2/(k-1)*(exp(k*(T(i)-2)) - exp(T(i)-2));
end
end
rel_error = (y_exact - Y')./y_exact
我在哪裏出錯了,如何在單個圖中更改k的參數?