Matlab 非线性拟合

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:29:02
跪求:
x=[-3.536,-2.626,-1.903,-1.257,-0.810,-0.471];
y=[0.2535,0.2753,0.3015,0.3300,0.3554,0.3812];
用y=a*x^(1/5)+b*x^(1/3)+1/2来拟合,得到a和b
(当然如果你有办法找到更适合的拟合关系式也可以)
x=[0.471,0.810,1.257,1.903,2.626,3.536];
y=[0.5182,0.6130,0.7646,0.8924,1.0427,1.1393];
y=a*x^(1/5)+b*x^(1/3)+1/2来拟合,得到a和b

x=[-3.536,-2.626,-1.903,-1.257,-0.810,-0.471];
y=[0.2535,0.2753,0.3015,0.3300,0.3554,0.3812];

x=x';
y=y';
A=[sign(x).*(abs(x)).^(1/5),sign(x).*(abs(x)).^(1/3)];
b=A\(y-1/2)

上面之所以那么复杂sign(x).*(abs(x)).^(1/3)
是因为x如果是负数时,它的分数次方,极有可能出现复数。
比如x=-8;
y=x^(1/3)
会得到
y =
1.0000 + 1.7321i