給定方程

對于一些給定的函式f(x)wheregamma也給出了,你如何在 Matlab 中數值求解上限u?
f(x)可以是任何模型的占位符。
這是一個尋根和集成問題,但由于我對 Matlab 缺乏了解,我仍在試圖弄清楚它是如何完成的。
我最初的解決方案是蠻力方法。假設我們有

并且gamma = 0.8,我們可以通過從某個非常小的值中提取它的積分來找到從-inf到的定積分,然后一直向上直到我們得到一個結果。uugamma = 0.8
syms f(x)
f(x) = (1/(sqrt(6*pi)))*exp(-(x^2/6));
gamma = 0.8;
u = -10;
res = int(f,x,-Inf,u);
while double(res) <= gamma
u = u 0.1;
res = int(f,x,-Inf,u);
end
fprintf("u is %f", u);
這個解決方案很慢,而且肯定不會一直有效。
我設定u = 10是因為查看函式圖,我們并沒有真正得到區間 [-5, 5] 之外的任何東西。
uj5u.com熱心網友回復:
您可以使用 MATLAB Symbolic Math Toolbox(您可能需要安裝的插件)。這樣你就可以給自己定義一個“真正的”未知變數 x (不是 x 值的陣列),然后從負無窮大積分:
syms f(x)
f(x) = exp(2*x) % an example function
gamma = int(f,x,-Inf,u)
在定義為符號函式和標量之后,這產生為 from到gamma的積分-Infuf(x)u
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/486171.html
