找回密码
 注册
Simdroid-非首页
查看: 155|回复: 11

[基础概念] interplolatingfunction居然能插值出复数来?为什么?

[复制链接]
发表于 2009-12-7 14:37:25 | 显示全部楼层 |阅读模式 来自 黑龙江哈尔滨
悬赏50仿真币已解决
本帖最后由 TBE_Legend 于 2009-12-7 15:46 编辑

interplolatingfunction居然能插值处复数来?为什么? 昨天做matalb版上的一个微分方程时发现的。不知道谁遇到过? 怎么就出来复数了?
  1. Clear["Global`*"]
  2. {a1,a2,a3,a4,a5,a6}={-0.1034150106574554,-0.10206331789900647,-0.6456777581304838,-0.08687656481422756,0.6415627765584833,-0.6010986122797495};
  3. sol=NDSolve[{y1'[t]==a1 (300000-y2[t])^a2,y2'[t]==a3 y1'[t]-a4 y2[t]^a5,y2[0]==50000,y1[0]==a6},{y1,y2},{t,0,2401}];
  4. {y1,y2}={y1,y2}/.First[sol];
  5. y1
  6. y1[Range[10]]//TableForm
复制代码

最佳答案

查看完整内容

也可能吧,比如dx/dt=1/(2*sqrt(t-1)),当t=0时,x=2。积一下分,就是x=(t-1)^(1/2)+C。代入初值后就会出现复数。
发表于 2009-12-7 14:37:26 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
也可能吧,比如dx/dt=1/(2*sqrt(t-1)),当t=0时,x=2。积一下分,就是x=(t-1)^(1/2)+C。代入初值后就会出现复数。
回复

使用道具 举报

发表于 2009-12-7 16:10:31 | 显示全部楼层 来自 湖北武汉
1# TBE_Legend





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2009-12-7 16:21:21 | 显示全部楼层 来自 北京
很容易理解啊,
解方程是默认的是在复数范围内解的,解出来后发现所有的虚部均为0.也就是所有的解都是实数了.
回复

使用道具 举报

 楼主| 发表于 2009-12-7 16:26:14 | 显示全部楼层 来自 黑龙江哈尔滨
很容易理解啊,
解方程是默认的是在复数范围内解的,解出来后发现所有的虚部均为0.也就是所有的解都是实数了.
ggggwhw 发表于 2009-12-7 16:21


微分方程的解是复数我还没见过,有没有典型的所有的系数都是实数,但结果是复数的常微分方程?
回复

使用道具 举报

发表于 2009-12-7 16:42:25 | 显示全部楼层 来自 北京
不好意思,我不会解微分方程,
不过可供你参考的是:

微分方程的解是复数我还没见过,没见过不代表没有.
一阶微分方程没有不代表高阶微分方程没有.
有时候程序为了书写方便,不区分一般情况和特殊情况,如果高阶和一阶可以有相同的方法来计算,并且高阶的有复数解出现,那么一阶的也按照有复数解出现对待.反正最终解得的结果中不会有错误的,因为虚部为0.
回复

使用道具 举报

 楼主| 发表于 2009-12-7 17:14:52 | 显示全部楼层 来自 黑龙江哈尔滨
本帖最后由 TBE_Legend 于 2009-12-7 18:17 编辑
1# TBE_Legend

225980

225981

225982
maplelab 发表于 2009-12-7 16:10


多谢~!mmtc的解也没有问题。我的问题是为什么会出现复数?

  1. restart;
  2. (a1,a2,a3,a4,a5,a6):=(-0.1034150106574554,-0.10206331789900647,-0.6456777581304838,-0.08687656481422756,0.6415627765584833,-0.6010986122797495):
  3. sol:=dsolve({diff(y1(t),t)=a1*(300000-y2(t))^a2,diff(y2(t),t)=a3*diff(y1(t),t)-a4*y2(t)^a5,y2(0)=50000,y1(0)=a6},numeric,output=array([seq(i,i=1..10)]));
  4. sol:=dsolve({diff(y1(t),t)=a1*(300000-y2(t))^a2,diff(y2(t),t)=a3*diff(y1(t),t)-a4*y2(t)^a5,y2(0)=50000,y1(0)=a6},numeric):
  5. with(plots):
  6. pointplot( [seq([i,rhs(op(2,sol(i)))], i=1..10 )],color=red );
  7. odeplot(sol,[t,y1(t),y2(t),color=orange,style=POINT],1..10,axes=boxed);

复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2009-12-7 17:41:10 | 显示全部楼层 来自 上海宝山区
本帖最后由 FreddyMusic 于 2009-12-7 17:42 编辑

我叫你们去看书,你们不相信。 去读 AdvancedNumericalDifferentialEquationSolvingInMathematica

  1. Clear["Global`*"];
  2. {a1, a2, a3, a4, a5, a6} = {-0.1034150106574554, -0.10206331789900647, \ -0.6456777581304838, -0.08687656481422756, 0.6415627765584833, -0.6010986122797495};
  3. sol = NDSolve[{ y1'[t] == a1 (300000 - y2[t])^a2, y2'[t] == a3 y1'[t] - a4 y2[t]^a5, y2[0] == 50000, y1[0] == a6}, {y1, y2}, {t, 0, 2401}, Method -> "Extrapolation"]

  4. Plot[Evaluate[y1[t] /. sol], {t, 0, 10^3}]
  5. Plot[Evaluate[y2[t] /. sol], {t, 0, 10^3}]

  6. {y1, y2} = {y1, y2} /. First[sol];
  7. y1[Range[10]] // TableForm
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2009-12-7 18:11:25 | 显示全部楼层 来自 黑龙江哈尔滨
我叫你们去看书,你们不相信。 去读 AdvancedNumericalDifferentialEquationSolvingInMathematica

Clear["Global`*"];
{a1, a2, a3, a4, a5, a6} = {-0.1034150106574554, -0.10206331789900647, \ -0.6456777 ...
FreddyMusic 发表于 2009-12-7 17:41


我想问的是为什么会出现复数? 这个手册我查过了,似乎信息不多。
回复

使用道具 举报

 楼主| 发表于 2009-12-7 18:13:11 | 显示全部楼层 来自 黑龙江哈尔滨
也可能吧,比如dx/dt=1/(2*sqrt(t-1)),当t=0时,x=2。积一下分,就是x=(t-1)^(1/2)+C。代入初值后就会出现复数。
messenger 发表于 2009-12-7 17:12


多谢~! 这就是我想要的解释。

这里有一点补充。特征线法很容易出现复数。

http://mathworld.wolfram.com/First-OrderOrdinaryDifferentialEquation.html
回复

使用道具 举报

发表于 2009-12-8 05:34:00 | 显示全部楼层 来自 美国
y''+y'+1=0 这样的ode好像就是复数解
回复

使用道具 举报

发表于 2009-12-8 06:50:28 | 显示全部楼层 来自 湖北武汉
本帖最后由 maplelab 于 2009-12-8 06:52 编辑

11# caoer





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 15:01 , Processed in 0.042339 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表