用matlab ode45解二次导数并根据解的系数变化画出所有图像X''+2*zeta*X'+X=cos(t)zeta是一个有多个元素的向量已经写出了求原式子的部分:unction out = hw2Q4() clear allclose allclctspan = [0 40]; %Range of t we are
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 02:05:28
![用matlab ode45解二次导数并根据解的系数变化画出所有图像X''+2*zeta*X'+X=cos(t)zeta是一个有多个元素的向量已经写出了求原式子的部分:unction out = hw2Q4() clear allclose allclctspan = [0 40]; %Range of t we are](/uploads/image/z/2542024-64-4.jpg?t=%E7%94%A8matlab+ode45%E8%A7%A3%E4%BA%8C%E6%AC%A1%E5%AF%BC%E6%95%B0%E5%B9%B6%E6%A0%B9%E6%8D%AE%E8%A7%A3%E7%9A%84%E7%B3%BB%E6%95%B0%E5%8F%98%E5%8C%96%E7%94%BB%E5%87%BA%E6%89%80%E6%9C%89%E5%9B%BE%E5%83%8FX%27%27%2B2%2Azeta%2AX%27%2BX%3Dcos%28t%29zeta%E6%98%AF%E4%B8%80%E4%B8%AA%E6%9C%89%E5%A4%9A%E4%B8%AA%E5%85%83%E7%B4%A0%E7%9A%84%E5%90%91%E9%87%8F%E5%B7%B2%E7%BB%8F%E5%86%99%E5%87%BA%E4%BA%86%E6%B1%82%E5%8E%9F%E5%BC%8F%E5%AD%90%E7%9A%84%E9%83%A8%E5%88%86%EF%BC%9Aunction+out+%3D+hw2Q4%28%29+clear+allclose+allclctspan+%3D+%5B0+40%5D%3B+%25Range+of+t+we+are)
用matlab ode45解二次导数并根据解的系数变化画出所有图像X''+2*zeta*X'+X=cos(t)zeta是一个有多个元素的向量已经写出了求原式子的部分:unction out = hw2Q4() clear allclose allclctspan = [0 40]; %Range of t we are
用matlab ode45解二次导数并根据解的系数变化画出所有图像
X''+2*zeta*X'+X=cos(t)
zeta是一个有多个元素的向量
已经写出了求原式子的部分:
unction out = hw2Q4()
clear all
close all
clc
tspan = [0 40]; %Range of t we are solving
initcond = [0 0]; %Initial condition
sol = ode45(@odeFun,tspan,initcond); %Solves the ode
tao = 0:0.01:40; %Create a vector with evenly spaced times
X = deval(sol,tao,1); %Evaluate solution vector y at times in t
z = deval(sol,tao,2);
plot(tao,X,'-b');
xlabel('tao');
ylabel('X');
title('X''''+2*zetaX''+X=cos(tao),y(0)=0,y''(0)=0');
end
function dX = odeFun(tao,X) %This function contains the ode
dX(1) = X(2);
dX(2) = -2*zeta(i)*X(2)-X(1)+cos(tao);
dX=dX';
end
想用zeta = [0.2:0.2:1.4]
for i=1:length(zeta)
end
来把zeta的所有元素代入式子后的图像都画在一个图像上.求问要怎么画呢?>_
用matlab ode45解二次导数并根据解的系数变化画出所有图像X''+2*zeta*X'+X=cos(t)zeta是一个有多个元素的向量已经写出了求原式子的部分:unction out = hw2Q4() clear allclose allclctspan = [0 40]; %Range of t we are
参考代码:
function out = hw2Q4()
tspan = [0 40]; %Range of t we are solving
initcond = [0 0]; %Initial condition
Zeta = [0.2:0.2:1.4];
clf
for zeta=Zeta
sol = ode45(@odeFun,tspan,initcond,[],zeta); %Solves the ode
tao = 0:0.01:40; %Create a vector with evenly spaced times
X = deval(sol,tao,1); %Evaluate solution vector y at times in t
z = deval(sol,tao,2);
plot(tao,X,'-b');
hold on
end
xlabel('tao');
ylabel('X');
title('X''''+2*zetaX''+X=cos(tao), y(0)=0, y''(0)=0');
function dX = odeFun(tao,X,zeta) %This function contains the ode
dX(1) = X(2);
dX(2) = -2*zeta*X(2)-X(1)+cos(tao);
dX=dX';
function out = hw2Q4()
clear all
close all
clc
tspan =linspace(0,40)'; %Range of t we are solving
initcond = [0 0]; %Initial condition
figure;hold on
for zeta =[0.2:0.2...
全部展开
function out = hw2Q4()
clear all
close all
clc
tspan =linspace(0,40)'; %Range of t we are solving
initcond = [0 0]; %Initial condition
figure;hold on
for zeta =[0.2:0.2:1.4]
[t,y]=ode45(@(tspan,X,zeta) odeFun(tspan,X,zeta),tspan,initcond,[],zeta); %#ok
x=y(:,1);
plot(t,x,'-b');
end
xlabel('tao');
ylabel('X');
title('X''''+2*zetaX''+X=cos(tao), y(0)=0, y''(0)=0');
end
function dX =odeFun(tspan,X,zeta) %This function contains the ode
dX=[0,0]';
dX(1) = X(2);
dX(2) = -2*zeta*X(2)-X(1)+cos(tspan);
end
收起