| 查看: 1184 | 回复: 10 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[交流]
【求助】如何循环解方程
|
|||
|
求教: 在一个M文件中求得的一个符号表达式,如何载入到另一个M文件中定义为一个可以数值求解的函数,并在前一个M文件中调用此函数并对其求解? 自己编的具体的程序如下:请各位路过的大内高手给修改一下啊。 M文件一。 clear syms x m n h alpha_m beta_m alpha_n beta_n alpha_h beta_h... Gna Gk Gl Ena Ek El I ;%定义的符号变量 alpha_m=0.1*(x+40)/(1-exp(-(x+40)/10)); %================ alpha_n=0.01*(x+55)/(1-exp(-(x+55)/10)); % alpha_h=0.07*exp(-(x+65)/20); % % beta_m=4*exp(-(x+65)/18); % beta_n=0.125*exp(-(x+65)/80); %九个符号表达式 beta_h=1/(1+exp(-(x+35)/10)); % m=alpha_m/(alpha_m+beta_m); % n=alpha_n/(alpha_n+beta_n); % h=alpha_h/(alpha_h+beta_h); % =================== f=I-Gna*m^3*h*(x-Ena)-Gk*n^4*(x-Ek)-Gl*(x-El); % 最终的符号表达式 I=[1:100]; for i=1:100 d=I(i); g(i)=subs(f,{Gna Gk Gl Ena Ek El I},[120 36 0.3 57 -77 -54.4 d]); % g(i)中的Gna Gk Gl Ena Ek El I是符号常量,用具体的数值替代 save g;%每次循环得到的g(i)都保存下来,用以载入到M文件二中,并在此文件中 %调用求解 [x,F]=fsolve('HHfsolve',-50) %解非线性方程,x的初值取-50,求其零点及其 % 在零点的函数值 end 以上程序每个循环求出一个g。 M文件二。建立函数 function F=HHfsolve(x) %定义的函数F,这是另外建的一个M文件。 load g; F=g(i); %使用的g(i)是M文件一中每次循环求得的g(i) 载入的是符号方程,此function 是不接受的,如何叫其接受? |
» 猜你喜欢
请问社科规划办官网上的“项目查询模块”与“项目申报模块”的账号密码一样吗?
已经有3人回复
用NBS溴化时溶剂除了CCl4外还有什么
已经有9人回复
40+中年人失业后,还能找到好工作吗?
已经有15人回复
二审4个多月了还是Awaiting Reviewer Scores
已经有5人回复
申请科研项目纯靠实力能成功吗?
已经有12人回复
极限拉扯,如何抉择
已经有15人回复
再次请教
|
谢谢高手帮我改的程序啊,但是有几个问题还需请教。 问题1: 我运行你的程序,为什么显示: ??? Error: File: D:\MATLAB6p1\work\uuuu.m Line: 10 Column: 40 "identifier" expected, "(" found. 我用的是Matlab6.1的版本。我把@改成 ‘ ’也不行。是版本的问题么?怎么修改? 问题二: 为什么要设置退出标志exitflag? 问题三: [x(i),fval(i),exitflag(i)]=fsolve(@(x)myfun(x,I(i)),-50)这行中@后面紧跟的(x)是什么意思?(x)与后面的函数名myfun是什么关系?@后面不是应该跟函数名么? |
4楼2009-10-16 08:40:26
6楼2009-10-16 09:48:03
★
nono2009(金币+1,VIP+0):谢谢交流!欢迎常来。 10-16 12:13
nono2009(金币+1,VIP+0):谢谢交流!欢迎常来。 10-16 12:13
|
解析法solve可以解出所有的零点。但是数值法fsolve只能解出给定的初值附近的一个零点,要解所有零点的话,除非知道各个零点的大概位置,然后给定一个初值的数组,再求解。例如: fsolve('x.^3-8*x.^2+x+10',[-1.5 1.5 8]) %可求三个零点。 fsolve('x.^3-8*x.^2+x+10', 8)%只能求一个零点 但是 solve(sym('x^3-8*x^2+x+10'))%可求所有的零点,解析解 问题: 有没有办法在不知道函数零点个数和分布的情况下,用fsolve求所有的零点呢? |
8楼2009-10-16 11:08:08










回复此楼