中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 5582查看
  • 1回复

含变参数的单变量非线性方程求解-MATLAB

[复制链接]


该用户从未签到

发表于 29-5-2010 09:41:56 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


请教各位朋友,我有个非线性问题纠结了很久,请各位帮忙,问题是这样的:我想要求解一个含变参数的单变量非线性方程-MATLAB,我的调用函数是
clear
global a cmod D GI s1 sa1 s2 sa2 fa
cmod=0.1214;D=600;GI=66.2454;
syms x a
s1=int(sqrt((1-x/a)^2+(1.081-1.149*a/D)*(x/a-(x/a)^2)),x,240,a);s2=int((1-x/a)^2+(1.081-1.149*a/D)*(x/a-(x/a)^2),x,240,a);
sa1=simple(s1);sa2=simple(s2);
a=fzero('fz',335)
M文件中的定义函数为
function fa=fz(a)
  syms a cmod D GI
  syms s1 sa1 s2 sa2 fa
  cmod=0.1214;GI=66.2454;
  fa=1000/(a-240)*(2.79*cmod*sa1-19.4811*cmod^2*sa2)-GI;
单变量为a,可是求解总是提示错误如下:
??? Function 'isfinite' is not defined for values of class 'sym'.
Error in ==> fzero at 309
    elseif ~isfinite(fx) || ~isreal(fx)
经查看,309行显示如下:
elseif ~isfinite(fx) || ~isreal(fx)
        error('MATLAB:fzero:ValueAtInitGuessComplexOrNotFinite',...
            'Function value at starting guess must be finite and real.');
请问是怎么回事,该怎样改动,才能求得a的值?

  • TA的每日心情
    奋斗
    3-1-2019 16:42
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 29-5-2010 20:54:23 | 显示全部楼层
    晕,俺也纠结,飘过~~
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 26-11-2024 05:43 , Processed in 0.277447 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.