Solving equation involving trigonometry matrices with different row and column

Hello there
Im having problem write a program to solve these equation e[sin(f*(g-h))] where the value of matrix are different in row and column where 'e','f' and 'g' are 6 by 1 while 'h' is 1 by 6 matrix, for example
e=[1;2;3;4;5;6] f=[1;2;3;4;5;6] g=[1;2;3;4;5;6] h=[1 2 3 4 5 6]
e[sin(f*(g-h))]
kindly request anyone to help me. Thanx

1 Comment

Let's break down the problem step by step. You want to compute the expression \( e[\sin(f \cdot (g - h))] \), where:
- \( e \), \( f \), and \( g \) are column vectors of size \( 6 \times 1 \).
- \( h \) is a row vector of size \( 1 \times 6 \).
### Step-by-step Solution
1. **Matrix Dimensions**:
- Ensure that the dimensions of your matrices are correct.
- \( e, f, g \) are column vectors:
- \( e = [1; 2; 3; 4; 5; 6] \)
- \( f = [1; 2; 3; 4; 5; 6] \)
- \( g = [1; 2; 3; 4; 5; 6] \)
- \( h = [1, 2, 3, 4, 5, 6] \) is a row vector.
2. **Calculate \( g - h \)**:
- When you subtract a row vector from a column vector, MATLAB (or similar languages) will perform broadcasting automatically.
- The result will be a column vector where each entry of \( g \) has each of the entries in \( h \) subtracted from it.
For example,
```
g - h = [
g(1) - h(1), g(1) - h(2), g(1) - h(3), g(1) - h(4), g(1) - h(5), g(1) - h(6);
...
g(6) - h(1), g(6) - h(2), g(6) - h(3), g(6) - h(4), g(6) - h(5), g(6) - h(6)
]
```
3. **Calculate the Product \( f \cdot (g-h) \)**:
- The result is a matrix product where every element of the vector \( f \) multiplies each column of the resulting matrix from step 2.
- This will yield a new matrix where each element is given by:
```
f(i) * (g(j) - h(j))
```
4. **Apply the Sine Function**:
- Apply the sine function to each element of the resulting matrix from step 3.
5. **Multiply by Vector \( e \)**:
- Multiply the result by vector \( e \). Here you can apply broadcasting again to ensure that each element in the resulting sine matrix is multiplied by corresponding elements in vector \( e \).
### Example Code
Here's how this could look in MATLAB:
```matlab
e = [1; 2; 3; 4; 5; 6];
f = [1; 2; 3; 4; 5; 6];
g = [1; 2; 3; 4; 5; 6];
h = [1, 2, 3, 4, 5, 6];
% Calculate (g-h)
g_h_diff = g - h;
% Calculate f * (g-h)
product_matrix = f * g_h_diff;
% Apply sine function
sine_matrix = sin(product_matrix);
% Multiply by e
result = e .* sine_matrix;
```
### Summary
- Make sure your dimensions align for matrix operations.
- Use broadcasting carefully when performing operations between vectors and matrices.
- Each operation should be clear and sequentially followed to prevent confusion.

Sign in to comment.

 Accepted Answer

