[英]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.