matlab由x得到y,matlab 已知x、y值以及函数,求未知参数
滿意答案
1位老農民
2013.10.03
采納率:59%????等級:12
已幫助:5911人
matlab 非線性的擬合有兩個命令lsqcurvefit和lsqnonlin。這里用lsqcurvefit(lsqnonlin一樣做),先介紹下lsqcurvefit(原理是最小二乘法)
已知數據點:xdata=(xdata1,xdata2,…,xdatan)
ydata=(ydata1,ydata2,…,ydatan)
lsqcurvefit用以求含參量x(向量)的向量值函數
F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T
中的參變量x(向量),使得1/2*∑[a+b*exp(-0.02*k*t(i))-c(i)]^2最小
1.先定義個函數fun
function y=fun(x,t)
y=(x(1)+x(2)*t.^x(3)).*(1-t).^x(4);
2.調用
clc
clear
tdata=[0.0015 0.0073 0.0125 0.0415 0.0725 0.1030 0.1323 0.1607 0.1879 0.2141 0.2392 0.2632 0.2862 0.3081 0.3291];
ydata=[-2.8988 -0.1635 0.0122 0.0174 0.0181 0.0176 0.0170 0.0164 0.0159 0.0153 0.0146 0.0140 0.0134 0.0129 0.0125];
x0=[1 1 1 1];
x=lsqcurvefit('fun',x0,tdata,ydata)
結果a =-12.4986 b =31.6477 m =0.2062
n =250.3035
*****有一個地方x0=[1 1 1 1];這邊是x0迭代的初始值即a,b,m,n迭代的初始值,你可以自己修改一下(根據建的模型,找你認為近似的解或可行解帶入可以提高結果精度)初始值的不同對解有點影響,但不大
11分享舉報
總結
以上是生活随笔為你收集整理的matlab由x得到y,matlab 已知x、y值以及函数,求未知参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab转向梯形优化设计,转向梯形优
- 下一篇: php-calendar,PHPCale