matlab如何求解下面的这个方程

matlab如何求解下面的这个方程
sqrt(1/(4*pi*pi(x^2+z^2))+1)*x^2/(x^2+z^2)*cos(2*pi*(t/T)2*pi*sqrt(x^2+z^2)+atan(2*pi*sqrt(x^2+z^2)))=C


函数
clear
Tt=0:1/8:1;
C=-1.6:0.2:1.6;
for i=1:9
n=1;
figure(n)
for j=1:17
ezplot('sqrt(1./(4.*pi.*pi.*(x.^2+z.^2))+1).*x.^2./(x.^2+z.^2).*cos(2.*pi.*Tt(i)-2.*pi.*sqrt(x.^2+z.^2)+atan(2.*pi.*sqrt(x.^2+z.^2)))=C(j)',[-3,3]);
hold on
end
end
这个程序错了但是我不知道如何修改,求解的目的是为了画图,
jinxiang1985 1年前 已收到1个回答 举报

wqjwkgg 幼苗

共回答了17个问题采纳率:88.2% 举报

因为你没指出来要画参数C' 、T和t分别是多少的图像, 所以只是指出其中需要修改的地方:
先在clear之后的第一行定义x和z为符号变量,如果需要t也是符号变量,加上t: syms x z
这样ezplot函数里边就不能加单引号了, 实际上加上单引号的话, 别的变量C和Tt就不起作用了,结果是没定义.ezplot用减号不用等号.
代码只是修改了一下语法错误:
clear;clf;
syms z x
Tt=0:1/8:1;
C=-1.6:0.2:1.6;
for i=1:length(Tt)
n=1;
figure(n)
for j=1:length(C)
ezplot(sqrt(1./(4.*pi.*pi.*(x.^2+z.^2))+1).*x.^2./(x.^2+z.^2).*cos(2.*pi.*Tt(i)-2.*pi.*sqrt(x.^2+z.^2)+atan(2.*pi.*sqrt(x.^2+z.^2)))-C(j),[-3,3]);
hold on
end
end

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.014 s. - webmaster@yulucn.com