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

[数值计算] 如何求两个隐式方程组成的方程组

[复制链接]
发表于 2015-1-17 10:46:11 | 显示全部楼层 |阅读模式 来自 天津


如上,这两个方程中:t0 和 t1是要求的未知数,v是已知常数,给出一组 λ 和δ的具体数值,就可以求出一组对应的t0 和 t1。
但是无法直接求解。

想的一个办法是,用ContourPlot命令,以t0 和 t1作为自变量画出这两个方程的曲线(见下图),然后 大概看一下交点的坐标之后,作为初始的猜测值,自己编个小程序,利用牛顿迭代法,迭代求出达到一定精度的解。这个办法是可行的。但是过程中需要人工参与判断曲线的交点。


现在的问题是需要求出大量不同 λ 和δ的具体数值对应的解,想有没有什么办法能够消除人工参与,直接能够得到上图两条曲线的交点?

我想的是,可不可以ContourPlot时用两个颜色分别画这两条曲线,然后有没有哪个命令能够识别某个坐标的RGB值,判断哪个坐标的RGB是两条曲线的混合的RGB时,就返回这个坐标。。。
我找了找帮助文件,见到了能返回某点坐标的像素值,但是返回坐标的RGB值的命令并没有找到。

所以想请教下大家,有任何好的意见或者建议请多多帮忙!谢谢各位!

本帖子中包含更多资源

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

×

评分

1

查看全部评分

发表于 2015-1-19 13:47:29 | 显示全部楼层 来自 上海
Simdroid开发平台
我不建议你由一个解方程组的问题再转到颜色上。

第一:解方程的问题还是应该从数学角度出发,来寻找合理的解,获得一个可行初始值的方案有很多,可以假设或测试。这样用颜色来兜圈子的方法,不够高效。也可以考虑换其他的数值方法,见NSolve Method。此外,解复杂方程组还可以考虑神经网络等方法。

第二:等值线图的颜色是一种可视化,同方程本身没有关系,而且因函数不同而变。换言之,其实你很难很好控制它。
回复 不支持

使用道具 举报

发表于 2015-1-19 14:02:04 | 显示全部楼层 来自 上海
FYI: "但是返回坐标的RGB值的命令并没有找到".

先把Graphic转成 Image,然后用 ImageValue,你就看到了该像素的RGBColor。

http://reference.wolfram.com/language/ref/ImageValue.html
回复 不支持

使用道具 举报

 楼主| 发表于 2015-1-21 10:03:59 | 显示全部楼层 来自 天津
FreddyMusic 发表于 2015-1-19 13:47
我不建议你由一个解方程组的问题再转到颜色上。

第一:解方程的问题还是应该从数学角度出发,来寻找合理的 ...

非常感谢版主的回复!
用颜色来找也是突发奇想的一个办法,就想试试是不是可行,谢谢版主提供的帮助!
我再在方程上多下下功夫
感谢:)
回复 不支持

使用道具 举报

发表于 2015-1-30 19:31:47 | 显示全部楼层 来自 陕西西安
本帖最后由 高贵的点点滴滴 于 2015-1-30 19:44 编辑
  1. Clear["Global`*"]
  2. v = 0;
  3. r = 1;
  4. d = 10;
  5. (*f[t0_?NumericQ,t1_?NumericQ]:=(1+v)Log[r]+Log[t0]+(1+v)Integrate[ \
  6. Sin[s],{s,t0,t1}];
  7. g[t0_?NumericQ,t1_?NumericQ]:=(t1/t0)^(1/(1+v))Sqrt[(1-t0)/(1-t1)]E^-\
  8. Integrate[1,{s,t1,t0}]-d;*)
  9. f[x_, y_] := Sin[x y];
  10. g[x_, y_] := Cos[x^2 y];

  11. fig = ContourPlot[{f[x, y] == 0, g[x, y] == 0}, {x, 0, Pi}, {y, 0,
  12.     Pi}, PlotPoints -> 10, Contours -> 50];

  13. data = fig[[1, 1]];

  14. refdata1 = Select[data, Abs[f @@ #] + Abs[g @@ #] < 10^-1 &];
  15. refdata2 = Union[refdata1, SameTest -> (Norm[#1 - #2] < 10^-3 &)];
  16. pts = {x,
  17.    y} /. (FindRoot[{f[x, y] == 0,
  18.        g[x, y] == 0}, {{x, #[[1]]}, {y, #[[2]]}},
  19.       AccuracyGoal -> 4] & /@ refdata2)
  20. ContourPlot[{f[x, y] == 0, g[x, y] == 0}, {x, 0, Pi}, {y, 0, Pi},
  21. Epilog -> {AbsolutePointSize[5], Red, Point /@ pts}]
复制代码

本帖子中包含更多资源

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

×
回复 不支持

使用道具 举报

发表于 2015-1-30 19:55:16 | 显示全部楼层 来自 陕西西安
stackexhange 上很多方法,包括上面说的图形的方法。
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:05 , Processed in 0.038470 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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