Asked by R7 DR
on 9 Oct 2015

Hi I am trying to fit the data and find the constant values. my code is...

[T]=xlsread('Matlab.xlsx','sheet2','C5:C2685')

[alpha]=xlsread('Matlab.xlsx','sheet2','I5:I2685')%time

[dalpha_dt]=xlsread('Matlab.xlsx','sheet2','J5:J2685')

F=ones(size(alpha));

F=(1-alpha)

coeff0=[2.17E+22, 5] % initial guess

coeff=nlinfit([T,F],dalpha_dt,@model,coeff0);

A=coeff(:,1)

n=coeff(:,2)

Function:

function dhat=model(coef,a)

% par_fit = [a b]

a=coef(1);

b=coef(2);

T=a(:,1);

F=a(:,2);

% predicted model

dhat=a.*exp(208000./(8.3147*(T+273))).*(F^b);

return

I need to find the new coefficient values, but it is showing following error..Please tell me how to resolve this.

Error using nlinfit (line 205)

Error evaluating model function 'model'.

Error in fitting (line 16)

coeff=nlinfit([T,F],dalpha_dt,@model,coeff0);

Caused by:

Attempted to access a(:,2); index out of bounds because numel(a)=1.

Thanks

Answer by Star Strider
on 9 Oct 2015

You defined ‘a’ as a scalar (appropriately) so it is by definition a (1x1) ‘array’ (taking liberties with the concept here). It doesn’t have a second dimension.

How do you want to define ‘T’ and ‘F’?

Star Strider
on 9 Oct 2015

My pleasure.

You need the Global Optimization Toolbox to use the ga function it has, but relatively uncomplicated genetic algorithms are not difficult to program, especially in MATLAB.

Much has been written over the years about genetic algorithms. They are robust — if occasionally slow — problem solvers. The MATLAB documentation is very good (in my opinion). Since it recently changed, I encourage you to read the documentation for R2015a (that offered a different explanation and description of the essential knowledge underlying the various algorithms) as well as for R2015b (the current release).

Real world problems are frequently not easy to solve. You may also need a different model, or a revision of your current model. Since I do not know what you are doing (and I may not have the background to offer specific help even if I did), I cannot suggest any other approach.

R7 DR
on 9 Oct 2015

Thank for the information.

I will try to find the solution using genetic algorithms. If I need any help I will come back to you.

Thanks for your time. Have a nice weekend.

Star Strider
on 9 Oct 2015

My pleasure.

You, too!

Sign in to comment.

Answer by R7 DR
on 9 Oct 2015

Hi

The idea is that, I have data generated from the experiment. I can also calculate same kind of data from mathematical equation which is depended on two coefficients. Now I need to find these coefficients by fitting the mathematical data with experimental data.

The equations is...dalpha_dt= A*exp(-208000/(8.3417*(T+273)*(F^n)

T=loaded from the excel.

F=loaded from excel.

A & n are the coefficients I want to find.

I made the same calculation using excel with an initial guess of 'A & n' and the curves look like the following image.

Thanks

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.