Help with plotting 3d function

1 Ansicht (letzte 30 Tage)
Jacob Andréasson
Jacob Andréasson am 9 Nov. 2019
Skärmavbild 2019-11-09 kl. 17.33.06.png
Hey!
I need help with exercise 2.b. This is my script that i have written
%% Exercise 2.b
clear
clf
clc
k=1;
L=6;
T=10
x=linspace(0,L,100); t=linspace(0,T,100);
for i=1 : length(x)
for j=1 : length(t)
u(i,j)=(8/(pi^2)).*(1./(n.^2)).*sin(n.*pi/2).*cos(n.*pi.*t(j)/6).*sin(n.*pi.*x(i)/6);
end
end
surf(t,x,u)
xlabel('t'); ylabel('x')
The problem that i need help with is how to put in the value of n. In the exercise it says that i should put n between 1->100 but i dont know how to do it....
Could someone pleas help me...?
  1 Kommentar
Star Strider
Star Strider am 9 Nov. 2019
Note that n is the index with respect to , and your code does not appear to be doing that summation.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Praveen Iyyappan Valsala
Praveen Iyyappan Valsala am 9 Nov. 2019
Most intuitive way is to add another loop to sum up function outputs of all n.
for i=1 : length(x)
for j=1 : length(t)
for n=1:100
u(i,j)=u(i,j)+(8/(pi^2)).*(1./(n.^2)).*sin(n.*pi/2).*cos(n.*pi.*t(j)/6).*sin(n.*pi.*x(i)/6);
end
end
end
Little more efficient way.
n=1:100;
for i=1 : length(x)
for j=1 : length(t)
u(i,j)=(8/(pi^2)).*sum((1./(n.^2)).*sin(n.*pi/2).*cos(n.*pi.*t(j)/6).*sin(n.*pi.*x(i)/6));
end
end
if you want even more cool code. learn about meshgrid function.

Community Treasure Hunt

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

Start Hunting!

Translated by