24小时热门版块排行榜    

查看: 3247  |  回复: 5

l274595924

新虫 (初入文坛)

[求助] matlab已知f(x,y)=0,已知一组x如何求对应的y值? 已有1人参与

求助各位大神,我的代码如下:
x=[0,0.0304878,0.0762195,0.121951,0.150745,0.179539,0.210027,0.240515,0.269309,0.299797,0.330285,0.360772,0.389566,0.420054,0.450542,0.479336,0.509824,0.540312,0.570799,0.5993,0.630081,0.660569,0.689363,0.719851,0.750339,0.780827,0.809621,0.840108,0.870596,0.89939,0.929878,0.960366,0.98916,1.01965,1.05014,1.08062,1.10942,1.13991,1.17039,1.19919,1.22967,1.26016,1.29065,1.31944,1.34993,1.38042,1.40921,1.4397,1.47019,1.50068,1.52947,1.55996,1.59045,1.61924,1.64973,1.67683,1.7107,1.76999,1.80047,1.82927,1.85976,1.89024,2.0105];
y=[0,0.685871,1.23457,2.05761,2.46914,3.08642,3.7037,4.32099,5.07545,5.76132,6.58436,7.40741,8.27618,9.0535,9.87654,10.2652,11.1111,11.8656,12.6886,13.5117,14.3576,15.0206,15.7979,16.6438,17.4211,18.1984,18.9986,19.8674,20.7133,21.6049,22.2222,22.8395,23.4568,23.9369,24.4627,24.8971,25.3086,25.5144,25.8802,26.1088,26.3374,26.5432,26.5432,26.5432,26.3374,26.1317,25.9259,25.3086,24.5542,23.5254,22.4508,21.0791,19.5245,17.9012,16.1408,14.8148,13.3288,12.3228,12.0942,11.9113,11.9113,11.9113,11.9113];
i=1;
n=length(x);
while i<=n
fsolve(\'2.52*x(i)*10*(1-0.745538517+0.745538517*exp(-((0.203565947*(y+2)*2.52*x(i)/(y-2*0.33)+(y-1)*2.52*x(i)/(y-2*0.33)/sqrt(3)- 2.271929415)/31.99147744)^3.768957857))+2*0.33-y\',y(i))
i=i+1;
end
出现提示如下:
??? Error using ==> inlineeval at 15
Error in inline expression ==>
2.52*x(i)*10*(1-0.745538517+0.745538517*exp(-((0.203565947*(y+2)*2.52*x(i)/(y-2*0.33)+(y-1)*2.52*x(i)/(y-2*0.33)/sqrt(3)-
2.271929415)/31.99147744)^3.768957857)))+2*0.33-y
??? Error: Unbalanced or unexpected parenthesis or bracket.

Error in ==> inline.feval at 36
        INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

Error in ==> fsolve at 195
        fuser = feval(funfcn{3},x,varargin{:});

Error in ==> qiujie at 6
fsolve(\'2.52*x(i)*10*(1-0.745538517+0.745538517*exp(-((0.203565947*(y+2)*2.52*x(i)/(y-2*0.33)+(y-1)*2.52*x(i)/(y-2*0.33)/sqrt(3)-
2.271929415)/31.99147744)^3.768957857)))+2*0.33-y\',y(i))
各位大神能帮我看一下么?感激不尽
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

有意瞄准无意击发
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mylifeljy

禁虫 (正式写手)

感谢参与,应助指数 +1
本帖内容被屏蔽

2楼2015-04-24 10:44:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

l274595924

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by mylifeljy at 2015-04-24 10:44:42
不知lz的程序写的是什么意思,y的数据是y的初值?如果是,可按下面程序计算。
clc; clear all;  close all;
x=.';
y0=.';

y=fsolve(@(y)2.52*x*10.*(1-0.745538517+0.745538517*exp(-((0.203565947*(y+2)*2. ...

谢谢你。
用你写的能算出来,但是用ezplot画出来的图形与用x和y值组成的图形差别较大,ezplot画出来是先上升后下降的曲线,用x和y值画出来的是直线,请问为什么会这样,是计算的结果不对么?
有意瞄准无意击发
3楼2015-04-24 16:30:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mylifeljy

禁虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
l274595924: 金币+10, ★★★★★最佳答案, 完美解决了我的问题。 2015-04-27 08:42:16
本帖内容被屏蔽

4楼2015-04-24 20:12:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

l274595924

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by mylifeljy at 2015-04-24 20:12:56
不知道你是怎么画的,ezplot中x的范围取得太大了吧,,。我画出来的图是一致的啊。
不知道怎么不能上传图片了,你自己运行下吧
clc; clear all;  close all;
x=.';
y0=.';

y=fsolve(@(y)2.52*x*10.*(1-0.74 ...

哈哈,我知道了,是这样的,我给你的方程和我算的方程不一样。
谢谢了,matlab大神,以后还请多多指教。
有意瞄准无意击发
5楼2015-04-27 08:41:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mylifeljy

禁虫 (正式写手)

本帖内容被屏蔽

6楼2015-04-27 09:03:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 l274595924 的主题更新
信息提示
请填处理意见