![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247510/image.png)
Help with plotting 3d function
1 次查看(过去 30 天)
显示 更早的评论
![Skärmavbild 2019-11-09 kl. 17.33.06.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247509/Sk%C3%A4rmavbild%202019-11-09%20kl.%2017.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 个评论
Star Strider
2019-11-9
Note that n is the index with respect to
, and your code does not appear to be doing that summation.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/247510/image.png)
回答(1 个)
Praveen Iyyappan Valsala
2019-11-9
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!