首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Matlab数值求解非线性OD-2阶

用Matlab数值求解非线性OD-2阶
EN

Stack Overflow用户
提问于 2013-09-16 08:55:42
回答 1查看 1K关注 0票数 0

我有一个带三角函数的二阶非线性函数,所以我不能用第二次推导来表示它。例如:

代码语言:javascript
复制
ay'' + b arctan(y'') + cy' + dy=0
y'(0)=0, y''(0)=0

不存在--一个类似于arctan(y'')的术语,我可以写我的ode函数

代码语言:javascript
复制
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中数值求解这样的三角函数呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 12:30:12

在ode函数中,可以用非线性求解器(fsolve)来评估y'‘:

代码语言:javascript
复制
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';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18824005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档