1樓:
簡要的說,就是你的自定義函式沒有定義inline型別的輸入變數而且你的程式裡面也沒有用到fun
應該是呼叫的問題
gexian(@fun,0,1,1e-6)或者其他寫法試試
2樓:昨夜星辰
非常感謝jimtien,我也為有需要的人再提供一些幫助:
用割線法求方程 x^2-e^x=0 的根 matlab做
command window 視窗輸入:
clear all
global fnq dfnq
fnq = @(x) x^2 - exp(x); % x^2 - exp(x)=0,要求的原方程
dfnq = @(x) 2*x-exp(x); %一階導
tol = (1/2)*10^-4; %精度|x*-xk|<(1/2)*10^-4
gmax = 1e3; %最大值1000
x01 = -3; %區間[-3,3]
x02 = 3;
[k,xk,yk,piancha]=gexian(x01,x02,tol,gmax); 先把jimtien的程式儲存為gexian.m,以便此呼叫function
fprintf('\n割線法:%.5f\n', xk)
%上面的程式為一好友:童偉,所編。
3樓:匿名使用者
z=x-(feval(f,x)*(x-y))/(feval(f,x)-feval(f,y));
把f 改成fun
牛頓迭代法的matlab**
4樓:校溫
function y=f(x)
y=f(x);%函式f(x)的表示式
endfunction z=h(x)
z=h(x);%函式h(x)的表示式
end x=x;%迭代初值
i=0;%迭代次數計算
while i<= 100%迭代次數
x0=x-f(x)/h(x);%牛頓迭代格式if abs(x0-x)>0.01;%收斂判斷x=x0;
else break
endi=i+1;
endfprintf('\n%s%.4f\t%s%d','x=',x,'i=',i) %輸出結果
5樓:螃蟹剝了我的殼
主程式:
function [k,x,wuca,yx] = newton(x0,tol)
k=1;
yx1=fun(x0);
yx2=fun1(x0);
x1=x0-yx1/yx2;
while abs(x1-x0)>tol
x0=x1;
yx1=fun(x0);
yx2=fun1(x0);
k=k+1;
x1=x1-yx1/yx2;
endk;
x=x1;
wuca=abs(x1-x0)/2;
yx=fun(x);
end分程式1:
function y1=fun(x)
y1=sqrt(x^2+1)-tan(x);
end分程式2:
function y2=fun1(x)%函式fun(x)的導數
y2=x/(sqrt(x^2+1))-1/((cos(x))^2);
end結果:
[k,x,wuca,yx] = newton(-1.2,10^-5)k =8
x =0.9415
wuca =4.5712e-08
yx =-3.1530e-14
[k,x,wuca,yx] = newton(2.0,10^-5)k =243
x =nan
wuca =nan
yx =nan
6樓:心願留在
newton.m
function y=newton (x0)x1=x0-fc (x0)/df(x0)
n=1;
while (abs (x1-x0)>1.0e-6)&(n<=100000000)
x0=x1;
x1=x0-fc(x0)/df(x0);n=n+1;
endx1
nfc.m
function y=fc(x)
y=3*x.^2-exp(x);
df.m
function y=df(x)
y=6*x-exp(x);
Matlab解決物理問題,題目 利用Matlab軟體解決物理問題,問題如下 在高度h 10m處以速度v 10m s
u1 340 u2 1450 f1 200 f2 2000 m11 u1 f1 m12 u2 f2 m21 u2 f1 m22 u2 f2 題目 利用matlab軟體解決物理問題,問題如下 在高度h 10m處以速度v 10m s 如何用matlab來解決物理學的問題 70 先人工建立微分方程,再用m...
matlab引數方程畫橢球,怎樣用matlab畫橢球
theta beta meshgrid linspace 0,2 pi,1000 linspace 0,pi,1000 x 4 sin beta cos theta y 9 sin beta sin theta z cos beta mesh x,y,z 怎樣用matlab畫橢球?ellipsoid...
matlab程式if語句用法,Matlab中如何使用if語句?
matlab中我們常常用到條件判斷語句結構,通過例項介紹這個結構的用法 1 if.end結構,執行下面的句子,此條件語句是判斷5是否大於3,如果大於3,就將1賦值給 2 if.else.end 結構,我們以如下內容進行判斷 執行以上語句,結果如下a1 1,a2 1,判斷a1是否大於a2,顯然不大於,...