24小时热门版块排行榜    

查看: 445  |  回复: 2

imzome

新虫 (初入文坛)

[求助] matlab非线性用最小二乘法,求助 已有1人参与

有Re和Nu的一系列数据,用最小二乘法求c和m 怎么编代码啊?初学matlab,不太懂,求高手求教!!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pdl9527

专家顾问 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
把NU和RE换成自己的数据,然后选取一个合适的初值x0就可以了,最小二乘法对于初值要求很苛刻。

function question_5
%11-11-2016
clear;clc
x0 = [2,-1];
options = optimoptions('lsqnonlin','Display','iter');
x = lsqnonlin(@fun,x0,[],[],options);
disp(x);
function y=fun(x)
NU = ...
[0.9 1.5 13.8 19.8 24.1 28.2 35.2 60.3 74.6 81.3];
RE = ...
[455.2 428.6 124.1 67.3 43.2 28.1 13.1 -0.4 -1.3 -1.5];
y = x(1)*RE.^x(2)-NU;
2楼2016-11-11 23:32:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Rwang2012

金虫 (小有名气)

这种形式的的方程可以等式两边求对数,换成lnNu=m×lnRe+lnc,不是就是线性化的拟合吗?斜率和截距分别是m和lnc了。

发自小木虫Android客户端
3楼2016-11-12 00:08:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 imzome 的主题更新
信息提示
请填处理意见