全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
4121 10
2014-08-11
小弟在用数值解析的方法求解一个函数,程序如下,但是计算不出结果,结果出错,哪位大侠帮忙调整一下,谢谢
    a=xlsread('F:\sci4\data\parameters\parameters.xls',1,'D3:D528')
    b=xlsread('F:\sci4\data\parameters\parameters.xls',1,'C3:C528')
    m=xlsread('F:\sci4\data\parameters\parameters.xls',1,'B3:B528')
    n=xlsread('F:\sci4\data\parameters\parameters.xls',1,'A3:A528')
    x=ones(526,1)*(-0.1)
f=@(y)(y-y.*x.^2+x.*(y.^2.*x.^2-y.^2+b.^2.*m.^2).^0.5)./(b.*(y-y.*x.^2+x.*(y.^2.*x.^2-y.^2+n.^2).^0.5))-a;
fzero(f,0)


附件列表

parameters.xls

大小:91 KB

 马上下载

参数值

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-8-12 01:39:36
N = size(a,1);
xx = zeros(N,1);
for i = 1:N
f=@(y)(y-y.*x(i).^2+x(i).*(y.^2.*x(i).^2-y.^2+b(i).^2.*m(i).^2).^0.5)./(b(i).*(y-y.*x(i).^2+x(i).*(y.^2.*x(i).^2-y.^2+n(i).^2).^0.5))-a(i);
xx(i) = fzero(f,0);
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 01:44:02
你的函数是1个输入,N个输出的,其中多个方程无法没有实数解吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 08:46:16
zsuphoenix 发表于 2014-8-12 01:44
你的函数是1个输入,N个输出的,其中多个方程无法没有实数解吧
是的,提示的错误信息??? Operands to the || and && operators must be convertible to logical scalar values.

Error in ==> fzero at 309
    elseif ~isfinite(fx) || ~isreal(fx)
如何解决
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 08:47:57
zsuphoenix 发表于 2014-8-12 01:39
N = size(a,1);
xx = zeros(N,1);
for i = 1:N
非常感谢啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-14 17:49:50
zsuphoenix 发表于 2014-8-12 01:39
N = size(a,1);
xx = zeros(N,1);
for i = 1:N
你好,现在有个问题,就是利用fzero求解方程的时候,每组参数的根并不都是出现在0附近,也就是说
xx(i)=fzero(f,0)求解的根是不对的,如何修改啊,因为数据量比较大,不可能每组参数都去利用ezplot.如何解决。谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群