簡體   English   中英

無法在Matlab中使用`fzero()`函數

[英]Not able to use `fzero()` function in Matlab

我是Matlab的新手。 我正在嘗試使用稱為fzero()內置Matlab函數來求解非線性方程,但它沒有給我結果。

主文件像

A = 5;
B = 6;
C = 10;

eq = equation (A, B, C);

fzero(@(x)eq);

另一個功能文件是:

function eq = equation (A, B, C)

syms x;
eq = A*x.^2 + B*x + C*(asinh(x)) ;

運行此代碼時,出現以下錯誤:

Error using fzero (line 118)
The input should be either a structure with valid fields or at least two arguments to
FZERO.

Error in main (line 7)
fzero(@(x)eq); 

有人可以幫我嗎?

編輯:如果我將檢查點指定為0 ,它將返回以下錯誤。

類型為“ sym”的輸入參數的未定義函數“ isfinite”。

Error in fzero (line 308)
    elseif ~isfinite(fx) || ~isreal(fx)

Error in main (line 7)
fzero(@(x)eq, 0); 

您需要指定一個猜測, x0

fun = @sin; % function
x0 = 3; % initial point
x = fzero(fun,x0)

您的代碼中有幾個錯誤。 首先, fzero是用於查找非線性方程的數值根,而不是用於符號計算(請參閱文檔 ),因此請擺脫syms x 在您的情況下,調用fzero的正確方法如下:

A = 5;
B = 6;
C = 10;
eq = @(x) A*x^2 + B*x + C*(asinh(x));
x0 = 0; % or whatever starting point you want to specify
x = fzero(eq,x0)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM