Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

How do i substitute data from a list to a summation

1 visualizzazione (ultimi 30 giorni)
Georgios Panagiotou
Georgios Panagiotou il 15 Ott 2014
Chiuso: MATLAB Answer Bot il 20 Ago 2021
Hello I want to substitute multiple data from an excel worksheet(Vi,Xi) to this equation:
E := sum((V[i]-xi[i]*((1+b)/(b*xi[i]^4+1))^((1+b)/(4*b)))^2, i = 1 .. 106);
Do i need to create a loop (i=i+1)or can be done by using a simple function?

Risposte (1)

Star Strider
Star Strider il 15 Ott 2014
It can be done essentially as you wrote it, without a loop, using element-wise operations:
V = randi(20,10,1); % Create Data
xi = randi(20,10,1); % Create Data
b = 5; % Create Data
E = sum(V - xi.*((1+b)./(b.*xi.^4+1)).^((1+b)./(4*b))).^2;
  7 Commenti
Georgios Panagiotou
Georgios Panagiotou il 16 Ott 2014
Yes I am trying to do a least-squares nonlinear fit for the parameter b.
diff(E,b)=0 I want to find the parameter b and afterwards I wil substitute it to E to find the E
Star Strider
Star Strider il 16 Ott 2014
I thought so after thinking about it later, but I wanted to be certain.
The easiest way to estimate ‘b’ is to use the fminsearch function:
fidi = fopen('BLADE.txt');
D = textscan(fidi, '%f %f', 'HeaderLines',1);
xi = D{1};
V = D{2};
Vest = @(b,xi) xi.*((1+b)./(b.*xi.^4+1)).^((1+b)./(4*b)); % Model
E = @(b) sum(V - xi.*((1+b)./(b.*xi.^4+1)).^((1+b)./(4*b))).^2; % Cost Function
[b,Eval] = fminsearch(E, 1); % Estimate ‘b’
figure(1)
plot(xi, V, '+b')
grid
hold on
plot(xi, Vest(b,xi), '-r', 'LineWidth',1)
hold off
xlabel('Xi')
ylabel('V')
The code first imports your data, and assigns variables. I created the objective function ‘Vest’ from ‘E’, then created ‘E’ as an ‘anonymous function’ that I could use with fminsearch to estimate ‘b’ and also determine the value of ‘E’ at the minimum, since you want that. I then plotted ‘Vest’ with your data in the figure. It appears to be a good fit. The estimated value for ‘b’ here is 1.4772.
Does this do what you want?

Questa domanda è chiusa.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by