24小时热门版块排行榜    

查看: 3038  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

料峭春寒5

新虫 (小有名气)

[求助] matlab多元线性回归拟合求助 已有2人参与

大家好,最近在尝试利用matlab进行多元线性回归拟合,由于是零基础感觉困难重重,请各位高手在百忙之中给予指点,该如何编程呢

T(温度)=[353.15 353.15 353.15 353.15 363.75 363.75 363.75 363.75 373.75 373.75 373.75 373.75 393.75 393.75 393.75 393.75 413.75 413.75 413.75 413.75];
d(密度)=[593.89 636.74 671.27 699.95 533.17 580.38 619.21 651.66 480.53 528.94 570.19 605.34 401.15 445.86 486.70 523.39 347.58 386.61 423.72 458.44];
S=[4.39 4.65 5.24 5.64 4.40 4.67 5.68 5.72 4.85 5.59 5.94 6.92 5.35 6.53 7.23 7.95 6.76 7.28 8.21 9.96];

需要拟合的方程是:ln S=k ln d+A/T+B

如何通过拟合求出k,A,B?

请大神们指点,感谢感谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

引用回帖:
9楼: Originally posted by pdl9527 at 2017-08-29 19:58:54
对于这个问题来说使用非线性最小二乘法来计算没有任何问题,你这里用的左除(mldivide),如果你打开帮助文件仔细阅读你会发现这样一行字,If A is a rectangular m-by-n matrix with m ~= n, and B is a matrix w ...

function question_47
clear;clc;close all
T=[353.15 353.15 353.15 353.15 363.75 363.75 363.75 363.75 373.75 373.75 373.75 373.75 393.75 393.75 393.75 393.75 413.75 413.75 413.75 413.75]';
d=[593.89 636.74 671.27 699.95 533.17 580.38 619.21 651.66 480.53 528.94 570.19 605.34 401.15 445.86 486.70 523.39 347.58 386.61 423.72 458.44]';
S=[4.39 4.65 5.24 5.64 4.40 4.67 5.68 5.72 4.85 5.59 5.94 6.92 5.35 6.53 7.23 7.95 6.76 7.28 8.21 9.96]';
fun=@(x) exp(x(1).*log(d)+x(2)./T+x(3))-S;
x0=[1 1 1];
[x1,resnorm,residual,exitflag] = lsqnonlin(fun,x0);
x2=[log(d) 1./T ones(numel(T),1)]\log(S);
norm1=sum(fun(x1).^2)
norm2=sum(fun(x2).^2)
10楼2017-08-29 19:59:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

tieer

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
这个是不是用1stopt会简单很多啊
思考,让这个世界更有趣。
2楼2017-08-28 15:22:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smitest

木虫 (小有名气)

3楼2017-08-28 15:33:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

smitest

木虫 (小有名气)

先改写成y= kx1+Ax2+B,利用最小二乘推导得M[k,A,B]=N解方程组直接得结果

发自小木虫Android客户端
4楼2017-08-28 17:35:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见