24小时热门版块排行榜    

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

太子龙1990

金虫 (小有名气)

[求助] 拟合问题已有3人参与

已知一个函数去拟合一系列点;这个函数以e为基底的指数(并非简单的多项式),一些列点为(x1,x2,y),有10组,函数中有未知参数三个,怎么编程求这些未知参数?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

武志国

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
太子龙1990: 金币+5, ★★★很有帮助 2015-01-23 09:13:15
用origin非线性拟合不行吗,看看拟合度,应该差不多

[ 发自小木虫客户端 ]
3楼2015-01-21 22:17:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

kabaisun

专家顾问 (正式写手)

你把函数用x1,x2,y表示一下,得知道形式。这个你自己在MATLAB里摸索一下就知道了
严实诚勇
4楼2015-01-21 22:47:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

漫江碧透

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
太子龙1990: 金币+5, ★★★很有帮助 2015-01-23 09:13:39
最小二乘法,对于指数函数,先待定系数,然后与实验对应值求误差,对所有求得的误差,做平方和,得到关于待定参数的函数,然后该函数分别对参数求偏导数,令偏导数等于零,求得待定系数,进而知道函数表达式。楼主可以网上或者找个课本看看具体的原理。我只能帮你到这了
5楼2015-01-21 22:55:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangzhiguang

至尊木虫 (文坛精英)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
太子龙1990: 金币+10 2015-01-23 09:12:53
你这个其实是系数拟合,你可以用matlab自己编程,也可以使用1stopt,matlab使用nlinfit函数,但是它是依赖于初值的选择的,由于你没有给出函数形式和数据,下面给你一个例子,你自己参考吧
首先编写一个函数,其对应于你的已知函数,不知你的函数有几个变量几个系数,下面给出的是1个变量,2个系数
function y=fxnh(beta,x)
a=beta(1);
b=beta(2);
x1=x;
y=beta(1).*(6/pi^0.5*x1.^0.5*beta(2)-3*x1*beta(2)^2);%此处为函数形式

然后再编写一个脚本进行运算
x=xlsread('2.xlsx');%变量数据
y=xlsread('1.xlsx');%因变量数据
beta0=[1,0.0001]';%两个系数的初值
[b,r]=nlinfit(x,y,'fxnh',beta0);
好好学习,天天向上!
6楼2015-01-22 08:53:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见