我有一个带三角函数的二阶非线性函数,所以我不能用第二次推导来表示它。例如:
ay'' + b arctan(y'') + cy' + dy=0
y'(0)=0, y''(0)=0不存在--一个类似于arctan(y'')的术语,我可以写我的ode函数
function output=myodefunc(u,t){
y(1)=u(2);
y(2)=(-c*u(2)-d*u(1))/m;
output=y';
}不幸的是,二阶非线性项( b*arctan(y'') )使我无法写出依赖于y''的ode 。
有没有办法在Matlab中数值求解这样的三角函数呢?
发布于 2013-09-17 12:30:12
在ode函数中,可以用非线性求解器(fsolve)来评估y'‘:
function output=myodefunc(u,t){
y(1)=u(2);
x0=0;
x=fsolve('a*x + b*atan(x) + c*u(2) + d*u(1)',x0);
y(2)=x;
output=y';
}https://stackoverflow.com/questions/18824005
复制相似问题