用matlab,已知x的值,和f(x,y)=0的隐函数,如何求y 10
已知x=linspace(-2.23,2.23,100);和隐函数sin(2^0.5*y)-0.5*sin(0.5*2^0.5*(x-y)).*sin(0.5*2^0.5...
已知x=linspace(-2.23,2.23,100);
和 隐函数sin(2^0.5*y)-0.5*sin(0.5*2^0.5*(x-y)).*sin(0.5*2^0.5*(x+y))=0,如何用matlab求与x相对应的y的值。 展开
和 隐函数sin(2^0.5*y)-0.5*sin(0.5*2^0.5*(x-y)).*sin(0.5*2^0.5*(x+y))=0,如何用matlab求与x相对应的y的值。 展开
1个回答
展开全部
h=ezplot('sin(2^0.5*y)-0.5*sin(0.5*2^0.5*(x-y)).*sin(0.5*2^0.5*(x+y))=0',[-2.23,2.23 0 1]);
x1=get(h,'XData');
y1=get(h,'YData');
x=linspace(-2.23,2.23,100);
y=interp1(x1,y1,x);
hold on
plot(x,y,'r')
使用ezplot函数来实现吧。先画出图像,然后图像上取点进行插值。当然这样可能不够精确。
要想更精确就给定一个x,然后只用数值方法求y。
x1=get(h,'XData');
y1=get(h,'YData');
x=linspace(-2.23,2.23,100);
y=interp1(x1,y1,x);
hold on
plot(x,y,'r')
使用ezplot函数来实现吧。先画出图像,然后图像上取点进行插值。当然这样可能不够精确。
要想更精确就给定一个x,然后只用数值方法求y。
更多追问追答
追问
请问数值方法怎么做?我用subs(solve()),matlab一直busy,不知道是我的电脑太慢了,还是方程太复杂了。
追答
是你的方法不好
f=@(x,y)sin(2^0.5*y)-0.5*sin(0.5*2^0.5*(x-y)).*sin(0.5*2^0.5*(x+y));
x1=linspace(-2.23,2.23,100);
for i=1:length(x1)
x=x1(i);
y(i)=fsolve(@(y) f(x,y),0);
end
plot(x1,y)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询