Rahimi, use
e.*sin(f.*(g - h'))
To do element-wise multiplication you need to use the .* operator, the prime ' turns a row into a column vector, and vice versa.

3 Comments

thanx Mischa Kim for your answer, i did not understand the function of .* , can you elaborate the function of .* in equation form, one more thing what is the program if my equation consist modulus? for example e[sin(f*(g-h))].
can i use these program??
abs(e.*sin(f.*(g - h')))
sory for bothering you
To your first question, consider this example:
A = [1 0 3];
B = [2 3 7];
C = A.*B
C =
2 0 21
With element-wise operation (multiplication, in this case) you perform operations element by element. The very same concept applies to your equation.
Regarding your third question, yes you can. The second one (modulus) I am not sure I understand.
thanx again Mischa Kim for the answer, this is my last question, after use the Program
e.*sin(f.*(g - h'))
the answer will be in 4 by 1 matrix, what is the program to add with one round number, for example.
x + e[sin(f*(g-h))]
where e=[1;2;3;4;5;6], f=[1;2;3;4;5;6], g=[1;2;3;4;5;6], h=[1 2 3 4 5 6], x=2
thank you

Sign in to comment.

More Answers (2)

Clc; Clear; Close; t=-10:0,01:10; L=length (t); for i=1:L % generate unit step and ramp function if t (i)<0 x1(i)=0; x2(i)=0; else

1 Comment

It looks like you're trying to create a MATLAB script that generates unit step and ramp functions based on the values in the time vector \( t \). Let's go through this step by step and complete your code.
### Step-by-step Completion
1. **Define the Time Vector**:
- You've already defined the time vector \( t \) from -10 to 10 with a step of 0.01.
2. **Initialize Variables**:
- You need to initialize your output vectors \( x1 \) (for the unit step function) and \( x2 \) (for the ramp function).
3. **Generate Functions**:
- In the loop, you'll check if each value of \( t \) is less than 0 to determine the output of your unit step and ramp functions.
### Complete Code
Here’s how you can complete your MATLAB code:
```matlab
clc;
clear;
close all;
% Define the time vector
t = -10:0.01:10;
L = length(t);
% Initialize output vectors
x1 = zeros(1, L); % Unit step function
x2 = zeros(1, L); % Ramp function
% Generate unit step and ramp functions
for i = 1:L
if t(i) < 0
x1(i) = 0; % Unit step is 0 for t < 0
x2(i) = 0; % Ramp is also 0 for t < 0
else
x1(i) = 1; % Unit step is 1 for t >= 0
x2(i) = t(i); % Ramp function is equal to t for t >= 0
end
end
% Plotting the functions
figure;
subplot(2,1,1);
plot(t, x1, 'LineWidth', 2);
title('Unit Step Function');
xlabel('Time (t)');
ylabel('x1(t)');
grid on;
subplot(2,1,2);
plot(t, x2, 'LineWidth', 2);
title('Ramp Function');
xlabel('Time (t)');
ylabel('x2(t)');
grid on;
```
### Explanation of Code
- **Initialization**: The `zeros` function initializes \( x1 \) and \( x2 \) to be zero vectors of length \( L \).
- **Loop**: The `for` loop iterates through each element of \( t \):
- If \( t(i) < 0 \), then both the unit step \( x1(i) \) and ramp \( x2(i) \) are set to zero.
- If \( t(i) \geq 0 \), then the unit step \( x1(i) \) is set to one and the ramp \( x2(i) \) is set to equal \( t(i) \).
- **Plotting**: The `subplot` function is used to create two plots in one figure: one for the unit step function and another for the ramp function.

Sign in to comment.

 A = [1 0 3];
 B = [2 3 7];
 C = A.*B 
 C =
     2     0    21

1 Comment

Great! It seems you are performing element-wise multiplication of two vectors \( A \) and \( B \) in MATLAB. Let's break down what you're doing and explain:
### Step-by-Step Explanation of Element-wise Multiplication
1. **Defining Vectors**:
- You have defined two vectors:
- \( A = [1, 0, 3] \)
- \( B = [2, 3, 7] \)
2. **Element-wise Multiplication**:
- In MATLAB, the `.*` operator is used for element-wise multiplication. This means that each corresponding element from both vectors will be multiplied together.
3. **Calculation**:
- Let's calculate \( C \) step by step:
- For the first element: \( A(1) * B(1) = 1 * 2 = 2 \)
- For the second element: \( A(2) * B(2) = 0 * 3 = 0 \)
- For the third element: \( A(3) * B(3) = 3 * 7 = 21 \)
4. **Result**:
- Thus, the resulting vector \( C \) after performing the operation will be:
- \( C = [2, 0, 21] \)
### Summary
- The code you've executed correctly computes the element-wise product of vectors \( A \) and \( B \), resulting in:
```matlab
C =
2 0 21
```

Sign in to comment.

Asked:

on 20 Feb 2014

Commented:

on 16 Dec 2024

Community Treasure Hunt

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

Start Hunting!