how to develop n order matrix?

i wish to make a matrix of nth order fromm K=[2000,-1000,0,0;-1000,2000,-1000,0;0,-1000,2000,-1000;0,0,-1000,1000; so on to nth order]
can anyone please help me with this ...

3 Kommentare

Jan
Jan am 19 Mär. 2021
Bearbeitet: Jan am 19 Mär. 2021
The explanation is not clear yet. What do you call "n.th order"?
It is getting a liitle bit easier to guess, if you post the matrix in 2D:
K = [2000, -1000, 0, 0; ...
-1000, 2000, -1000, 0; ...
0, -1000, 2000, -1000; ...
0, 0, -1000, 1000;
But why is the last element 1000 and not 2000?
Jasneet Singh
Jasneet Singh am 19 Mär. 2021
Bearbeitet: Jan am 19 Mär. 2021
its because last element is not hinged or fixed. so, there is only 1 force=1000 acting on it.
K=[2000,-1000,0,0;-1000,2000,-1000,0;0,-1000,2000,-1000;0,0,-1000,1000]
K = 4×4
2000 -1000 0 0 -1000 2000 -1000 0 0 -1000 2000 -1000 0 0 -1000 1000

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Jan
Jan am 19 Mär. 2021
Bearbeitet: Jan am 19 Mär. 2021

0 Stimmen

With some guessing: You want a tridiagonal matrix with the right bottom element changed. Then:
n = 4;
K = diag(repmat(2000, 1, n)) + ...
diag(repmat(-1000, 1, n-1), 1) + ...
diag(repmat(-1000, 1, n-1), -1)
or
K = zeros(n, n);
nn = n * n;
n1 = n + 1;
K( 1:n1:nn) = 2000;
K(n1:n1:nn) = -1000;
K( 2:n1:nn-n) = -1000;
or
K = toeplitz([2000, -1000, zeros(1, n - 2)])
or
K = full(gallery('tridiag', n, -1000, 2000, -1000))
or
K = conv2(eye(n), [-1000, 2000, -1000], 'same')
any finally:
K(n, n) = 1000;
Or directly:
K = diag([repmat(2000, 1, n - 1), 1000]) + ... % Last element adjusted
diag(repmat(-1000, 1, n - 1), 1) + ...
diag(repmat(-1000, 1, n - 1), -1)

7 Kommentare

Jasneet Singh
Jasneet Singh am 19 Mär. 2021
can you please specify how you did this ?
Jan
Jan am 19 Mär. 2021
Bearbeitet: Jan am 19 Mär. 2021
How I did what?
I've added changing the last element to 1000.
Jasneet Singh
Jasneet Singh am 19 Mär. 2021
i mean from where can i learn this codes from to make my life easier? like one you have used recenty for coding..
Jan
Jan am 19 Mär. 2021
Bearbeitet: Jan am 19 Mär. 2021
In your case it helps to recognize, that you want almost a "tridiagonal matrix". Then asking an internet search engine for "Matlab tridiagonal" finds matching code snippets. But if you do not know the term "tridiagonal", it is really hard to find matching keywpord. Then asking here in the forum is a very good method to let others find the keywords and to learn MATLAB. This is the purpose of this forum.
for omegaf_4=[0:1:80] % forcing frequency w4 form 1:80 with a resolution of 1Hz
F_b=[0;0;1;0];
D4=(-(omegaf_4^2).*M+K+(i*omegaf_4.*C));
d=(F_b.*D4^-1) % amplitude(d) for mass4 from the system
for d=(F_b.*D4^-1);
x= (abs(F_b./d)*1)
omegaf_4=[0:1:80]
end
can u help me plot values from 80 different matrices as a function of omegaf_4?
Jasneet Singh
Jasneet Singh am 22 Mär. 2021
specifically for x w.r.t omega..
Jan
Jan am 22 Mär. 2021
This is a new question. Please post it as a new thread.

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 19 Mär. 2021

0 Stimmen

n = 7;
MD = 2000*ones(1,n);
SD = -1000*ones(1,n-1);
K = diag(MD) + diag(SD,1) + diag(SD,-1)
K = 7×7
2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000
Or:
n = 7;
K = zeros(n,7);
K(1:n+1:end) = 2000;
K(2:n+1:end) = -1000;
K(n+1:n+1:end) = -1000;
K
K = 7×7
2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000 -1000 0 0 0 0 0 -1000 2000

Kategorien

Tags

Gefragt:

am 19 Mär. 2021

Kommentiert:

Jan
am 22 Mär. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by