24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2834  |  回复: 19

zyj8119

木虫 (著名写手)


[交流] 【求助】使用MATLAB拟合出按照公式的系数

我想拟合出y=a(1)*exp(-b(1)*B(i,1))+a(2)*exp(-b(2)*B(i,1))+a(3)*exp(-b(3)*B(i,1))+y(0),其中x,y是已知数,其他的都是需要拟合出来的系数,x,y 来自于这个文件:CT.xls,我编写了一个m文件,不知道为什么不行:
CODE:
function plottu
clc;
B=xlsread('E:\CT.xls','sheet1')
fun=inline('a(1)*exp(-b(1)*B(i,1))+a(2)*exp(-b(2)*B(i,1))+a(3)*exp(-b(3)*B(i,1))+y(0)','a','b','y(0)','x');
a(0)=[10,10,10];
b(0)=[30,30,30];
y(0)=36;
[x,resnorm]=lsqcurvefit(fun,a(1),b(1),y(1),B(i,1),B(i,2));
end

回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

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

信彼南山

木虫 (著名写手)



zyj8119(金币+1):谢谢参与
你的y(0)为什么是36呢?
2楼2011-01-11 22:28:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)



xiegangmai(金币+1):谢谢参与 2011-01-11 22:43:08
你那个B(i,1)是啥东西?是不是想说B(:,1)啊?

你的函数是不是应该这样啊?
y(i)=a1*exp(-b1*x(i))+a2*exp(-b2*x(i))+a3*exp(-b3*x(i))+y(0)
3楼2011-01-11 22:35:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by 信彼南山 at 2011-01-11 22:28:03:
你的y(0)为什么是36呢?

我就是随便给了个初值。
4楼2011-01-11 22:46:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by 信彼南山 at 2011-01-11 22:35:15:
你那个B(i,1)是啥东西?是不是想说B(:,1)啊?

你的函数是不是应该这样啊?
y(i)=a1*exp(-b1*x(i))+a2*exp(-b2*x(i))+a3*exp(-b3*x(i))+y(0)

文件的第一列数据。
5楼2011-01-11 22:46:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by 信彼南山 at 2011-01-11 22:35:15:
你那个B(i,1)是啥东西?是不是想说B(:,1)啊?

你的函数是不是应该这样啊?
y(i)=a1*exp(-b1*x(i))+a2*exp(-b2*x(i))+a3*exp(-b3*x(i))+y(0)

那怎么编程序才能拟合出a1,a2,a3,b1,b2,b3,y0?
6楼2011-01-11 22:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


★ ★
robert2020(金币+2):多谢应助!辛苦了!鼓励继续解答! 2011-01-12 11:06:29
% zyj_main.m
clear;clc;
B=xlsread('CT.xls','sheet1');
xdata=B(:,2);
ydata=B(:,3);
a=[10,10,10];
b=[30,30,30];
y0=36;
x=lsqcurvefit(@zyj_fun1,[a,b,y0],xdata,ydata);


-----------------------------------------------------------------------
% zyj_fun1.m
function zas=zyj_fun1(x,xdata)
zas=x(1)*exp(-x(4)*xdata)+x(2)*exp(-x(5)*xdata)+x(3)*exp(-x(6)*xdata)+x(7)';

----------------------------------------------------------------------
结果似乎还不对,你的这些数据本身就比较接近y=a*exp(-b*x)+c形式
7楼2011-01-11 23:00:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


引用回帖:
Originally posted by zyj8119 at 2011-01-11 22:46:51:

文件的第一列数据。

大哥,你的第一列是编号,不是数据
8楼2011-01-11 23:01:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by 信彼南山 at 2011-01-11 23:01:29:


大哥,你的第一列是编号,不是数据

那就第二列吧。
10楼2011-01-12 12:08:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)



xiegangmai(金币+1):谢谢参与 2011-01-13 08:26:54
引用回帖:
Originally posted by 信彼南山 at 2011-01-11 23:00:46:
% zyj_main.m
clear;clc;
B=xlsread('CT.xls','sheet1');
xdata=B(:,2);
ydata=B(:,3);
a=[10,10,10];
b=[30,30,30];
y0=36;
x=lsqcurvefit(@zyj_fun1,[a,b,y0],xdata,ydata);


-------------------- ...

我用你的程序怎么跑出这样的结果:

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.

13楼2011-01-12 12:32:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


晕死,main贴错了。回头找找删没
14楼2011-01-13 00:36:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)



xiegangmai(金币+1):鼓励交流 2011-01-13 08:28:42
我还真是这么写的程序

不过,按照你的这些数据,我觉得根本拟合不出来你那些参数,或者说可以有无穷多组结果能满足条件,建议换一个算法试试,或者在公示中多加一些约束条件来判别
17楼2011-01-13 02:45:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


引用回帖:
Originally posted by 信彼南山 at 2011-01-13 02:45:53:
我还真是这么写的程序

不过,按照你的这些数据,我觉得根本拟合不出来你那些参数,或者说可以有无穷多组结果能满足条件,建议换一个算法试试,或者在公示中多加一些约束条件来判别

但是别人拟合出来啊,是以前人。
18楼2011-01-13 17:08:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)


引用回帖:
Originally posted by zyj8119 at 2011-01-13 17:08:13:

但是别人拟合出来啊,是以前人。

有没有以前人的程序啊,给看看的说
我觉得拟合不出来,投降了
19楼2011-01-15 16:29:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qingmingwu

金虫 (正式写手)



zyj8119(金币+1):谢谢参与
太高深了
20楼2011-01-16 10:11:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
jipd9楼
2011-01-11 23:01   回复  
zyj8119(金币+1):谢谢参与
robert2020(金币-3):为了他人的方便,请勿在求助帖中纯表无意义回复! 2011-01-12 11:07:05
2011-01-12 12:24   回复  
zyj8119(金币+1):谢谢参与
xiegangmai(金币-3):请勿在求助帖中纯表无意义回复! 2011-01-12 12:32:26
tangyanxmc12楼
2011-01-12 12:31   回复  
zyj8119(金币+1):谢谢参与
xiegangmai(金币-3):请勿在求助帖中纯表无意义回复! 2011-01-12 12:32:36
tangyanxmc15楼
2011-01-13 01:10   回复  
zyj8119(金币+1):谢谢参与
xiegangmai(金币-1):请勿在求助帖中纯表无意义回复! 2011-01-13 08:28:16
2011-01-13 01:19   回复  
zyj8119(金币+1):谢谢参与
xiegangmai(金币-1):请勿在求助帖中纯表无意义回复! 2011-01-13 08:28:24
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见