[已解决] 新手求助!在使用fsolve时出现:FSOLVE要求函数返回的所有值的数据类型都是double

[复制链接]
1135252801@qq 发表于 2021-4-5 14:43:55
这是我的源代码。出现:FSOLVE requires all values returned by functions to be of data type double.
请问哪里出错了?感谢
clc;
clear;
data    = xlsread('Ada_2008');
syms x a b
x_a  =  subs( (x^a) /(1+x^a),x,data(1:8784))  
x_da  =  subs( x^(-a) ,x,data(1:8784) )  
loge =  log(data)
sum_xln  =  sum (x_a .* loge)
sum_dxln =  sum (loge .* x_da)
sum_loge = sum(loge)
S = 8784/a + sum_xln -2*sum_loge + b*( sum_dxln )
f =@(a,b) matlabFunction(S)
g=fsolve(f,[1,1])


最佳答案


EngineerLeon 发表于 2021-4-6 15:08:12
需要改成
f = matlabFunction( S, 'vars', { [ a, b ] } );
这样才能有效计算
f( [ 1, 1 ] )
的数值
回复此楼

2 条回复


EngineerLeon 发表于 2021-4-6 15:08:12
需要改成
f = matlabFunction( S, 'vars', { [ a, b ] } );
这样才能有效计算
f( [ 1, 1 ] )
的数值
回复此楼

1135252801@qq 发表于 2021-4-6 22:08:23
EngineerLeon 发表于 2021-4-6 15:08
需要改成
f = matlabFunction( S, 'vars', { [ a, b ] } );
这样才能有效计算

好的谢谢您 问题已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表