找回密码
 欢迎注册
查看: 12658|回复: 26

[原创] 谁软件画下这个方程图

[复制链接]
发表于 2014-7-7 09:09:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
y/(1-x)=1/2*(1+y'^2)^(1/2)-y'     y(0)=0   y(1)=0   求数值解画图两大软件直接罢工了   谁还有办法
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-7-7 11:29:16 | 显示全部楼层
本帖最后由 kastin 于 2014-7-7 12:30 编辑

一阶常微分方程,只需要一个初值条件即可,不需要形成边值条件。
  1. % matlab codes
  2. odefun=@(x,y)fsolve(@(dy)sqrt(1+dy^2)-dy-y/(1-x),x);
  3. xspan=[0,1]; %求解区间为[0,1]
  4. y0=0;  % 初值y(0)=0
  5. [x,y]=ode45(odefun,xspan,y0);
  6. plot(x,y,'.-'), axis equal
复制代码

看上去像是半圆

y=y(x)图象

y=y(x)图象

点评

那个是嵌套匿名函数,对于每个给定的(x,y),用非线性求根求出dy。这是没问题的。只是求根精度太差,运行中显示几十行Optimization terminated: first-order optimality is less than options.TolFun.  发表于 2014-7-7 13:09
我觉得是你的匿名函数有问题  发表于 2014-7-7 13:04
你试试把y'(x)用x,y表达出来,然后作为odefun,再画一下  发表于 2014-7-7 13:02
可能是非线性求根的精度不够。一般来说,Mathematica精度更高,所以wayne的图像更准确。  发表于 2014-7-7 12:55
等比例也不对吧,据我所画的,峰值的y值好像只有0.2左右,而你的到了0.5了,基本上可以说是圆了  发表于 2014-7-7 12:55
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-7-7 11:47:58 | 显示全部楼层
我的不太一样:

aaa.png

点评

你把y'(x)用x,y表达出来,就发现问题了。  发表于 2014-7-8 19:23
你将系数1/2改成1试试看,怎么又罢工了  发表于 2014-7-8 14:20
这个函数似乎是蔓叶线函数  发表于 2014-7-7 13:11
你知道的,Mathematica内置符号功能很强的。凡是能求出非线性方程显式解的,它会先求显式解然后计算的。你看这里明显是两个颜色,说明有两个解啊.  发表于 2014-7-7 12:51
我换了一种做法,按照原方程的结构做图形,结果一样。  发表于 2014-7-7 12:42
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-7-7 13:05:37 | 显示全部楼层
wayne 发表于 2014-7-7 11:47
我的不太一样:

我用Mathematica求出微分方程根
1.png
选取其中第二个正根,然后用matlab求解微分方程
  1. odefun=@(x,y)(sqrt((x-1)^2*(3*x^2-6*x+4*y^2+3))+4*(x-1)*y)/3/(x-1)^2;
  2. [x,y]=ode45(odefun,[0,1-0.0001],0);
  3. plot(x,y,'.-'),axis([0,1,0,0.5])
复制代码

结果是
untitled.png
下面是Mathematica解的正半支。
2.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2014-7-8 08:42:22 | 显示全部楼层
嗯  是这样的。估计我用的函数命令不同导致画不出。这是高中时候思考的一个国际物理竞赛题:质点在原点,被(1,0)点的线拴着,质点受向上电场力E,受摩擦力f   f>=E.现在绳子慢慢变短,求质点运动过的轨迹。原题直接是E=f  结果是半圆。这里我列的是f/E=2的方程
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-7-8 19:37:12 | 显示全部楼层
kastin 发表于 2014-7-7 11:29
一阶常微分方程,只需要一个初值条件即可,不需要形成边值条件。

看上去像是半圆


这个应该用ode15i 函数恰当些。
http://www.mathworks.cn/cn/help/matlab/ref/ode15i.html
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-7-8 20:03:48 | 显示全部楼层
断断续续花了两天时间,下载安装了个MATLAB r2014a,测试了ode15i函数:

20140709040301.png


===
所以,我想要说的是,工具永远只是工具,工具出问题了不要第一反应就归咎于工具:
楼主请收回你说的这句话: 求数值解画图两大软件直接罢工了

点评

ode15i是隐式微分方程求解器,由于用的少,所以没想起这个。还好wayne及时提到这个。不过我也看了ode15i的源代码,里面是嵌入了牛顿法求非线性方程。原理是没变的。  发表于 2014-7-9 19:10
不错,我还不知道这些软件的计算原理,积分方程画得出吗  发表于 2014-7-9 10:01
之所以想尝试matlab,最直接原因是kastin 在2楼用了matlab,用了嵌套匿名函数。于是我好奇如此强悍的matlab是否有一步到位的函数  发表于 2014-7-9 08:07
我这边网速挺快的,包月,不计流量,下载matlab是随手的事情。  发表于 2014-7-9 08:04
wayne真是个好人,帮人帮到底,送人送到家!“花了两天时间下载了MATLAB”还指点迷津,替软件“伸冤”  发表于 2014-7-8 21:52
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-16 23:05 , Processed in 0.075041 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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