24小时热门版块排行榜    

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

岁月无边

铜虫 (小有名气)

[交流] MATLAB计算 已有2人参与

假设我已知初值,如何利用MATLAB拟合非线性方程。
是要将其转变为线性方程,然后利用lsqnonlin函数来求解吗?
不知有没有一个直接拟合非线性方程的示例,然我参考一下,或者书也行。
回复此楼
止于至善
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

岁月无边

铜虫 (小有名气)

引用回帖:
3楼: Originally posted by 512095518 at 2017-10-16 15:15:18
参考例子:

t=;
c=;
f = @(b)b(1)*exp(-b(2)*t)-c;
f2 = @(b,t)b(1)*exp(-b(2)*t);
b0 = ;
K = lsqnonlin(f,b0);
figure
plot(t,c,'or','linewidth',2)
hold on
syms x
fplot(f2(K,x),,'linewidth',2) ...

谢谢你的回答,受益匪浅
止于至善
4楼2017-10-17 08:54:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

bcsnow

铁杆木虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
regress nlinfit lslqcurcefit fminsearch lsqnonlin \
2楼2017-10-16 09:59:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
参考例子:
CODE:
t=[0.27 0.6 1.0 1.7 2 3 4 6];
c=[19.27 18.25 16.34 14.30 12.43 9.42 6.45 5.37];
f = @(b)b(1)*exp(-b(2)*t)-c;
f2 = @(b,t)b(1)*exp(-b(2)*t);
b0 = [0,0];
K = lsqnonlin(f,b0);
figure
plot(t,c,'or','linewidth',2)
hold on
syms x
fplot(f2(K,x),[min(t),max(t)],'linewidth',2)
R = corrcoef(c,f2(K,t));
R2 = R(2)^2;
q = legend(sprintf('R^2 = %5.4f C = %5.4f*e^{%5.4f*t}',[R2,K(1),K(2)]));
title(q,'指数拟合 C = C*\ite^{b*Z}','Color', 'r')
xlabel('c');ylabel('t');title('非线性拟合')
set(gca,'linewidth', 2, 'FontSize', 16, 'FontWeight', 'bold')

MATLAB计算
非线性拟合.jpg

没有极限,只有超越!
3楼2017-10-16 15:15:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见