24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3316  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

青沙山

木虫 (小有名气)

[求助] Mathematica中含参数的方程求解时如何自动舍去虚数解或不符合条件的解已有1人参与

本人用的是9.0版,求解一个含参数的方程时若添加解的条件时,总是解不出来,求高手指点?

我想添加个解的不等式条件或者解必须是实数的条件,见下图:
Mathematica中含参数的方程求解时如何自动舍去虚数解或不符合条件的解
s.png

代码如下:
Solve[{-6 lx^2 (x - Subscript[lx, 1])^2 +
    12 lx (x - Subscript[lx, 1])^2 Subscript[lx, 1] -
    4 x^3 Subscript[lx, 2] +
    12 lx (x - Subscript[lx, 1])^2 Subscript[lx, 2] + 4
\!\(\*SubsuperscriptBox[\(lx\), \(1\), \(3\)]\) Subscript[lx, 2] +
    2 lx^2
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(2\)]\) -
    4 lx Subscript[lx, 1]
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(2\)]\) + 6
\!\(\*SubsuperscriptBox[\(lx\), \(1\), \(2\)]\)
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(2\)]\) - 4 lx
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(3\)]\) + 4 Subscript[lx, 1]
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(3\)]\) +
\!\(\*SubsuperscriptBox[\(lx\), \(2\), \(4\)]\) == 0,
  0 < Subscript[lx, 1] < x < Subscript[lx, 1] + Subscript[lx, 2] <
   lx}, x, Reals]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
7楼: Originally posted by 青沙山 at 2016-01-08 23:07:09
最近一直在弄这个,果然还是算不出来
这个带参数lx1,lx2的方程解出来x的值还要代入别的表达式中,然后通过相关方程组求参数lx1,lx2的近似解,应该如何处理?不断循环赋值求近似解吗?...

……你这么抽象地说我也很难给什么具体建议。运气好的话直接把上面的解代入你说的表达式就行了。(姑且问一句你应该不会不知道怎么用ReplaceAll(/.)吧……)Mathematica是有求方程数值解的函数的。你看看NSolve还有FindFit的帮助。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
8楼2016-01-08 23:49:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
青沙山: 金币+5, ★★★很有帮助 2016-01-08 19:55:03
……下标害的。对现有代码而言最简单的改法是:
CODE:
<< Notation`

Symbolize[ParsedBoxWrapper[\(lx \_ _\)]](*这行用相应的面板输入会比较好看,具体看看帮助*)

Solve[{-6*lx^2*(x - Subscript[lx, 1])^2 +
    12*lx*(x - Subscript[lx, 1])^2*Subscript[lx, 1] - 4*x^3*Subscript[lx, 2] +
         12*lx*(x - Subscript[lx, 1])^2*Subscript[lx, 2] +
    4*Subscript[lx, 1]^3*Subscript[lx, 2] + 2*lx^2*Subscript[lx, 2]^2 -
         4*lx*Subscript[lx, 1]*Subscript[lx, 2]^2 +
    6*Subscript[lx, 1]^2*Subscript[lx, 2]^2 - 4*lx*Subscript[lx, 2]^3 +
         4*Subscript[lx, 1]*Subscript[lx, 2]^3 + Subscript[lx, 2]^4 == 0,
  0 < Subscript[lx, 1] < x < Subscript[lx, 1] + Subscript[lx, 2] < lx}, x, Reals]

至于为什么下标不好,解释起来字太多这里就用中文不重复了,有空看看这:http://mathematica.stackexchange.com/a/18395/1871
楼主实在理解不了就记住:没事别用下标。

» 本帖已获得的红花(最新10朵)

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
2楼2016-01-08 00:25:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

青沙山

木虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by xzczd at 2016-01-08 00:25:38
……下标害的。对现有代码而言最简单的改法是:

<< Notation`

Symbolize(*这行用相应的面板输入会比较好看,具体看看帮助*)

Solve


至于为什么下标不好,解释起来字太多这里就用中文不重复了,有 ...

谢谢,小白表示仍然不懂呢!

如下图:
Mathematica中含参数的方程求解时如何自动舍去虚数解或不符合条件的解-1

第一行看不懂,能给个图吗?

若不用下标,请问还有什么方式表示一个参数序列呢?
尤其是我想对这个参数序列求和,如下例中定义的函数:
Mathematica中含参数的方程求解时如何自动舍去虚数解或不符合条件的解-2

fx[x_, i_] := -qx*f[x] + \!\(
\*UnderoverscriptBox[\(\[Sum]\), \(u = 1\), \(i\)]\((
\*SubscriptBox[\(rx\), \(u\)]*
\*SuperscriptBox[\(f[x -
\*UnderoverscriptBox[\(\[Sum]\), \(v = 1\), \(u\)]
\*SubscriptBox[\(lx\), \(v\)]]\), \(0\)])\)\)
3楼2016-01-08 10:42:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
3楼: Originally posted by 青沙山 at 2016-01-08 10:42:56
谢谢,小白表示仍然不懂呢!

如下图:


第一行看不懂,能给个图吗?

若不用下标,请问还有什么方式表示一个参数序列呢?
尤其是我想对这个参数序列求和,如下例中定义的函数:


fx := -q ...

……好吧我忘了这茬了。总之你执行我给的代码前,先按Ctrl+Shift+N把代码转成StandardForm。

至于后一个,直接用中括号啊:
CODE:
fx[x_, i_] := (-qx)*f[x] + Sum[ru[u]*f[x - Sum[lv[v], {v, 1, u}]]^0,
       {u, 1, i}]

» 本帖已获得的红花(最新10朵)

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
4楼2016-01-08 12:27:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见