私はこのquestionにちょっと戻って、解決に手伝ってくれました。私は幾分容認できるアプローチに着きましたが、それでも私が望む場所にはまだまだありません。 f1[x]
とg1[y]
という2つの関数があり、共通接線の値をx
とy
としたいとします。私は、少なくとも以下で例えば接線のいずれかのx
とy
を決定することができます。しかし、あなたはx
のやや大きい値で別の共通の接線が存在することがプロットから気づくとy
ますMathematica:一般的な接線のFindRoot
f1[x_]:=(5513.12-39931.8x+23307.5x^2+(-32426.6+75662.x-43235.4x^2)Log[(1.-1.33333x)/(1.-1.x)]+x(-10808.9+10808.9x)Log[x/(1.-1.x)])/(-1.+x)
g1[y_]:=(3632.71+3806.87y-51143.6y^2+y(-10808.9+10808.9y)Log[y/(1.-1.y)]+(-10808.9+32426.6y-21617.7y^2)Log[1.-(1.y)/(1.-1.y)])/(-1.+y)
Show[
Plot[f1[x],{x,0,.75},PlotRange->All],
Plot[g1[y],{y,0,.75},PlotRange->All]
]
Chop[FindRoot[
{
(f1[x]-g1[y])/(x-y)==D[f1[x],x]==D[g1[y],y]
},
{x,0.0000001},{y,.00000001}
]
[[All,2]]
]
(例えば、x
〜4およびy
〜5)。さて、興味深いことに、私は少し、以下のようなものにf1[x]
とg1[y]
については、上記の式を変更する場合:
f2[x_]:=(7968.08-59377.8x+40298.7x^2+(-39909.6+93122.4x-53212.8x^2)Log[(1.-1.33333x)/(1.-1.x)]+x(-13303.2+13303.2x)Log[x/(1.-1.x)])/(-1.+x)
g2[y_]:=(5805.16-27866.2y-21643.y^2+y(-13303.2+13303.2y)Log[y/(1.-1.y)]+(-13303.2+39909.6y-26606.4y^2)Log[1.-(1.y)/(1.-1.y)])/(-1.+y)
Show[
Plot[f2[x],{x,0,.75},PlotRange->All],
Plot[g2[y],{y,0,.75},PlotRange->All]
]
Chop[FindRoot[
{
(f2[x]-g2[y])/(x-y)==D[f2[x],x]==D[g2[y],y]
},
{x,0.0000001},{y,.00000001}
]
[[All,2]]
]
、共通の接線を決定するために、同じ方法を使用し、Mathematicaはx
の大きな値を見つけるために選択し、y
のため正の傾斜接線。
最後に私の質問は、Mathematicaに共通の正接の値の高い値と低い値の両方を見つけさせ、リストプロットを作成するのと同様の方法でこれらの値を保存できるのでしょうか?上記の関数f
とg
はすべて別の変数の複雑な関数で、z
です。私は現在、z
の関数として2つの接線の点(2つのx
と2つのy
)をプロットするために次のようなものを使用しています。
ex[z_]:=Chop[FindRoot[
{
(f[x,z]-g[y,z])/(x-y)==D[f[x],x]==D[g[y],y]
},
{x,0.0000001},{y,.00000001}
]
[[All,2]]
]
ListLinePlot[
Table[{ex[z][[i]],z},{i,1,2},{z,1300,1800,10}]
]
+1は 'ContourPlot'を使用しています – Simon