网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月12日漏签0天
mathematica吧 关注:19,918贴子:74,173
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 7回复贴,共1页
<<返回mathematica吧
>0< 加载中...

微分方程系数是分段函数的,该怎么求解呢

  • 只看楼主
  • 收藏

  • 回复
  • XFX的6990
  • 大写小写
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
求问各位大佬,如果微分方程的系数是分段函数该怎么求解,自己编的总是出错。代码:
a0l = 5.9; \[Lambda]1 = 0.15; \[Lambda]2 = 0.55;(*线性方程系数*)
b = 1;(*半弦长*); U = 0.1 340;
k = 0.1;(*减缩频率*)
\[Omega] = k U/b;
\[Theta] = 9.82 Pi/180 + 9 Pi/180 Cos[\[Omega] t];(*俯仰*)
h = 0;(*沉浮运动*)
\[Alpha] = \[Theta] - D[h, t]/U;
t\[Tau] = b/U;(*无量纲时间转换系数*)
\[CapitalDelta]CL =
Piecewise[{{6.32284 (x\[Alpha] + 0.1396) -
0.42284 (x\[Alpha] + 0.3142),
x\[Alpha] < -0.3142}, {6.32284 (x\[Alpha] + 0.1396), -0.3142 <=
x\[Alpha] < -0.1396}, {0, -0.1396 <= x\[Alpha] <
0.1396}, {6.32284 (x\[Alpha] - 0.1396),
0.1396 <= x\[Alpha] < 0.3142}, {6.32284 (x\[Alpha] - 0.1396) -
0.42284 (x\[Alpha] - 0.3142), x\[Alpha] >= 0.3142}}]
dCL = D[\[CapitalDelta]CL, x\[Alpha]]
Plot[\[CapitalDelta]CL, {x\[Alpha], -0.4, 0.4}];
Plot[dCL, {x\[Alpha], -0.4, 0.4}];
r1L = 0.25 + 0.1 (\[CapitalDelta]CL)^2;
r2L = (0.2 + 0.1 (\[CapitalDelta]CL)^2)^2;
r3L = (0.2 +
0.1 (\[CapitalDelta]CL)^2)^2 (-0.6 \[CapitalDelta]CL^2);(*非线性系数*)
equ2 = t\[Tau]^2 D[Cl2[t], {t, 2}] + t\[Tau] r1L D[Cl2[t], t] +
r2L Cl2[t] == -r2L \[CapitalDelta]CL -
t\[Tau] r3L dCL D[\[Alpha], t] /. x\[Alpha] -> \[Theta]
ans2 = NDSolve[{equ2, Cl2[0] == 0}, Cl2, {t, 0, 2 Pi/\[Omega]}]
程序报错NDSolve::ndnco: The number of constraints (6) (initial conditions) is not equal to the total differential order of the system plus the number of discrete variables (7).
非常感谢!


  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
警告信息已经说得很清楚了。你的方程是2阶的,你却只给了一个限制条件。条件不够,定不了解。


2025-11-12 02:04:51
广告
不感兴趣
开通SVIP免广告
  • XFX的6990
  • 大写小写
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢吧主,我添加了Cl2'[0]==0的条件,可以求出来了,不过数值特别大,提示NDSolve::nlnum: The function value {-7.51504,Indeterminate} is not a list of numbers with dimensions {2} at {t,Cl2[t],(Cl2^\[Prime])[t],NDSolve`s$12871[t],NDSolve`s$12870[t],NDSolve`s$12869[t],NDSolve`s$12873[t],NDSolve`s$12872[t]} = {0.126342,-0.712098,-7.51504,1,1,1,-1,1}.这是什么原因呢


  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
应该是分段函数的不光滑点导致的问题,这些位置求导后变成了Indeterminate,导致求解失败。一个可行的(但应该不是唯一的)改法是用个近似于不连续的连续函数代替原函数:
appro = With[{k = 1000}, ArcTan[k #]/Pi + 1/2 &];
\[CapitalDelta]CL =
Simplify`PWToUnitStep[
\[CapitalDelta]CL] /. UnitStep -> appro
直接把Indeterminate的部分强制换掉可能也可以,但这要先分析\[CapitalDelta]CL的不光滑处是否求导后会产生DiracDelta,今天时间不够了,你先自己试试吧……


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 7回复贴,共1页
<<返回mathematica吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示