你问的不够具体。这样问的话我只能说方法有很多,这里就随便介绍几种了。
关于多元函数的每个变量的偏微分,说白了就是求梯度,Mathematica做偏微分的函数D有5种语法,其中第4种就是对付你这情况的。代数值嘛,可以定义函数再代:
f[x, y, z, w] = Log@x + y^2 + Sin[z] + Exp@w
df[x_, y_, z_, w_] = D[f[x, y, z, w], {{x, y, z, w}}]
(第一种)
df[1, 2, 3, 4]
(第二种)
df@@{1, 2, 3, 4}
( 第三种 )
df[{x_, y_, z_, w_}] = D[f[x, y, z, w], {{x, y, z, w}}]
df[{1, 2, 3, 4}]
df@{1, 2, 3, 4}
(第四种,对于这种,定不定义函数都无所谓了)
df[x, y, z, w] / {x -> 1, y -> 2, z -> 3, w -> 4}
(第五种?其实和第四种没啥区别)
df[x, y, z, w] / Thread[{x, y, z, w} -> {1, 2, 3, 4}]
就答到这吧。有什么不懂的就仔细查查自带帮助。
给你举了三个例子。
Random[Real, {0, 10}]
Random[Integer, {0, 10}]
Random[Complex, {0, 1 + I}]
大括号里面的范围可以随便调。
直接解看样子是解不了的。此类问题一般是使用Reduce或者Solve来解决,都试过了出不来一般就是不可解。 但是可以用mathematica做辅助分析,对于这个问题,我们可以看到,这个式子其实是一个递推关系,所以我们当然会想知道它的通项是否存在,所以就尝试:
RSolve[y[n] == (1 + y[n - 1])/(-1 + y[n - 1]) && y[1] == cc, y[n], n]
以此来观察自变量的变化情况,结果发现:
{{y[n] -> (-1 - (-1)^n - cc - (-1)^n cc -
Sqrt[2] cc + (-1)^n Sqrt[2] cc)/(
1 + (-1)^n - Sqrt[2] + (-1)^n Sqrt[2] - cc - (-1)^n cc)}}
y[n](其实就是f[x]里的x)在两个值之间跳变,再一试(其实够敏捷的话应该立刻就能意识到),就会发现这两个值就是cc(初始自变量)和(1+cc)/(1-cc),那么我们实际上对任意x的初始值,我们都有了一个方程组:
sol=Solve[{fc1 == 3 fc2 - 2 c2, fc2 == 3 fc1 - 2 c1,
c1 == (c2 + 1)/(c2 - 1)}, {c2, fc1, fc2}]
解得
{{c2 -> -((-1 - c1)/(-1 + c1)),
fc1 -> -((-1 - c1)/(4 (-1 + c1))) + (3 c1)/4,
fc2 -> -((3 (-1 - c1))/(4 (-1 + c1))) + c1/4}}
显然,我们由此就得到了f[x]的关系式:
f[x_]= fc1 / sol / c1 -> x
得到:
-((-1 - x)/(4 (-1 + x))) + (3 x)/4
这个就是答案了。
不过你想要的大概是比较简单的结果,所以这个或许不合要求?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)