Implicit function inside a loop.

3 Ansichten (letzte 30 Tage)
Anshuman S
Anshuman S am 21 Jan. 2018
Kommentiert: Anshuman S am 21 Jan. 2018
I want to plot a curve between err and b for different values of b.
  • I have kept the values of i to be a constant for the inner iteration, and I want to sum up the error ( square )
  • In 'o' and 'p'for different values of 'i' and finally I want to plot err vs b. such that i get a minimum to this curve at a certain 'b'.
sum =0;
err =0;
for b= 0:1:40
for i= 0:1:50
f1 = @(o,i) (sind(b+i) + sind(b-o)) -( 1.180/0.04 + sqrt.((1.140/0.04 - 2*sind(b)).^2 - (cosd(b-o)- cosd(b+i)).^2));
f2 = @(p,i) cotd(p-3.34) - cotd(i-1.07) - (1.180/(1.540 - 0.300));
sum = sum + (o - p).^2;
end
err = sqrt(sum/50);
plot (b,err);
hold on
end
  1 Kommentar
Anshuman S
Anshuman S am 21 Jan. 2018
I want to use these equations to get the values of 'o' and 'p' which are to be solved for same value of 'i'. Now that i have 'o' and 'p' values in terms of 'b' . I want to sum this for all the 'i's in the inner loop . further when i come out of the loop I want to plot a point (b, err) , the value of b comes from the outer loop. hence i'll get a set of 40 points for err vs b and i'll draw a curve to fit these data.
Thanks

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson am 21 Jan. 2018
total = 0;
err = 0;
bvals = 0:1:40;
for b = bvals
subtotal = 0;
for i= 0:1:50
f1 = @(o,i) (sind(b+i) + sind(b-o)) -( 1.180/0.04 + sqrt.((1.140/0.04 - 2*sind(b)).^2 - (cosd(b-o)- cosd(b+i)).^2));
f2 = @(p,i) cotd(p-3.34) - cotd(i-1.07) - (1.180/(1.540 - 0.300));
subtotal = subtotal + (o - p).^2;
end
err = sqrt(subtotal/50);
plot(bvals,err);
hold on
total = total + subtotal;
end
But why do you define f1 and f2 when you do not use them? And you have not defined o or p but you try to add their squared difference to the total?
  3 Kommentare
Anshuman S
Anshuman S am 21 Jan. 2018
The inner loop varies for 'i' and I want to work (subtotal = subtotal + (o - p).^2) with those values of 'o' and 'p' which come out from the equation f1 and f2 respectively.
Anshuman S
Anshuman S am 21 Jan. 2018
I want to use these equations to get the values of 'o' and 'p' which are to be solved for same value of 'i'. Now that i have 'o' and 'p' values in terms of 'b' . I want to sum this for all the 'i's in the inner loop . further when i come out of the loop I want to plot a point (b, err) , the value of b comes from the outer loop. hence i'll get a set of 40 points for err vs b and i'll draw a curve to fit these data.
Thanks.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by