| 查看: 3486 | 回复: 2 | |||
[求助]
matlab解一元一次方程的问题 已有1人参与
|
|
matlab解一元一次方程的时候,用到fzero这个命令,但是一元一次方程中我有一个矩阵,matlab总是提示错误,但是当我把矩阵中的每一个值依次手动带入进去算就会出结果。。。这怎么解决呢。。。如果矩阵就几个值还可以手动挨个带入算,这要是几百个我会累死哒。。。。。 比方已知矩阵c=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100]; 用fzero解下面这个方程,零点大概位置都在1000附近, Q=fzero('x./(sqrt(x.^2+c(1,1))).*besselj(-1,x*1.75*10^-3).*besseli(0,1.75*10^-3.*sqrt(c(1,1)+x.^2))-besselj(0,x*1.75*10^-3).*besseli(-1,sqrt(c(1,1)+x.^2)*1.75*10^-3)',1000); 这样解matlab就报错。。。: ??? Error using ==> fzero at 307 FZERO cannot continue because user supplied expression ==> x./(sqrt(x.^2+c(1,1))).*besselj(-1,x*1.75*10^-3).*besseli(0,1.75*10^-3.*sqrt(c(1,1)+x.^2))-besselj(0,x*1.75*10^-3).*besseli(-1,sqrt(c(1,1)+x.^2)*1.75*10^-3) failed with the error below. Error in inline expression ==> x./(sqrt(x.^2+c(1,1))).*besselj(-1,x*1.75*10^-3).*besseli(0,1.75*10^-3.*sqrt(c(1,1)+x.^2))-besselj(0,x*1.75*10^-3).*besseli(-1,sqrt(c(1,1)+x.^2)*1.75*10^-3) Undefined function or method 'c' for input arguments of type 'double'. 如果我把c(1,1)带入就没问题,就出结果了: Q=fzero('x./(sqrt(x.^2+0.1)).*besselj(-1,x*1.75*10^-3).*besseli(0,1.75*10^-3.*sqrt(0.1+x.^2))-besselj(0,x*1.75*10^-3).*besseli(-1,sqrt(0.1+x.^2)*1.75*10^-3)',1000) 这样就木有问题。。 我想问下怎样才能不挨个代数进去。。。 |
» 猜你喜欢
投稿chemical physical letters不送审?
已经有2人回复
南开大学物理学院张书辉副教授招收凝聚态物理理论方向博士生、硕士生
已经有22人回复
物理学I论文润色/翻译怎么收费?
已经有85人回复
杂志要求提供official language-editing certificate
已经有4人回复
深圳大学2026年秋博士招生-物理学-活性胶体方向-高永祥课题组
已经有16人回复
论物质与能量的统一模型及物理现象解释
已经有0人回复
基于基元I统一理论的数学相关应用推导
已经有0人回复
基元I统一理论:宇宙本质、层级演化与修炼文明的本源规律
已经有1人回复
基元I理论下三大核心空间现象精准推导与细节解析
已经有0人回复
基于基元 I 统一理论的反重力理论推导
已经有0人回复
基于基元I统一理论的量子力学本源推导
已经有1人回复
whyjackeyson
金虫 (小有名气)
- 应助: 20 (小学生)
- 金币: 574.1
- 散金: 2
- 红花: 3
- 帖子: 83
- 在线: 32.3小时
- 虫号: 3529482
- 注册: 2014-11-10
- 性别: GG
- 专业: 传递过程
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
会飞的泡123: 金币+20, ★★★★★最佳答案 2015-11-09 21:20:09
感谢参与,应助指数 +1
会飞的泡123: 金币+20, ★★★★★最佳答案 2015-11-09 21:20:09
|
fzero函数使用错误,对于存在符号变量的求解使用fzero可以采用句柄方式代入,或者外部定义函数。 求解可使用循环语句。 c = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100]; for i = 1:28 Q(i) = fzero(@(x)x./(sqrt(x.^2+c(i))).*besselj(-1,x*1.75*10^-3).*besseli(0,1.75*10^-3.*sqrt(c(i)+x.^2))-besselj(0,x*1.75*10^-3).*besseli(-1,sqrt(c(i)+x.^2)*1.75*10^-3),1000); end |
2楼2015-11-09 18:31:07
3楼2015-11-09 21:19:50













回复此楼