| 查看: 840 | 回复: 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 是不接受的,如何叫其接受? |
» 猜你喜欢
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
11楼2010-03-26 16:13:18
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
★ ★ ★ ★ ★
dxyhn1979(金币+3,VIP+0):您太负责了,感谢 10-16 08:42
nono2009(金币+2,VIP+0):谢谢热心帮助。欢迎常来交流。 10-16 10:42
dxyhn1979(金币+3,VIP+0):您太负责了,感谢 10-16 08:42
nono2009(金币+2,VIP+0):谢谢热心帮助。欢迎常来交流。 10-16 10:42
|
function uuuu clear all clc I=1:100; x=zeros(length(I),1); fval=zeros(length(I),1); exitflag=zeros(length(I),1); for i=1:length(I) [x(i),fval(i),exitflag(i)]=fsolve(@(x)myfun(x,I(i)),-50); %解非线性方程 clc end fprintf('\tI值\t\t\tx\t\t\t\tF函数值\t\t\t退出标志\n') for i=1:length(I) fprintf('\t%3d\t\t%.6f\t\t%18.15f\t\t%d\n',I(i),x(i),fval(i),exitflag(i)) end function F = myfun(x,I) Gna = 120; Gk = 36; Gl = 0.3; Ena = 57; Ek = -77; El = -54.4; 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); |
2楼2009-10-15 21:50:25
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
|
I值 x F函数值 退出标志 1 -64.124710 -0.000000000626284 1 2 -63.406532 -0.000000000014806 1 3 -62.761205 -0.000000038429155 1 4 -62.174730 -0.000000004618033 1 5 -61.636734 -0.000000000457350 1 6 -61.139344 -0.000000336767181 1 7 -60.676457 -0.000000088322634 1 8 -60.243252 -0.000000000002829 1 9 -59.835857 -0.000000000000636 1 10 -59.451120 -0.000000000000164 1 11 -59.086440 -0.000000000000071 1 12 -58.739645 -0.000000260019326 1 13 -58.408906 -0.000000101991687 1 14 -58.092664 -0.000000038832987 1 15 -57.789585 -0.000000014318209 1 16 -57.498511 -0.000000005086874 1 17 -57.218439 -0.000000001738415 1 18 -56.948486 -0.000000000563920 1 19 -56.687878 -0.000000000174877 1 20 -56.435927 -0.000000000050592 1 21 -56.192021 -0.000000000014172 1 22 -55.955613 -0.000000000004258 1 23 -55.726212 -0.000000000001374 1 24 -55.503376 -0.000000000000131 1 25 -55.286703 -0.000000000000632 1 26 -55.075831 0.000000000000932 1 27 -54.870427 -0.000000171568804 1 28 -54.670190 -0.000000050532913 1 29 -54.474841 -0.000000012184084 1 30 -54.284127 -0.000000002222327 1 31 -54.097813 -0.000000000267222 1 32 -53.915682 -0.000000000028871 1 33 -53.737535 -0.000000000011636 1 34 -53.563184 -0.000000000004674 1 35 -53.392458 -0.000000000001683 1 36 -53.225196 -0.000000000000867 1 37 -53.061249 -0.000000000000377 1 38 -52.900475 -0.000000000000168 1 39 -52.742745 -0.000000000000110 1 40 -52.587936 -0.000000000000016 1 41 -52.435931 -0.000000000000016 1 42 -52.286624 -0.000000098508126 1 43 -52.139911 -0.000000038503932 1 44 -51.995698 -0.000000013468217 1 45 -51.853892 -0.000000004064594 1 46 -51.714409 -0.000000001009519 1 47 -51.577167 -0.000000000193678 1 48 -51.442090 -0.000000000025346 1 49 -51.309103 -0.000000000001720 1 50 -51.178140 -0.000000000000152 1 51 -51.049133 -0.000000019765672 1 52 -50.922020 -0.000000007223862 1 53 -50.796743 -0.000000002311422 1 54 -50.673243 -0.000000000619430 1 55 -50.551467 -0.000000000130497 1 56 -50.431364 -0.000000000020393 1 57 -50.312885 -0.000000000002138 1 58 -50.195981 -0.000000000000068 1 59 -50.080609 -0.000000066465205 1 60 -49.966725 -0.000000001976755 1 61 -49.854288 0.000000000000025 1 62 -49.743258 -0.000000000000459 1 63 -49.633598 -0.000000000007092 1 64 -49.525271 -0.000000000048448 1 65 -49.418241 -0.000000000244035 1 66 -49.312476 -0.000000000926503 1 67 -49.207943 -0.000000002914672 1 68 -49.104611 -0.000000007835369 1 69 -49.002450 -0.000000000000226 1 70 -48.901431 -0.000000000000004 1 71 -48.801527 -0.000000000000036 1 72 -48.702710 -0.000000000001719 1 73 -48.604955 -0.000000000012070 1 74 -48.508238 -0.000000000061102 1 75 -48.412533 -0.000000000253589 1 76 -48.317818 -0.000000000835056 1 77 -48.224070 -0.000000002343272 1 78 -48.131267 -0.000000005828925 1 79 -48.039390 -0.000000013175330 1 80 -47.948416 -0.000000027489009 1 81 -47.858328 -0.000000053554788 1 82 -47.769105 0.000000000000010 1 83 -47.680729 -0.000000000000063 1 84 -47.593183 0.000000000000007 1 85 -47.506449 -0.000000000000075 1 86 -47.420511 0.000000000000071 1 87 -47.335351 -0.000000000000149 1 88 -47.250955 -0.000000000000077 1 89 -47.167308 -0.000000000000067 1 90 -47.084393 -0.000000000000148 1 91 -47.002198 -0.000000000000373 1 92 -46.920707 -0.000000000000667 1 93 -46.839908 -0.000000000000860 1 94 -46.759787 -0.000000000000716 1 95 -46.680331 0.000000000000061 1 96 -46.601527 0.000000000000025 1 97 -46.523365 -0.000000000550386 1 98 -46.445831 -0.000000015615780 1 99 -46.368914 -0.000000000000045 1 100 -46.292603 -0.000000000000184 1 |
3楼2009-10-15 21:51:34
再次请教
|
谢谢高手帮我改的程序啊,但是有几个问题还需请教。 问题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













回复此楼