求助中间变量替换问题,还有输出显示风格问题
mathematica吧
全部回复
仅看楼主
level 3
_ImmanuelKant 楼主
f[x, y] := ((r - a) (c r -
b (y Cos[\[Alpha]] - x Sin[\[Alpha]])) x)/((b -
a) (y Cos[\[Alpha]] - x Sin[\[Alpha]]) r);
r[x, y] := Sqrt[x^2 + y^2];
D[f[x, y], x]
如何让它的输出结果里所有的Sqrt[x^2 + y^2]自动替换为r(因为它是个中间变量,输出结果要带它方便人的理解),还有如何把输出结果当中的(-a+b)自动替换为何输入函数f风格样式一致的(b-a),方便人的理解?
2019年05月04日 14点05分 1
吧务
level 15
1. 你的输出里没有Sqrt[x^2 + y^2]。
2. 参看这帖:https://tieba.baidu.com/p/5728734141
3. TraditionalForm是一个可能的办法,不过切记过分干预Mathematica的显示形式基本上是得不偿失。
2019年05月04日 14点05分 2
level 3
_ImmanuelKant 楼主
2019年05月04日 15点05分 4
r被污染了。(为什么没跳警告不确定。)总之Clear[r]再来。
2019年05月04日 15点05分
@xzcyr 我清除之后确实没出现,但是我发现了更大的问题,我发帖本意是想对一个包含 x y r的多元函数对x求偏导,其中r是中间变量,r=Sqrt(x^2+y^2),我想让mathematica理解这个中间变量,并且让求导结果当中的Sqrt(x^2+y^2)用中间变量r表示,请问如何实现让它理解此中间变量?
2019年05月04日 15点05分
@_ImmanuelKant ……总之你先把我给的帖子看了。
2019年05月04日 15点05分
@xzcyr 好的,我是这个软件的初学者,学习这个软件就是看中它的符号计算能力,想把机械的公式推导过程交给电脑,我看了你写的那个有道云笔记目前应该还不能完全理解你的意思
2019年05月04日 15点05分
level 3
_ImmanuelKant 楼主
f := (x*(-a + Sqrt[x^2 + y^2])*(c*Sqrt[x^2 + y^2] -
b*(y*Cos[\[Alpha]] - x*Sin[\[Alpha]])))/((-a + b)*
Sqrt[x^2 + y^2]*(y*Cos[\[Alpha]] - x*Sin[\[Alpha]]));
r := Sqrt[x^2 + y^2];
D[f, x]
2019年05月08日 12点05分 5
level 3
_ImmanuelKant 楼主
如何把输出结果不管是sqrt(x^2+y^2)的项还是(x^2+y^2)^3/2的项通通用r替换呢,sqrt(x^2+y^2)变为r和(x^2+y^2)^3/2变为r^3。要求适合任意含有x^2+y^2任意变型的项
2019年05月08日 12点05分 6
level 3
_ImmanuelKant 楼主
Clear[r]
1/Sqrt[x^2 + y^2] /. Sqrt[x^2 + y^2] -> r
我简化了下,发现这个式子并不能被替换为1/r,那就别说更复杂的式子了
2019年05月08日 13点05分 7
吧务
level 15
……我就说你怎么仿佛没看到这层楼似的,看样子最近凡是非百度贴吧的链接全都会在毫无提示的情况下变成“仅作者可见”:
2019年06月01日 09点06分 8
吧务
level 15
……参这帖8楼:
https://tieba.baidu.com/p/6121308979
还有,你是不是其实在找CForm或者FortranForm?
2019年06月01日 09点06分 9
1