24小时热门版块排行榜    

查看: 744  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

夜的宁静

金虫 (小有名气)

[求助] matlab牛顿迭代的问题,出现Matrix dimensions must agre的错误 已有1人参与

在用用牛顿迭代求2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x)=0中的x 初值是0.03
function [x,fval]=newton()
clc;
syms x;
f=@(x)2*log10(5.4*10^-4+2.51*10^-5/sqrt(x))+1/sqrt(x);
df=@(x)diff(2*log10(5.4*10^-4+2.51*10^-5/sqrt(x))+1/sqrt(x));
t=1e-5;
x0=0.03;
x=x0+2*t;
k=0;
while abs(x-x0)>t
k=k+1;
x=x0;
x=x0-feval(f,x0)/feval(df,x0);%这句话有错,提示Matrix dimensions must agree.
end
if k==500
    disp('迭代次数过多,防止死循环终止');
else
    fprintf('迭代到%d次时得到结果%f\n',k,x)
end

matlab牛顿迭代的问题,出现Matrix dimensions must agre的错误
360反馈意见截图16570207506364.png
回复此楼

» 猜你喜欢

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

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

夜的宁静

金虫 (小有名气)

引用回帖:
2楼: Originally posted by 材料廖 at 2015-05-18 11:45:01
1.你的x0没有更新
2.报的错,调试时候发现feval(df,x0)是空矩阵

还是不知道怎么改,我是初学,因为用到现学的,所以基础不怎么样。x0没有更新什么意思
之前的赋值可能有些错误,改成这样还是不行,麻烦再看一下,十分感谢function [x,fval]=newton()
clc;
syms x;
f=@(x)2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x);
df=@(x)diff(2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x));
t=1e-5;
x=0.03;
x0=x+2*t;
k=0;
while abs(x-x0)>t
k=k+1;
x0=x;
x=x0-feval(f,x0)/feval(df,x0);%这句话有错,但不知道错在哪里
end
if k==500
    disp('迭代次数过多,防止死循环终止');
else
    fprintf('迭代到%d次时得到结果%f\n',k,x)
end
Tomakeeverydayccount.
3楼2015-05-18 22:23:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

材料廖

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
1.你的x0没有更新
2.报的错,调试时候发现feval(df,x0)是空矩阵
2楼2015-05-18 11:45:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

材料廖

木虫 (正式写手)

引用回帖:
3楼: Originally posted by 夜的宁静 at 2015-05-18 22:23:32
还是不知道怎么改,我是初学,因为用到现学的,所以基础不怎么样。x0没有更新什么意思
之前的赋值可能有些错误,改成这样还是不行,麻烦再看一下,十分感谢function =newton()
clc;
syms x;
f=@(x)2*log10(5.4 ...

试试这个看对不对
function x = newton()
clc
clear
syms x f df
f = 2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x);
df = diff(2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x));
t=1e-5;
x=0.03;
x0=x+2*t;
k=0;
while abs(x-x0)>t
    k=k+1;
    x0=x;
    x=x0-double(subs(f,x0)/subs(df,x0)); % feval(f,x0)./feval(df,x0);%这句话有错,但不知道错在哪里
end
if k==500
    disp('迭代次数过多,防止死循环终止');
else
    fprintf('迭代到%d次时得到结果%f\n',k,x)
end

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

4楼2015-05-19 15:56:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

夜的宁静

金虫 (小有名气)

送红花一朵
引用回帖:
4楼: Originally posted by 材料廖 at 2015-05-19 15:56:37
试试这个看对不对
function x = newton()
clc
clear
syms x f df
f = 2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x);
df = diff(2*log10(5.4*10^-4+2.51*10^-5/sqrt(x)) +1/sqrt(x));
t=1e-5;
x=0.03 ...

很完美,太感谢啦
Tomakeeverydayccount.
5楼2015-05-20 08:37:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 289求调剂 +8 怀瑾握瑜l 2026-03-20 8/400 2026-03-25 09:49 by 雾散后相遇lc
[考研] 化学调剂 +6 yzysaa 2026-03-21 6/300 2026-03-25 09:27 by aa331100
[考研] 085600材料与化工调剂 +8 A-哆啦Z梦 2026-03-23 13/650 2026-03-24 21:05 by greychen00
[考研] 招08考数学 +7 laoshidan 2026-03-20 16/800 2026-03-24 17:52 by 乌拉儿山脉
[考研] 一志愿南航材料专317分求调剂 +5 炸呀炸呀炸薯条 2026-03-23 5/250 2026-03-24 16:52 by 星空星月
[考研] 085404电子信息284分求调剂 +4 13659058978 2026-03-24 4/200 2026-03-24 12:15 by syl20081243
[考研] 341求调剂(一志愿湖南大学070300) +5 番茄头--- 2026-03-22 6/300 2026-03-23 23:45 by Txy@872106
[考研] 一志愿国科过程所081700,274求调剂 +3 三水研0水立方 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[考研] 一志愿武理材料工程348求调剂 +6  ̄^ ̄゜汗 2026-03-19 9/450 2026-03-23 19:53 by pswait
[考研] 316求调剂 +7 梁茜雯 2026-03-19 7/350 2026-03-23 16:21 by lingjue
[考研] 298求调剂 +8 上岸6666@ 2026-03-20 8/400 2026-03-23 11:02 by laoshidan
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 276求调剂 +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by 醉在风里
[考研] 311求调剂 +3 26研0 2026-03-20 3/150 2026-03-22 14:46 by ColorlessPI
[考研] 材料求调剂 +5 @taotao 2026-03-21 5/250 2026-03-21 20:55 by lbsjt
[考研] 311求调剂 +3 勇敢的小吴 2026-03-20 3/150 2026-03-21 17:40 by ColorlessPI
[考研] 313求调剂 +4 肆叁贰壹22 2026-03-19 4/200 2026-03-21 17:33 by ColorlessPI
[考研] 求调剂 +3 白QF 2026-03-21 3/150 2026-03-21 13:12 by zhukairuo
[考研] 材料与化工 322求调剂 +4 然11 2026-03-19 4/200 2026-03-20 22:12 by luoyongfeng
[考研] 295材料求调剂,一志愿武汉理工085601专硕 +5 Charlieyq 2026-03-19 5/250 2026-03-20 20:35 by JourneyLucky
信息提示
请填处理意见