mathematica 函数求值问题

mathematica 函数求值问题,第1张

你问的不够具体。这样问的话我只能说方法有很多,这里就随便介绍几种了。

关于多元函数的每个变量的偏微分,说白了就是求梯度,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

这个就是答案了。

不过你想要的大概是比较简单的结果,所以这个或许不合要求?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11670734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存