|
楼主 |
发表于 2012-11-10 00:42:18
|
显示全部楼层
自己编写的求一元二次方程求根的函数程序:
function y=roots12(a, b, c)
delta=b^2-4*a*c
if a== ...
txwgzyzz 发表于 2012-11-8 22:28
自己回答吧,从google上得到地回答
function [x1, x2]=roots12(a, b, c)//<---- 傳回值 x1,x2x1=%nan;x2=%nan; //<--- 初始傳回值先設為無解 (%nan 代表 Not a number)delta=b^2-4*a*cif a==0 disp("不是一元二次方程")elseif a~=0 & delta<0disp("方程无实根")else x1=(-b+delta^(1/2))/(2*a),x2=(-b-delta^(1/2))/(2*a)endendfunction
[x1,x2]=roots12(1,1,1)[x1,x2]=roots12(3,6,1)
要注意 :
1. 函數傳回值在函數內一定要給值
你給的函數
function y=roots12(a, b, c)
// 函數 裡面沒有給 y ,
endfunction
傳回值沒計算, 且兩根沒有傳出來, 這樣不可以
2 正常狀況要傳回兩實根 x1,x2 , 也要考慮無解時也需要傳回值 , 那麼用 %nan 當作無解時的傳回直
%nan 是 scilab 內定之常數,代表 not a number |
|