稍後我問了一下question,這有助於達成解決方案。我已經達成了一個有點可以接受的方法,但仍然沒有完全放在我想要的地方。假設有兩個函數f1[x]
和g1[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
和y
值另一種常見的切線(積通知例如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]]
]
,並使用相同的方法來確定公切線,數學選擇找到x
和y
較大值正傾斜切線。
最後,我的問題:是否有可能讓Mathematica找到公共切線的高低x
和y
值,並以類似的方式存儲這些值,以便我可以製作列表圖?上述函數f
和g
是另一個變量z
的所有複雜函數,而且我正在使用類似下面的內容來繪製切點(應該是兩個x
和兩個y
),作爲z
的函數。
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}]
]
使用「ContourPlot」的+1 – Simon