作业帮 > 综合 > 作业

Matlab 求数值解

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/19 14:01:26
Matlab 求数值解
我想求 x-mod(x,100)=49/0.15 的解,结果发现没有解析解.可是我不知道怎么写matlab命令或者函数让它求出数值解,
可以限定一个范围,例如 300
Matlab 求数值解
ezplot('x-mod(x,100)-49/0.15',[0 1000])这是函数f(x)=x-mod(x,100)-49/0.15
在0~1000范围里的图像可见,如果有数有解,解会出现在x=400附近

这是函数值最接近0附件的图像ezplot('x-mod(x,100)-49/0.15',[350 450])可见,函数是不连续的正好在x=400前后出现跳变如果x<400得到的值是-26.66667如果x>=400得到的值是73.33333所以函数的确是没有解的,因为不可能有一个x取值使得f(x)=0

退而求其次,你可以用fzero函数平时用来数值解方程的函数,来求得这个跳变点fun=@(x) x-mod(x,100)-49/0.15;fzero(fun,0)
ans =
  400.0000
一般如果是连续的函数,fzero(fun,x0)可以找出函数在x0点附近的数值近似解fzero的原理是找出函数前后符号相反的点,不断缩小区间知道满足精度

用于你这个函数,fzero找到一个点400,之前f(x)<0,之后f(x)>0但实际上,f(x)取不到0