Curve fitting for multivariable

2 views (last 30 days)
xdata = ...
[0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937
];
xdata1 = ...
[0.906307787 0.906307787 0.906307787 0.866025404 0.866025404 0.866025404 0.866025404 0.866025404 0.866025404 0.707106781 0.707106781 0.707106781 0.707106781 0.707106781 0.707106781
];
xdata2 = ...
[6 7 8 3 4 5 6 7 8 3 4 5 6 7 8
];
xdata3 = ...
[0.886554928 0.835547334 0.81144197 0.87036842 0.874342998 0.879089205 0.866834625 0.875630457 0.891094548 0.935958471 0.930808554 0.940172751 0.905018613 0.895769734 0.895561329
];
F = @(x,xdata,xdata1,xdata2,xdata3)xdata*x(1)*exp(x(2)*xdata1+x(3)*xdata2+x(4)*xdata);
Which curve fitting function can I use to solve x(1) x(2) x(3) x(4)?

Accepted Answer

Star Strider
Star Strider on 23 Nov 2021
There are several options.
I’m using fminsearch here.
xdata = ...
[0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937 0.882263937
];
xdata1 = ...
[0.906307787 0.906307787 0.906307787 0.866025404 0.866025404 0.866025404 0.866025404 0.866025404 0.866025404 0.707106781 0.707106781 0.707106781 0.707106781 0.707106781 0.707106781
];
xdata2 = ...
[6 7 8 3 4 5 6 7 8 3 4 5 6 7 8
];
xdata3 = ...
[0.886554928 0.835547334 0.81144197 0.87036842 0.874342998 0.879089205 0.866834625 0.875630457 0.891094548 0.935958471 0.930808554 0.940172751 0.905018613 0.895769734 0.895561329
];
% F = @(x,xdata,xdata1,xdata2,xdata3)xdata*x(1)*exp(x(2)*xdata1+x(3)*xdata2+x(4)*xdata);
F = @(x,xdata)xdata(:,1).*x(1).*exp(x(2).*xdata(:,2)+x(3).*xdata(:,3)+x(4).*xdata(:,4));
xdatam = [xdata(:) xdata1(:) xdata2(:) xdata3(:)];
x0 = rand(4,1);
[B,fv] = fminsearch(@(x) norm(F(x,xdatam)), x0)
B = 4×1
32.6171 329.4611 -415.3622 0.9991
fv = 0
.
  5 Comments
Star Strider
Star Strider on 24 Nov 2021
As always, my pleasure!
.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!