当前位置: 首页 > 程序语言 >很简单一个编程,就是不知道哪里出问题。

很简单一个编程,就是不知道哪里出问题。

作者 zzdwaters
来源: 小木虫 250 5 举报帖子
+关注

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] 这样就可以,为什么呢?
如果我想按照我的这个格式写,如何改呢? 返回小木虫查看更多

今日热帖
  • 精华评论
  • scan1105

    支持楼主

  • 独孤神宇

    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

  • zzdwaters

    引用回帖:
    5楼: Originally posted by 独孤神宇 at 2018-09-26 17:13:41
    x y z 对应p1 p2 p3

    这个我明白,我就是想写成xyz的形式,不是你写的这种

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