matlab曲线拟合工具箱出故障,matlab – 无工具箱的曲线拟合

如果您知道要拟合的函数的形式但不知道其参数,则可以使用fminsearch查找适合您数据的参数.如果你有数据(可能是嘈杂的)你想要适合y = x ^ a bwhere aand bare unknown(这里我假设真值是a = 1/3和b = 5)这就是我的方式快速回答:

在这里,我生成我的数据(你不必在现实生活中这样做)

>> x = linspace(0,5,10);

>> y = x.^(1/3) + 5;

>> y_noisy = y + 0.1*rand(size(y));

然后我定义了我想要最小化的关于a和b的函数,并用fminsearch最小化它.在这种情况下,我最小化了我的数据和用于拟合的函数之间差异的平方的积分.下面我定义了两个函数,一个是噪声数据,一个是噪声.你会发现在没有噪音的情况下,你可以完全恢复a和b的值.

注意:fminsearch wotks带有参数向量(在我的例子中为v).我拿a = v(1)和b = v(2).你还必须为v提供一些初始猜测(这里[1 1]).

>> err_noisy = @(v) trapz(x,(y_noisy - x.^v(1)-v(2)).^2);

>> err = @(v) trapz(x,(y - x.^v(1)-v(2)).^2);

>> v_noisy = fminsearch(err_noisy,[1 1])

v_noisy =

0.3345 5.0594

>> v = fminsearch(err,[1 1])

v =

0.3333 5.0000

最后一条注释,如果您对aand位的值有约束,则有时可以对变量执行某些更改.例如,如果您知道a> 0,则可能需要标识log(a),然后将标识的值转换为a.

希望这可以帮助.

一个.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值