matlab 非线性最小二乘法程序,请大侠帮我修改,编个正确的程序,非常感谢

就是下面这个公式Wq=b*Np/(R-N)N是累积产油量(对应x值)W是N值对应下的累积产水量(对应的tdata);已知N和W的一组对应的数据,求q、b、P、R四个未知数... 就是下面这个公式
Wq=b*Np/(R-N)
N是累积产油量(对应x值)
W是N值对应下的累积产水量(对应的tdata);
已知N和W的一组对应的数据,求q、b、P、R四个未知数。
数据在后面,因为字数限制,只粘贴上了部分数据;
我急需这个程序,谢谢大侠帮忙
下面是我编写的文件,运算不下去

m文件:

function f=curvefun1(a,x);

f=((a(1).*x.^a(2))/(a(3)-x)).^(1/a(4));

输入命令

%a(1)=b;a(2)=p;a(3)=R;a(4)=q;

tdata=xlsread('cumwater','sheet1','A1:GJ1');

x=xlsread('cumoil','sheet1','A1:GJ1');

a0 = [0,0,0,0];

a = lsqcurvefit('curvefun1', a0, x, tdata);

f=curvefun1(a,x);

运行后出错
Error using lsqcurvefit (line 247)
Function value and YDATA sizes areincommensurate.
Error in sample1 (line 6)
a = lsqcurvefit('curvefun1', a0, x, tdata);

以下是对应的数据:

cumoil cumwater

66875.41 58977.89

67735.27 60461

68702.61 62111.58

69707.74 63778.53

70700.54 65502.97

71779.68 67433.32

72888.27 69551.3

73835.36 71377.45

74872.23 73369.16

75873.16 75029.27

76682.89 76438.22

77623.03 78030.04

78662.82 79861.07

79639.4 81524.4

80732.68 83373.33

81768.37 84971.66

82819.92 86584.91

83853.85 88167.91

84879.57 89706.48

85845.71 91149.57

86272.45 91733.81

86631.99 92420.38

87457.44 94050.57

88392.46 95877.68

89303.52 97558.14

90172.87 99446.22

91127.56 101512.4

92031.94 103342.9

92841.83 105022.1
请帮忙者注意: 公式中的p和q都是指数。
展开
 我来答
lhmhz
高粉答主

2013-11-10 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:17001

向TA提问 私信TA
展开全部

1、对于非线性拟合函数(如指数函数等)用lsqcurvefit()函数的精度要比 nlinfit()函数要低。对于本例,用lsqcurvefit()函数nlinfit()函数0.95861,而nlinfit()函数nlinfit()函数0.99905。

2、自定义函数curvefun1(a,x)定义不够合理,还需要加一个绝对值符号,即f=abs((a(1).*x.^a(2))./(a(3)-x)).^(1/a(4)),这是指数方程的性质所决定。

3、自定义函数方程中有一个错误,'/'应为'./'。缺一个小点。

4、初值选定不合理,对于本例a0 =b=[-0.8   -0.2   -0.9   -0.3]

5、本例的拟合结果如下

a =[ -307506534.2, -1.122708895, -2085623.768, -0.6827697455]

即a(1)=b;a(2)=p;a(3)=R;a(4)=q

我行我素850915
2017-11-06 · TA获得超过8241个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:1725万
展开全部
你能把数据文件发过来吗?我可以给你运行、调试,改下程序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式