24小时热门版块排行榜    

查看: 1822  |  回复: 14

chaofan1231

银虫 (小有名气)

[求助] 急急急!符号函数解代数方程遇到的问题

各位高手帮忙看下这是怎么一回事呀!
rg=2;
>> T2=subs(fsolve('rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1))',1000))
??? Error using ==> inlineeval at 15
Error in inline expression ==> rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1))
Undefined function or variable 'rg'.
Error in ==> inline.feval at 36
        INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);
注:直接将rg=2代入方程式可以解的,但是我需要的是在循环中不断给rg赋值,然后再代入公式计算T2,不知道该如何做到。有其它能解上边代数方程的函数也可以用。谢谢啊!
回复此楼

» 猜你喜欢

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

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

lijie169

铜虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
可以这样
CODE:
function f=do(rg)
      n=length(rg);
      x0=1000;
      f=zeros(n,1);
      for i=1:n
         f(i)=fsolve(@(x) fun(x,rg(i)),x0);
      end

function f=func(x,rg)
      f=rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1));
end

使用方法,将你要使用rg的值作为一个向量带入 ,运行do(rg),就ok
2楼2012-05-17 12:01:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

引用回帖:
2楼: Originally posted by lijie169 at 2012-05-17 12:01:53:
可以这样

function f=do(rg)
      n=length(rg);
      x0=1000;
      f=zeros(n,1);
      for i=1:n
         f(i)=fsolve(@(x) fun(x,rg(i)),x0);
      end

function f=func(x,rg)
      f=rg ...

CODE:
function f=do(rg)
      n=length(rg);
      x0=1000;
      f=zeros(n,1);
      for i=1:n
         f(i)=fsolve(@(x) func(x,rg(i)),x0);
      end

function f=func(x,rg)
      f=rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1));
end

有点小错误....fun应该是func
3楼2012-05-17 12:03:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
chaofan1231: 金币+5, ★★★★★最佳答案, 谢谢 2012-05-17 13:43:29
xzhdty: 金币+2, 谢谢参与 2012-05-19 16:43:29
可以吧for 给去掉,只留一句  f=fsolve(@(x) func(x,rg),1000);后面的function再接上就可以了...不需要那么麻烦
CODE:
function f=do(rg)

         x0=1000;
         f(i)=fsolve(@(x) func(x,rg),x0);

function f=func(x,rg)
      f=rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1));
end

简洁就是美

» 本帖已获得的红花(最新10朵)

4楼2012-05-17 12:08:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaofan1231

银虫 (小有名气)

送鲜花一朵
引用回帖:
4楼: Originally posted by lijie169 at 2012-05-17 12:08:00:
可以吧for 给去掉,只留一句  f=fsolve(@(x) func(x,rg),1000);后面的function再接上就可以了...不需要那么麻烦

function f=do(rg)

         x0=1000;
         f(i)=fsolve(@(x) func(x,rg),x0);

fun ...

再问一下,这是我循环中的一部分,用这个函数求解时每次循环都要迭代,运算量大,很 慢,有什么更好的办法吗?
5楼2012-05-17 13:45:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

引用回帖:
5楼: Originally posted by chaofan1231 at 2012-05-17 13:45:02:
再问一下,这是我循环中的一部分,用这个函数求解时每次循环都要迭代,运算量大,很 慢,有什么更好的办法吗?

你可以采用我最下面的代码,支持向量运算。一次性算完,采用矩阵的运算方法,听说matlab在矩阵运算里比for循环快N倍...你可以试试。
6楼2012-05-17 16:26:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaofan1231

银虫 (小有名气)

引用回帖:
6楼: Originally posted by lijie169 at 2012-05-17 16:26:17:
你可以采用我最下面的代码,支持向量运算。一次性算完,采用矩阵的运算方法,听说matlab在矩阵运算里比for循环快N倍...你可以试试。

不能算啊!Tsolve函数是我创建的M文件。跟你说的Func是一样的。只能算出来一个值。
rg =

    2.2000    2.0000    1.0000    1.2000    1.1000    1.5000    0.8000
    1.3000    1.5000    2.5000    2.6000    0.9000    1.1000    2.2000
    1.1000    1.3000    2.2000    0.9000    2.2000    2.2000    2.2000

>> t=fsolve(@(x)Tsolve(x,rg),1000)
Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt algorithm instead.
> In fsolve at 324

No solution found.

