matlab多元函数非线性拟合问题

matlab多元函数非线性拟合问题:x1=[1.4836305941.5755071741.5750098251.5500498151.5096858481.422180... matlab多元函数非线性拟合问题:x1=[
1.483630594
1.575507174
1.575009825
1.550049815
1.509685848
1.422180961
1.397559392
1.289379364
1.460163938
1.414698256
1.461543476
1.328248649
1.432710904
]

x2=[
0.355159208
0.232657101
0.233320234
0.266600247
0.320418869
0.437092053
0.602440608
0.614160848
0.386448082
0.447068992
0.384608699
0.562335135
0.567289096
]
y=[
1.1725
1.15
1.13425
1.12125
1.05
1.2175
1.24075
1.25075
1.255
1.25675
1.26925
1.2675
]
想拟合成y=a*(x1)^b+c*(x2)^d的形式,求助大神,最好有程序
展开
 我来答
tianxiawulang
2012-11-25 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2557万
展开全部
程序见下,几点说明:
1、你的数据有问题:x1、x2都是13个点,而y是12个点。我暂时按照舍去x最后那个点处理。
2、从现在的情况看,效果不好,这和你的数据是否适合所给拟合公式有关。尤其y第5个点感觉比较怪异。
3、拟合问题和初值关系很大,如果你能知道拟合参数的大概范围会对尽快得到理想的结果有帮助。

function zd501259078

x1=[
1.483630594
1.575507174
1.575009825
1.550049815
1.509685848
1.422180961
1.397559392
1.289379364
1.460163938
1.414698256
1.461543476
1.328248649
];

x2=[
0.355159208
0.232657101
0.233320234
0.266600247
0.320418869
0.437092053
0.602440608
0.614160848
0.386448082
0.447068992
0.384608699
0.562335135
];
y=[
1.1725
1.15
1.13425
1.12125
1.05
1.2175
1.24075
1.25075
1.255
1.25675
1.26925
1.2675
];

x0 = [0.47 -0.58 0.93 0.13];
opt = optimset('MaxFunEvals', 1E4, 'MaxIter', 5E4, 'TolFun', 1E-14);
x = lsqcurvefit(@f,x0,[x1 x2],y,[],[],opt);
num2str(x)
a = x(1)
b = x(2)
c = x(3)
d = x(4)

% 绘图比较拟合结果和原始数据
z = a*x1.^b + c*x2.^d;
plot(y, '.-')
hold on
plot(z, 'ro')

function F = f(x, xdata)
a = x(1);
b = x(2);
c = x(3);
d = x(4);

x = xdata(:, 1);y = xdata(:, 2);
F = a*x.^b + c*y.^d;
victoriajll
2012-11-25 · TA获得超过4884个赞
知道大有可为答主
回答量:654
采纳率:100%
帮助的人:1042万
展开全部
clc;clear;
x1=[
1.483630594
1.575507174
1.575009825
1.550049815
1.509685848
1.422180961
1.397559392
1.289379364
1.460163938
1.414698256
1.461543476
1.328248649
];
x2=[
0.355159208
0.232657101
0.233320234
0.266600247
0.320418869
0.437092053
0.602440608
0.614160848
0.386448082
0.447068992
0.384608699
0.562335135
];
y=[
1.1725
1.15
1.13425
1.12125
1.05
1.2175
1.24075
1.25075
1.255
1.25675
1.26925
1.2675
];
%x和y大小不一致,我去掉了x最后一个元素
x=[x1 x2];
f=@(A,x)A(1)*x(:,1).^A(2)+A(3)*x(:,2).^A(4);
A=nlinfit(x,y,f,[1.47;-0.2;-0.1;-0.6])%%%方程系数矩阵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式