フィルターのクリア

calling exponential function to non linear square

2 ビュー (過去 30 日間)
Zahra Safari
Zahra Safari 2020 年 9 月 13 日
コメント済み: Zahra Safari 2020 年 9 月 14 日
I want to fit data to an exponential function with the nonlinear least squares method, but MATLAB gives an error.
The code that I've written :
clear;
clc;
close all;
%mix code: ref_concrete_T8
tdata = ...
[1.2560 2.7203 6.0830 10.0306 20.0960 40.9837 80.0923 ];
sdata = ...
[1.3000 7.2567 23.0167 30.2733 31.9400 43.0667 43.4850 ];
%fun=x1*exp(-(x2/tdata)^x3)
fun = @(x)x(1)*exp(-(x(2)./tdata)^x(3))-sdata;
x0=[40,0.9,0.1];
options = optimoptions(@lsqnonlin,'Algorithm','trust-region-reflective');
x = lsqnonlin(fun,x0)
plot(tdata,sdata,'ko')
hold on
tlist = linspace(tdata(1),tdata(end));
plot(tlist,x(1)*exp(-(x(2)./tdata)^x(3)),'b-')
xlabel time(day)
ylabel strength(MPa)
title('exponential Fit to Data ref conc T8')
legend('Data','exponential Fit')
hold off
  2 件のコメント
Samiu Haque
Samiu Haque 2020 年 9 月 13 日
In your function you can't raise a matrix to a power. The only thing that is possible is to raise the power of each element in the matrix and for that the line should be
fun = @(x)x(1)*exp(-(x(2)./tdata).^x(3))-sdata;
Image Analyst
Image Analyst 2020 年 9 月 13 日
Can you put this down in the answer section Samiu? You can even get credit for it down there. Thanks in advance.

サインインしてコメントする。

採用された回答

Samiu Haque
Samiu Haque 2020 年 9 月 13 日
In your function you can't raise a matrix to a power. The only thing that is possible is to raise the power of each element in the matrix and for that the line should be
fun = @(x)x(1)*exp(-(x(2)./tdata).^x(3))-sdata;
  5 件のコメント
Samiu Haque
Samiu Haque 2020 年 9 月 13 日
Use the following portion to solve the problem
syms tlist
y = x(1)*exp(-(x(2)./tlist).^x(3));
tlist = linspace(tdata(1),tdata(end));
y = subs(y);
plot(tlist,y,'b-')
Zahra Safari
Zahra Safari 2020 年 9 月 14 日
thank you.
how can i calculate the value of R-squared??

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSolver-Based Nonlinear Optimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by