having difficulty using a for loop to solve an equation

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

having difficulty using a for loop to solve an equation

naryana.shankara
here is my task:


Create two arrays x and y, whose entries are defined as
x  = i,
y  = j
i = 1, 2, 3, 4, 5.
y=5 − 2j,
j = −2, −1, 0, 1, 2.
Then, compute the cubed sum of these two vectors in two different ways. First, use a for loop
to construct the vector z as
z  = (x + y )^ 3 ,
i = 1, 2, 3, 4, 5.
my code:
%Vectorization
clc;
clear;
%x=i;                %array created per spec
%i=[1 2 3 4 5];      %array created per spec
y=5-2j;             %array created per spec
j=[-2 -1 0 1 2];    %array created per spec
z=(y).^3;           %formula to test for loop
for m=j
  t=z
end  
the result:
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i

I know the answer should be t= (the cube for the elements in j)
I'm new to octave but I've always needed adult supervision with loops.  What am I missing?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: having difficulty using a for loop to solve an equation

Dmitri A. Sergatskov
"i" and "j" are sqrt(-1). Use something else "ii" and "jj" is what I normally do.

Dmitri.

On Mon, Jun 19, 2017 at 6:47 PM, naryana.shankara <[hidden email]> wrote:
here is my task:
<http://octave.1599824.n4.nabble.com/file/n4683785/Screenshot_2017-06-19_17-54-18.png>

Create two arrays x and y, whose entries are defined as
x  = i,
y  = j

"i" and "j" are sqrt(-1). Use something else. My choise :  "ii" and "jj"

Dmitri.
--



_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: having difficulty using a for loop to solve an equation

naryana.shankara
In reply to this post by naryana.shankara
got rid of i and j my code looks like this:

%Vectorization
clc;
clear;
a=[1 2 3 4 5];      %array created per spec
x=a;                %array created per spec
b=[-2 -1 0 1 2];    %array created per spec
y=5-2.*b;           %array created per spec 
z=(y+x).^3;         %formula to be solved in loop
for m=a
  t=z
end

and the output is:

t =

   1000    729    512    343    216

t =

   1000    729    512    343    216

t =

   1000    729    512    343    216

t =

   1000    729    512    343    216

t =

   1000    729    512    343    216

>>

I was expecting my result to be something along the lines of:

t =

   1000    729    512    343    216
>>

or

t=
1000
t=
729
t=
512
t=
343
t=
216
>>

Did I leave something out or forget to add something?

Thank you for your help


On Mon, Jun 19, 2017 at 5:47 PM, naryana.shankara <[hidden email]> wrote:
here is my task:
<http://octave.1599824.n4.nabble.com/file/n4683785/Screenshot_2017-06-19_17-54-18.png>

Create two arrays x and y, whose entries are defined as
x  = i,
y  = j
i = 1, 2, 3, 4, 5.
y=5 − 2j,
j = −2, −1, 0, 1, 2.
Then, compute the cubed sum of these two vectors in two different ways.
First, use a for loop
to construct the vector z as
z  = (x + y )^ 3 ,
i = 1, 2, 3, 4, 5.
my code:
%Vectorization
clc;
clear;
%x=i;                %array created per spec
%i=[1 2 3 4 5];      %array created per spec
y=5-2j;             %array created per spec
j=[-2 -1 0 1 2];    %array created per spec
z=(y).^3;           %formula to test for loop
for m=j
  t=z
end
the result:
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i
t =   65 - 142i

I know the answer should be t= (the cube for the elements in j)
I'm new to octave but I've always needed adult supervision with loops.  What
am I missing?




--
View this message in context: http://octave.1599824.n4.nabble.com/having-difficulty-using-a-for-loop-to-solve-an-equation-tp4683785.html
Sent from the Octave - General mailing list archive at Nabble.com.

_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave


_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: having difficulty using a for loop to solve an equation

Kire Pudsje
In reply to this post by naryana.shankara


On Tue, Jun 20, 2017 at 1:47 AM, naryana.shankara <[hidden email]> wrote:
here is my task:
<http://octave.1599824.n4.nabble.com/file/n4683785/Screenshot_2017-06-19_17-54-18.png>

Create two arrays x and y, whose entries are defined as
x  = i,
y  = j
i = 1, 2, 3, 4, 5.
y=5 − 2j,
j = −2, −1, 0, 1, 2.
Then, compute the cubed sum of these two vectors in two different ways.
First, use a for loop
to construct the vector z as
z  = (x + y )^ 3 ,
i = 1, 2, 3, 4, 5.
my code:
%Vectorization
clc;
clear;
%x=i;                %array created per spec
%i=[1 2 3 4 5];      %array created per spec
y=5-2j;             %array created per spec
j=[-2 -1 0 1 2];    %array created per spec

First of all, I would say it is an ill-formed question.
In the introduction, two arrays are defined, however the position is also defined, especially for the y-array.
So in a formal sense only z1 and z2 are defined.

When declaring your array, first define the index then use it.
j=-2:2;
y=5-2*j;
Likewise for x.


_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: having difficulty using a for loop to solve an equation

Kire Pudsje
In reply to this post by naryana.shankara


On Tue, Jun 20, 2017 at 2:26 AM, shankara naryana <[hidden email]> wrote:
got rid of i and j my code looks like this:

%Vectorization
clc;
clear;
a=[1 2 3 4 5];      %array created per spec
x=a;                %array created per spec
b=[-2 -1 0 1 2];    %array created per spec
y=5-2.*b;           %array created per spec 
z=(y+x).^3;         %formula to be solved in loop
for m=a
  t=z
end

Actually you already wrote the vectorized form. There is no need for the for loop anymore
For the for loop solution, you would need to calculate the solution for each index separately.

I do not know if my other mail came through. There are network problems in the Netherlands.
But I think the assignment is ill-formed.
Purely from a methematical perspective, only z_1 and z_2 are defined.


_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: having difficulty using a for loop to solve an equation

Thomas D. Dean-2
On 06/19/2017 10:17 PM, Kire Pudsje wrote:

>
>
> On Tue, Jun 20, 2017 at 2:26 AM, shankara naryana
> <[hidden email] <mailto:[hidden email]>> wrote:
>
>     got rid of i and j my code looks like this:
>
>     %Vectorization
>     clc;
>     clear;
>     a=[1 2 3 4 5];      %array created per spec
>     x=a;                %array created per spec
>     b=[-2 -1 0 1 2];    %array created per spec
>     y=5-2.*b;           %array created per spec
>     z=(y+x).^3;         %formula to be solved in loop
>     for m=a
>        t=z
>     end
>
>
> Actually you already wrote the vectorized form. There is no need for the
> for loop anymore
> For the for loop solution, you would need to calculate the solution for
> each index separately.
>
> I do not know if my other mail came through. There are network problems
> in the Netherlands.
> But I think the assignment is ill-formed.
> Purely from a methematical perspective, only z_1 and z_2 are defined.

It appears this assignment is to demonstrate two ways to calculate the
cube of the sum.

x = [1 2 3 4 5];
b=[-2 -1 0 1 2];
% Loop to calculate y
for idx = 1:size(b,2)
   y(idx) = 5 - 2 * b(idx);
endfor
% Loop to calculate z
for idx = 1:size(y,2)
   z(idx) = ( x(idx) + y(idx) ) ^ 3;
endfor

% vector method
x = 1:5;
y = ( 5 - 2 .* [-2:2] );
z = ( x + y ) .^ 3;

%Or, simply
z = ( [1:5] + ( 5 - 2 .* [-2:2] ) ) .^ 3

Tom Dean

_______________________________________________
Help-octave mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-octave
Loading...