fsolve stopped because the last step was ineffective. However, the vector of function
values is not near zero, as measured by the default value of the function tolerance.


t =

  1.0628e+003
7楼2012-05-18 08:44:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chaofan1231

银虫 (小有名气)

引用回帖:
6楼: Originally posted by lijie169 at 2012-05-17 16:26:17:
你可以采用我最下面的代码,支持向量运算。一次性算完,采用矩阵的运算方法,听说matlab在矩阵运算里比for循环快N倍...你可以试试。

我想用矩阵运算的,但是我的方程太复杂了,含有指数,不知道怎么化成矩阵运算的形式。
8楼2012-05-18 08:47:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

貌似是用3楼的代码可以,我理解错了,不能使用直接向量求解。使用规则是rg是向量,不是矩阵,若要是矩阵,则需要修改主函数代码
CODE:
function f=do(rg)
      [m,n]=size(rg);
      x0=1000;
      f=zeros(m,n);
      for i=1:m
      for j=1:n
         f(i,j)=fsolve(@(x) func(x,rg(i,j)),x0);
      end
     end
function f=func(x,rg)
      f=rg-exp((1/0.0000005461-1/0.000000700)*0.014388/x+log((x-993.74731)/2869.03078)-5*log(700/546.1));
end
end

9楼2012-05-18 12:00:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

引用回帖:
9楼: Originally posted by lijie169 at 2012-05-18 12:00:13:
貌似是用3楼的代码可以,我理解错了,不能使用直接向量求解。使用规则是rg是向量,不是矩阵,若要是矩阵,则需要修改主函数代码

function f=do(rg)
      =size(rg);
      x0=1000;
      f=zeros(m,n);
...

最后的代码rg可以是矩阵也可以是向量,3楼的rg不能是矩阵
10楼2012-05-18 12:01:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 chaofan1231 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 s3fFTmArrBt6 2026-09-13 6/300 2026-09-17 23:16 by cuPZTDXS3VOd
[有机交流] 各位大神,目前国内有哪些比较好用的逆合成软件? 20+3 zapen 2026-09-15 7/350 2026-09-17 16:40 by 北京莱茵编辑
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 0pYnUiPDfdnk 2026-09-14 4/200 2026-09-17 14:15 by ObVzqQQh1rrE
[硕博家园] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 0pYnUiPDfdnk 2026-09-14 4/200 2026-09-17 14:15 by ObVzqQQh1rrE
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 40ms4Wlo4umh 2026-09-14 5/250 2026-09-17 14:05 by ObVzqQQh1rrE
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 Aj1rhIDL5ixY 2026-09-14 5/250 2026-09-17 05:14 by k06BKNblrGRH
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 Aj1rhIDL5ixY 2026-09-14 4/200 2026-09-17 04:52 by k06BKNblrGRH
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 6F5UbRU2I5hL 2026-09-14 6/300 2026-09-17 03:04 by Tql5LQhh5rLK
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-17 02:38 by Tql5LQhh5rLK
[考研] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 23jxep3nCNZb 2026-09-14 4/200 2026-09-16 21:03 by MHf40yA0Uhyb
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-16 17:00 by i3KBRD19ERkG
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 s3fFTmArrBt6 2026-09-13 6/300 2026-09-16 16:00 by i3KBRD19ERkG
[考博] 上海工程技术大学激光智能制造课题组|2027级博士研究生招生公告 +7 水士口 2026-09-16 8/400 2026-09-16 13:47 by kkklens
[考博] 上海工程技术大学激光智能制造课题组招收博士研究生 +8 两三岁ss 2026-09-14 8/400 2026-09-16 09:46 by 水士口
[考研] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 LwdutQ8HoqWP 2026-09-13 5/250 2026-09-16 03:14 by DgNGHc3h5tPl
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 3n8v2C8RimXI 2026-09-13 7/350 2026-09-16 02:35 by DgNGHc3h5tPl
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +7 QUjhNVAcOSff 2026-09-13 8/400 2026-09-16 02:23 by DgNGHc3h5tPl
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +7 s3fFTmArrBt6 2026-09-14 7/350 2026-09-15 16:23 by CgyNCDVNhGVg
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 6F5UbRU2I5hL 2026-09-14 4/200 2026-09-15 08:02 by C79jjtjAKjEn
[教师之家] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 s3fFTmArrBt6 2026-09-14 3/150 2026-09-15 07:46 by C79jjtjAKjEn
信息提示
请填处理意见