24小时热门版块排行榜    

查看: 1454  |  回复: 8

foreverolia

新虫 (初入文坛)

[求助] matlab求解非线性方程组报错,请各位大神指点! 已有1人参与

clear
>> syms n beta;
>> f1=sym(\'(f01-4*(2-n)*n*f01^(n-1)*sigma1^2*beta*yita1)/(1+2*n*(n-1)*f01^(n-2)*sigma1^2*beta*yita1)=fc1\')

f1 =

(f01 + 4*f01^(n - 1)*n*sigma1^2*yita1*(n - 2)*beta)/(2*f01^(n - 2)*n*sigma1^2*yita1*(n - 1)*beta + 1) = fc1

>> f2=sym(\'(f02-4*(2-n)*n*f02^(n-1)*sigma2^2*beta*yita2)/(1+2*n*(n-1)*f02^(n-2)*sigma2^2*beta*yita2)=fc2\')

f2 =

(f02 + 4*f02^(n - 1)*n*sigma2^2*yita2*(n - 2)*beta)/(2*f02^(n - 2)*n*sigma2^2*yita2*(n - 1)*beta + 1) = fc2

>> fo1=4.92;
>> fc1=3.76;
>> fo2=2.45;
>> fc2=2.31;
>> sigma1=1.50;
>> sigma2=0.635;
>> [n,beta]=solve(f1,f2)
Warning: Explicit solution could not be found.
> In solve at 81

n =

[ empty sym ]


beta =

     []
f1和f2是所求的方程组,算法总是报错,不知道该如何求解。。。
回复此楼

» 猜你喜欢

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

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

foreverolia

新虫 (初入文坛)

小女有一组数据要计算,但是大部分都显示帖子中的错误,不知道该如何纠正。。。求各位高手指点
2楼2014-09-09 09:19:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

看来你应该求下数值解,解析解MATLAB说找不到,或者你换用Maple或者Mathematica求下解析解。
Be water, my friend.
3楼2014-09-09 10:18:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

foreverolia

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by NicoleLas at 2014-09-09 10:18:27
看来你应该求下数值解,解析解MATLAB说找不到,或者你换用Maple或者Mathematica求下解析解。

我用plot绘图显示曲线和y=0有两个交点,理论上应该有两个解,可是为什么只能输出一个解。。。高手能不能帮忙写一下代码。。。
4楼2014-09-09 13:05:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
为图方便,给你用1stOpt编程算了下。
代码:
CODE:
Title "notsure";
Parameters n[0,1000,0],betta,yita1,yita2;
Function (4.92 + 4*4.92^(n - 1)*n*1.50^2*yita1*(n - 2)*betta)/(2*4.92^(n - 2)*n*1.50^2*yita1*(n - 1)*betta + 1) = 3.76;
         (2.45 + 4*2.45^(n - 1)*n*0.635^2*yita2*(n - 2)*betta)/(2*2.45^(n - 2)*n*0.635^2*yita2*(n - 1)*betta + 1) = 2.31;

采用L-M+UGO结果:
可能结果1:
n: 1
betta: 0.0879576864290957
yita1: 1.46535105823627
yita2: 0.986840117382106

可能结果2:
n: 1
betta: 0.235202634137847
yita1: 0.547990839309009
yita2: 0.369044224009309

上述结果都不一定正确,因为我不知道你的变量的取值范围,而且是否是连续或者整数变量,我假设n为非负整数变量,其余均为实数域连续变量了,你根据你的问题修改下吧,也可以采取其它算法试一下。
Be water, my friend.
5楼2014-09-09 18:18:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

foreverolia

新虫 (初入文坛)

引用回帖:
5楼: Originally posted by NicoleLas at 2014-09-09 18:18:06
为图方便,给你用1stOpt编程算了下。
代码:
Title "notsure";
Parameters n,betta,yita1,yita2;
Function (4.92 + 4*4.92^(n - 1)*n*1.50^2*yita1*(n - 2)*betta)/(2*4.92^(n - 2)*n*1.50^2*yita1*( ...

高手,想跟您请教一下,plot函数画图的时候,为什么x=1:1:10和x=1:0.1:10得到的函数图像走势不同?应该是一样的呀。。。程序代码如下:clear all;
>> n=1:1:10;
>> y=(4.92-3.72)/(2.45-2.34)-((1.5/0.635)^2)*((4.92/2.45).^(n-2)).*(((n-1)*3.72+(4-2*n)*4.92)./((n-1).*2.34+(4-2*n)*2.45));
>> plot(n,y)
以及
>> clear all;
>> n=1:0.1:10;
>> y=(4.92-3.72)/(2.45-2.34)-((1.5/0.635)^2)*((4.92/2.45).^(n-2)).*(((n-1)*3.72+(4-2*n)*4.92)./((n-1).*2.34+(4-2*n)*2.45));
>> plot(n,y)

两种情况的函数图像不同,您能给指点一下吗?
6楼2014-09-10 20:18:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
6楼: Originally posted by foreverolia at 2014-09-10 20:18:39
高手,想跟您请教一下,plot函数画图的时候,为什么x=1:1:10和x=1:0.1:10得到的函数图像走势不同?应该是一样的呀。。。程序代码如下:clear all;
>> n=1:1:10;
>> y=(4.92-3.72)/(2.45-2.34)-((1.5 ...

大体趋势是一样的。
   不同处在于步长设置,第二个步长更细,采样点更多,反映的情况更加真实,你可以尝试以0.01为步长,更加接近真实情况。
Be water, my friend.
7楼2014-09-10 21:53:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

foreverolia

新虫 (初入文坛)

引用回帖:
7楼: Originally posted by NicoleLas at 2014-09-10 21:53:23
大体趋势是一样的。
   不同处在于步长设置,第二个步长更细,采样点更多,反映的情况更加真实,你可以尝试以0.01为步长,更加接近真实情况。...

好的,谢谢~~~我好好学学matlab,有问题还要请教您~~
8楼2014-09-11 08:09:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

引用回帖:
8楼: Originally posted by foreverolia at 2014-09-11 08:09:51
好的,谢谢~~~我好好学学matlab,有问题还要请教您~~...

祝好!
Be water, my friend.
9楼2014-09-11 08:46:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 foreverolia 的主题更新
信息提示
请填处理意见