【matlab基础知识代码】(十七)一般非线性方程的数值解方法

复制代码
function y=myfun(x)
y=[x(1)*x(1)+x(2)*x(2)-1;0.75*x(1)^3-x(2)+0.9];
>> OPT=optimset; OPT.LargeScale='off'; [x,Y,c,d]=fsolve(f,[1; 2],OPT),

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the value of the function tolerance, and
the problem appears regular as measured by the gradient.

<stopping criteria details>

x =    方程的解

    0.3570
    0.9341


Y =    方程的误差

   1.0e-09 *

    0.1215
    0.0964


c =   标志位>0,求解成功

     1


d =    中间信息

  包含以下字段的 struct:

       iterations: 6   迭代次数
        funcCount: 21  调用函数
        algorithm: 'trust-region-dogleg'
    firstorderopt: 1.3061e-10
          message: '↵Equation solved.↵↵fsolve completed because the vector of function values is near zero↵as measured by the value of the function tolerance, and↵the problem appears regular as measured by the gradient.↵↵<stopping criteria details>↵↵Equation solved. The sum of squared function values, r = 2.406007e-20, is less than↵sqrt(options.FunctionTolerance) = 1.000000e-03. The relative norm of the gradient of r,↵1.306113e-10, is less than options.OptimalityTolerance = 1.000000e-06.↵↵'
Matlab 复制代码
>> [x,Y,c,d]=fsolve(f,[-1,0]',OPT); x, norm(Y), kk=d.funcCount,

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the value of the function tolerance, and
the problem appears regular as measured by the gradient.

<stopping criteria details>

x =

   -0.9817
    0.1904


ans =

   7.2257e-11


kk =

    15

误差限TolX 也就是X的误差限

重新设置相关精度的控制变量

精度高得多得多,因为把这个解代回到原始的方程里去,误差是一个非常接近零的数。我们可以修改控制变量,最后能得到双精度意义下的最好的结果

相关推荐
一根甜苦瓜11 分钟前
Go语言Slice的一道骚题
开发语言·后端·golang
驰羽19 分钟前
[GO]Go语言泛型详解
开发语言·golang·xcode
NPE~19 分钟前
[手写系列]Go手写db — — 第五版(实现数据库操作模块)
开发语言·数据库·后端·golang·教程·手写系列·手写数据库
润 下21 分钟前
C语言——深入解析C语言指针:从基础到实践从入门到精通(二)
c语言·开发语言·经验分享·笔记·学习·程序人生
西阳未落25 分钟前
LeetCode——双指针(进阶)
c++·算法·leetcode
布伦鸽38 分钟前
C# WPF DataGrid使用Observable<Observable<object>类型作为数据源
开发语言·c#·wpf
一二学长39 分钟前
异或相关的算法题
算法
say_fall1 小时前
精通C语言(4.四种动态内存有关函数)
c语言·开发语言
暴力求解1 小时前
c++类和对象(下)
开发语言·c++·算法
应用市场1 小时前
Qt插件机制实现动态组件加载详解
开发语言·qt