matlab解微分方程组(带参数) 20
functiondy=eq2(t,y)dy(1)=-(a*y(2))/(4*exp(a*t/4));dy(2)=-(a/4)*(exp(a*t/4))*(y(1)+0.5...
function dy=eq2(t,y)
dy(1)=-(a*y(2))/(4*exp(a*t/4));
dy(2)=-(a/4)*(exp(a*t/4))*(y(1)+0.5)+(a/4)*y(2)-y(3)*((exp(a*t/4))^2);
dy(3)=4*y(2);
方程是上面的,a是可以给定的参数(结束的时间),y的初值是[1.4 0.1 0.1],画出a取值在0~10所对应的y(1)结束的值,t的范围是0~a. 展开
dy(1)=-(a*y(2))/(4*exp(a*t/4));
dy(2)=-(a/4)*(exp(a*t/4))*(y(1)+0.5)+(a/4)*y(2)-y(3)*((exp(a*t/4))^2);
dy(3)=4*y(2);
方程是上面的,a是可以给定的参数(结束的时间),y的初值是[1.4 0.1 0.1],画出a取值在0~10所对应的y(1)结束的值,t的范围是0~a. 展开
1个回答
展开全部
可以借助于嵌套函数或匿名函数实现附加参数的传递,例如
function main
y0 = [1.4; 0.1; 0.1];
A = linspace(eps, 10, 20);
Y = A * NaN;
for ii = length(A)
a = A(ii);
y = ode45(@eq2, [0 a], y0);
Y(ii) = y(end, 1);
end
plot(A, Y)
function dy=eq2(t,y)
dy = y*0;
dy(1)=-(a*y(2))/(4*exp(a*t/4));
dy(2)=-(a/4)*(exp(a*t/4))*(y(1)+0.5)+(a/4)*y(2)-y(3)*((exp(a*t/4))^2);
dy(3)=4*y(2);
end
end
但微分方程组似乎是刚性的,不过换用ode15s、ode23s等适合刚性系统的算法效果也不理想(可以调用ode*函数时不返回参数,观察求解的过程)。
function main
y0 = [1.4; 0.1; 0.1];
A = linspace(eps, 10, 20);
Y = A * NaN;
for ii = length(A)
a = A(ii);
y = ode45(@eq2, [0 a], y0);
Y(ii) = y(end, 1);
end
plot(A, Y)
function dy=eq2(t,y)
dy = y*0;
dy(1)=-(a*y(2))/(4*exp(a*t/4));
dy(2)=-(a/4)*(exp(a*t/4))*(y(1)+0.5)+(a/4)*y(2)-y(3)*((exp(a*t/4))^2);
dy(3)=4*y(2);
end
end
但微分方程组似乎是刚性的,不过换用ode15s、ode23s等适合刚性系统的算法效果也不理想(可以调用ode*函数时不返回参数,观察求解的过程)。
追问
那画图呢,怎么画出来
追答
上面的程序带画图语句啊。
只不过方程组是刚性的,求解时间长,我没等结果出来,你可以试试看。
富港检测技术(东莞)有限公司_
2024-04-02 广告
2024-04-02 广告
正弦振动多用于找出产品设计或包装设计的脆弱点。看在哪一个具体频率点响应最大(共振点);正弦振动在任一瞬间只包含一种频率的振动,而随机振动在任一瞬间包含频谱范围内的各种频率的振动。由于随机振动包含频谱内所有的频率,所以样品上的共振点会同时激发...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询