很简单一个编程,就是不知道哪里出问题。
clear all
syms x y z
a=x^y+y^x-5*x*y*z-85;
b=x^3*y^z*z^y-60;
c=x^z+z^x-y-1;
f =@(x,y,z)[a,b,c];
% 初始值设为区间中点
fsolve(@(x,y,z)f(x(1), x(2), x(3)), [4 3 1.25]) % fsolve求解
lsqnonlin(@(x)f(x(1), x(2), x(3)), [4 3 1.25]) % lsqnonlin求解
错误使用 fsolve (line 258)
FSOLVE requires all values returned by user functions to be of data type double.
出错 fun (line 8)
fsolve(@(x,y,z)f(x(1), x(2), x(3)), [4 3 1.25]) % fsolve求解
什么原因呢? 如何改正。 我知道直接写是可以的,例如写成f=@(x,y,z)[x^y+y^x-5*x*y*z-85;x^3*y^z*z^y-60;x^z+z^x-y-1] 这样就可以,为什么呢?
如果我想按照我的这个格式写,如何改呢? 返回小木虫查看更多
今日热帖
支持楼主
function p=fsolve_9_25
p0=[4;3;1.25];
[p,fval]=fsolve(@f,p0)
function F=f(p)
F=p(1)^p(2)+p(2)^p(1)-5*p(1)*p(2)*p(3)-85;
p(1)^3*p(2)^p(3)*p(3)^p(2)-60;
p(1)^p(3)+p(3)^p(1)-p(2)-1];
end
end
x y z 对应p1 p2 p3
这个我明白,我就是想写成xyz的形式,不是你写的这种
,