求教这个matlab 小程序 ,如何设计?

目的是:用fsove求解非线性方程组。
写了个fun函数为:

function y=fun(x)
y(1)=f1(x1,x2)/f2(x1,x2)/-R(1);
y(2)= f3(x1,x2)/f4(x1,x2)-R(2);
说明:f1,f2,f3,f4 表示x1和x2的不同表示组合。R为一个已知的数组。
然后写下面程序调用fun函数解算非线性方程:

clc, clear all
close all
format long
x0=[0;0];
x=fsolve(@fun,x0);
我的问题是:现在我要想求出解,必须把R数组里面的数值放到fun函数中,所以一次只能解算R数组中每一行对应的方程组解。能不能动态的利用fun函数,同时解算出R数组里面每一行对应的方程组解?

function y=fun(x)
改为
function y=fun(x,R)

fsolve 改为如下,实现R的动态传递
fsolve(@fun,x0,options,R);
options随便定义个,比如:
options=optimset('TolFun',1e-4,'Tolx',1e-3,'Display','off');追问

我试了,但是出现计算结果不一样的现象。你这动态R和我手动一个一个输入R,结果数据之间有误差,不知道是什么原因!TolFun ,Tolx,Display 都是什么意思。

追答

1、你检查下两种情况下,每次计算用到的R值是不是一样的。
2、TolFun ,Tolx是精度的给定,你把精度提高试试,比如:'TolFun',1e-8,'Tolx',1e-6 。。。
3、Display 是计算状态的显示。

温馨提示:答案为网友推荐,仅供参考