matlab已知a(x)=,matlab拟合二个未知变量.已知A=x-10*y*lgB;

该篇博客展示了如何使用Matlab的lsqcurvefit函数进行函数拟合,以找到经验公式a-10*b*log10(B)中的系数a和b。通过实例对比了两种方法的结果,并详细解析了优化过程。最终得出最优解x=8.6137,y=-0.9051,同时提供了相关工具箱的验证结果和统计信息。
摘要由CSDN通过智能技术生成

共回答了24个问题采纳率:87.5%

A=[1,2,3,4,5,6,7,8,9,10]; B=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];

>> fun=inline('x(1)-10*x(2)*log10(B)','x','B'); %log10(B),10为底的常用对数

>> [x,resnorm,residual,exitflag]=lsqcurvefit(fun,[0.1 1],B,A)

Local minimum found.

Optimization completed because the size of the gradient is less thanthe default value of the function tolerance.

x =

8.6137 -0.9051

resnorm =

7.7829

residual =

Columns 1 through 7

-1.4371 0.2875 0.8812 1.0120 0.8891 0.6058 0.2117

Columns 8 through 10

-0.2634 -0.8005 -1.3863

exitflag =

1

%exitflag =1,最优解

拟合的最优x和y值:x= 8.6137 y=-0.9051

1年前

追问

4

4642816691

您好,我的方法算的y和你的y差个负号,宁能帮忙看看哪里不对吗?最佳给您! clc; A=[1;2;3;4;5;6;7;8;9;10]; B=[0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1]; B=10*log10(B); X=[ones(10,1),B]; [b,bint,r,rint,stats]=regress(A,X) fprintf('经验公式中的系数x,y分别为%f,%fn',b(1),b(2)); 经验公式中的系数x,y分别为8.613684,0.905078

4642816691

用Matlab的工具箱,得到的结果与上面的的结果是一样的。 General model: f(B) = a-10*b*log10(B) Coefficients (with 95% confidence bounds): a = 8.614 (7.523, 9.704) b = -0.9051 (-1.143, -0.6669) Goodness of fit: SSE: 7.783 R-square: 0.9057 Adjusted R-square: 0.8939 RMSE: 0.9863

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值