MATLAB求解代數(shù)方程組問(wèn)題,請(qǐng)幫忙
function ff=test(x,y)
f1=x+y;
f2=x-y;
ff=[f1;f2];
---------------------------------------
clear all;clc
[x,y]=fsolve(@test,[1;1])
運(yùn)行結(jié)果:
??? Input argument "y" is undefined.
Error in ==> test at 2
f1=x+y;
Error in ==> fsolve at 195
fuser = feval(funfcn{3},x,varargin{:});
Error in ==> testsolve at 2
[x,y]=fsolve(@test,[1;1])
請(qǐng)問(wèn),這個(gè)程序到底什么地方有問(wèn)題呢?如果可以請(qǐng)您給出正確的程序。謝謝!
返回小木蟲(chóng)查看更多
今日熱帖
京公網(wǎng)安備 11010802022153號(hào)
把初值設(shè)成向量,像這樣應(yīng)該可以
function ff = test(x)
f1 = x(1) + x(2);
f2 = x(1) - x(2);
ff = [f1; f2];
end
看一下fsolve的幫助就知道怎么用了
謝謝您的回復(fù),您這樣是把ff定義為x的一元函數(shù)了,而我就是希望定義出一個(gè)二元函數(shù):ff(x,y),怎么實(shí)現(xiàn)呢?
不太懂你的意思,x是向量,f(x1,x2)和f(x,y)不是一樣的嗎
最好舉個(gè)具體的例子看看
就用這個(gè)題的例子吧
function ff=test(x,y)
f1=x(1)+y(1);
f2=x(1)-y(1);
ff=[f1;f2];
--------------------------------
[x,y]=fsolve(@test,[1,1])
就說(shuō)把ff定義為x和y的二元函數(shù)
會(huì)出問(wèn)題,說(shuō)y沒(méi)有定義
但是按照下面的程序,就可以解
function ff=test(x)
f1=x(1)+x(2);
f2=x(1)-x(2);
ff=[f1;f2];
--------------------------------
[x,y]=fsolve(@test,[1,1])
我想問(wèn)的就是,為什么ff表示成(x,y)的就要出問(wèn)題
,
help里規(guī)定這個(gè)自變量是個(gè)向量的形式
正如 gangbs 據(jù)說(shuō),fsolve(fun, x0)的第二個(gè)參數(shù)是要傳給 test(x) 的參數(shù),二者類型必須一致。
你代碼里面fsolve 的第二個(gè)參數(shù)是向量,所以函數(shù) test(x) 也要是向量。你寫成
test(x,y), matlab可能只將 x0 傳給了 x,y 則沒(méi)有定義。
也就是說(shuō),為了用fsolve(fun,x0)的形式來(lái)求解方程,test函數(shù)不能定義成(x,y)的形式,而只能是test(x)的形式,shydyhlei ,是嗎?