انجمن سایت کلیدستان



لطفا تو نوشتن این تابع کمکم کنینزمان کنونی: ۱۳۹۵/۰۹/۱۶، ۱۰:۲۶ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: cloner
آخرین ارسال: cloner
پاسخ 31
بازدید 15994

رتبه موضوع:
  • 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
لطفا تو نوشتن این تابع کمکم کنین

لطفا تو نوشتن این تابع کمکم کنین

#1
تابعی بنویسید که یک ماتریس مقادیر معلوم , ماتریس ضرایب را دریافت نموده و پس از بررسی همه شرایط سازگاری AX=B این دستگاه معادلات را با استفاده از روش حذفی گاوس حل نماید.
ممنون میشم کمکم کنین
 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#2
این لینک ها رو نگاه کن شاید به دردت بخوره:
http://www.adadi.ir/6661560-%D8%B1%D9%88...imination/

http://www.matlabsite.com/tag/%D8%B1%D9%...9%88%D8%B3


این لینک زیر شامل فایل ورد است که از طریق چند روش معادله بالا رو حل کرده ، لینک رو که کلیک کردی یک فایل ورد رو دانلود میکنی :

https://www.google.com/url?sa=t&rct=j&q=...3115,d.Yms
دوست دارم زندگی رو . . . 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#3
مرسی از توضیحاتتون

 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#4
من فایل وورد رو مطالعه کردم
و بخشی که به مورد نیاز من بود روش گاوس هستش

کد:
function X=GE(A,B)
tic
[r,c]=size(A);
for i=1:r-1
    for j=i+1:r
        lambda=A(j,i)/A(i,i);
        A(j,:)=A(j,:)-lambda*A(i,:);
        B(j)=B(j)-lambda*B(i);
    end
end
X=zeros(r,1);
X(r)=B(end)/A(end,end);
for i=r-1:-1:1
    A(i,i+1:end)
    X(i+1:end)
    X(i)=(B(i)-(A(i,i+1:end)*X(i+1:end)))/A(i,i);
end
toc
end

اگه لطف کنین کدهایی که تو این قسمت هست رو یه توضیح بدین و بگین که کاره هر یک از کدها چی هستش  ممنون میشم
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#5
سلام.
در همان فایل، فرمول ها ذکر نشده بود ؟
کدها چیز خاصی ندارن، فقط اجرای یک سری فرمول (یک روند مشخص) هستند. tic و toc برای تعیین زمان پردازش به کار می رود. کل کدها هم به صورت تابع ( function )نوشته شده، بنابراین باید کدها رو در یک m-file کپی کرده و سپس با نام GE ذخیره کنید. دستور zeros برای ساخت یک ماتریس است که تمام عناصر آن برابر صفر باشد. دستور size هم برای تعیین اندازه ماتریس ها به کار میره.
همچنین کلمه end ، نمایش دهنده آخرین عنصر در یکی از ابعاد ماترس است. مثلا این کد را ببینید :

کد:
A(2,4:end)

برای شماره ستون، عبارت زیر نوشته شده :

کد:
4:end

که معنی آن این است که ستون های از شماره 4 تا آخرین ستون. بنابراین کد قبل، به همه عناصری از A اشاره می کند که در ردیف شماره 2 قرار گرفته اند و شماره ستون آنها، از 4 تا آخرین ستون می باشد.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط 4i469x

لطفا تو نوشتن این تابع کمکم کنین

#6
سلام نه خیر هیچ فرمولی تو فایل وررد ذکر نشده بود.
توضیحاتی هم که راجع به کد های تابع دادین خیلی اجمالی و سریع بود
اگه لطف کنین کمی بیشتر و با جزییات کدها رو توضیح بدین و کاربرد هرکدوم رو بهم بگین ممنون میشم.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#7
این کدها هیچ چیز خاصی برای توضیح دادن نداره. بهتره به دنبال روش باشید و ببینید روش چی بوده، وگرنه کدنویسی آن، به جز مواردی که گفتم، یک سری ارجاع به ردیف ها و ستون های بردارها و جمع و ضرب هست. شما مثلا اگر نمی دونید دستور zero چطور عمل میکنه، به مباحث سایت در رابطه با این دستور مراجعه کنید و سایر دستورات نیز همین طور. در سایت، یک راهنما برای دستورات متلب، بر اساس حرف اول آنها، وجود دارد. مباحث مربوط به این دستورات را با این راهنما، پیدا کرده و بخوانید.
ما تمامی مباحث را نوشتیم، تا نیاز به تکرار آنها نباشد.
در اینترنت، ((روش حذفی گاوس)) را جستجو کنید و سپس ببینید که چگونه عمل می کند. آنگاه متوجه خواهید شد که هر خط از کدها، به چه منظوری نوشته شده است.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#8
مرسی admin دستت درد نکنه ممنون
خیلی راهنمایی کردین ممنون
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#9
4i469x
این فایل ورردی که بهم دادی حاوی پروژهای درسی بود که مربوط به درس بنده میشه
اگه باز هم از این گونه فایل ها داشته باشین خواهش میکنم در اختیارم بزارید تا استفاده کنم ازشون ممنون میشم
لطفا ایمیل کنین

 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#10
دوست عزیز معنی کدهای تیک و تاک چی هستش؟؟
من میخوام یه تابعی بنویسم که تیک و تاک توش بکار نرفته باشه
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#11
(۱۳۹۲/۰۸/۰۸, ۱۱:۰۱ ب.ظ)'cloner' نوشته: دوست عزیز معنی کدهای تیک و تاک چی هستش؟؟
من میخوام یه تابعی بنویسم که تیک و تاک توش بکار نرفته باشه

 

برای تعیین مقدار زمان اجرای دستورات می باشد، در مبحث زیر شرح داده شده :

http://www.kelidestan.com/matlab/matlab-19.php

برای حذفشون، دو کلمه tic و toc را از برنامه حذف کنید.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#12
متوجه شدم که تیک و تاک چه کاربردی دارند
اما اگه دستورات تیک و تاک رو از تابع حذف کنیم مشکلی پیش نمیاد؟
در ضمن دستور lambda رو نتونستم تو سایت پیدا کنم که مفهومش چیه؟


 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#13
خیر، اگر حذف بشن مشکلی پیش نمیاد.
lambda یک متغیر هست که در کدها تعریف شده، نه یک دستور. شما باید به سراغ اصول اولیه برنامه نویسی متلب بروید و همه آنها را بخوانید.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#14
(۱۳۹۲/۰۸/۰۹, ۰۴:۵۱ ب.ظ)'admin' نوشته:  

ادمین همون طور که گفتی تیک و تاک رو از تابع حذف کردم و برنامه هیچ اروری نداد
فقط میشه بگین که چطور میتونم این تابع رو تست کنم
بعنوان مثال چطور میشه این معادله رو به تابع بدم تا برام حل کنه
A=[1,-2,3;-1,2,-2;2,-2,3]
B=[-2;3;-7]
 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#15
کد:
X=GE([1,-2,3;-1,2,-2;2,-2,3],[-2;3;7])

 

 
دوست دارم زندگی رو . . . 
پاسخ
 سپاس شده توسط cloner

لطفا تو نوشتن این تابع کمکم کنین

#16
نقل قول: 
مهندس من این کدی که دادی رو زذم و این پیغامو نمایش داد
Error using GE (line 5)
Not enough input arguments.
 
که در لاین 5 فقط اندازه ماتریسو تعریف کرده چیزه خاصی نداره
اگه بگید مشکل چیه ممنون میشم


 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#17
اینطور که تو کدها میبینم شاید باید ماتریس های A و B مربعی باشند ، توضیحات کدی که پیدا کردی رو خوب بخون و روش محاسبه رو به صورت تئوری مطالعه کن. برای درک یک کد باید مثالی که خودت نوشتی همون ماتریس های A و B که تعریف کردی رو خودت برای هر خط کد بنویسی ، منظور اینه که خودت باید دستی خروجی هر خط رو بنویسی و بعد میفهمی مشکل چیه مثلا خط اول کد سایز ماتریس A رو در دو متغیر r و c ذخیره میکنه ، این متغیرها رو خودت دستی بنویس و بعد خط بعد ، به این ترتیب به جای متغیرهای در کدهایی که نوشتی عددهایی که از خط قبلی کد به دست آوردی بنویس و بیا پایین ، اینطوری مشکل رو پیدا میکنی. البته میدونم که اصلا این کارهایی رو که مینویسم انجام نمیدی ! ولی نوشتم که نوشته باشم.
دوست دارم زندگی رو . . . 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#18
(۱۳۹۲/۰۸/۱۵, ۰۱:۰۲ ب.ظ)'4i469x' نوشته:  
دوست عزیز متلب ارور میده که تابع ورودی یا ارگومان بیش از حد مجاز میباشد
برعکس حالت قبل
در ضمن میخوام که حساب کنم بصورت دستی یه مشکل کوچیک هست اونم اینه که نمیدونم i و j که تو چند خط اول هست نشانگر چی هستش
کد پی‌اچ‌پی:
[r,c]=size(A);
for 
i=1:r-1
    
for j=i+1:
اگر شما مفهوم این کد رو بهم بگین ممنون میشم بعد خودم بصورت دستی حساب میکنم
 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#19
cloner ، همونطور که گفتم شما اصلا مطالعه نمیکنی ، i و j برای دستور for است یعنی تعداد تکرار حلقه رو میگه . توضیحات دستور for  رو از کلیدستان بخون. وقتی تو خط اول i یک مقداری گرفته میشه در دستور for رد خط بعد مقدار j از 1+i که در حافظه ذخیره شده محاسبه میشه تا مقدار r که مقدار اولین داده ماتریس size است.

 
دوست دارم زندگی رو . . . 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#20
نقل قول:  
مهندس مثل پست قبلی به مشکل برخوردم نمیدونم که این کد رو چطوری تو فانکشن قرار بدم
((کلا این قسمت کد نویسی خیلی مشکله نمیشه تشخیص داد چطور نوشت))
کد پی‌اچ‌پی:
function[X]=GE(A)
%
UNTITLED Summary of this function goes here
%   Detailed explanation goes here
[r,c]=size(A);
for 
i=1:r-1
    
for j=i+1:r
        lambda
=A(j,i)/A(i,i);
        
A(j,:)=A(j,:)-lambda*A(i,:);
        
B(j)=B(j)-lambda*B(i);
    
end
end
 
X
=zeros(r,1);
X(r)=B(end)/A(end,end);
 
for 
i=r-1:-1:1
    A
(i,i+1:end)
    
X(i+1:end)
X(i)=(B(i)-(A(i,i+1:end)*X(i+1:end)))/A(i,i);
end

end 
درسته؟؟؟/


 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#21
ابتدا باید تذکر بدهم که بهتر است نام دیگری برای تابع انتخاب کنید، چون خود نرم افزار متلب، تابعی با نام ge دارد (می دانم حروف GE بزرگ است، ولی اگر خود کلمه فرق داشته باشد، بهتر است).
کدها غلط است، زیرا متغیر B اصلا تعریف نشده و خطای زیر را ایجاد می کند :

کد:
??? Undefined function or variable "B".

Error in ==> GE at 9
        B(j)=B(j)-lambda*B(i);

شما باید B را هم به عنوان ورودی برای تابع، تعریف کنید.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#22
ادمین والا خیلی پیچیده هستش
اگه خودت تو فانکشن بزاری ممنون میشم


 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#23
 اصلا پیچیده نیست. شما تنها باید در خط اول تعریف تابع، در کنار نماد A ، نماد B را هم بگذارید (با یک علامت , در بین آنها). خودتان می توانید (هدف یادگیری شما است).
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#24
(۱۳۹۲/۰۸/۲۷, ۱۱:۴۴ ق.ظ)'admin' نوشته:  اصلا پیچیده نیست. شما تنها باید در خط اول تعریف تابع، در کنار نماد A ، نماد B را هم بگذارید (با یک علامت , در بین آنها). خودتان می توانید (هدف یادگیری شما است).

 

ادمین درسته؟

کد پی‌اچ‌پی:
function[X]=GE(A,B)
%
UNTITLED Summary of this function goes here
%   Detailed explanation goes here
[r,c]=size(A,B);
for 
i=1:r-1
    
for j=i+1:r
        lambda
=A(j,i)/A(i,i);
        
A(j,:)=A(j,:)-lambda*A(i,:);
        
B(j)=B(j)-lambda*B(i);
    
end
end
 
X
=zeros(r,1);
X(r)=B(end)/A(end,end);
 
for 
i=r-1:-1:1
    A
(i,i+1:end)
    
X(i+1:end)
X(i)=(B(i)-(A(i,i+1:end)*X(i+1:end)))/A(i,i);
end

end 

 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#25
شما فقط باید در خط اول برنامه، قرار می دادین. مثلا کد زیر غلطه :

کد:
[r,c]=size(A,B);

در کل فکر می کنم که این طوری برنامه نویسی متلب یاد نمیگیرین. شما خیلی راحت میتونستین برنامه رو اجرا کنید و ببینید که خطا میده. اما به جای این کار، کدها رو در اینجا copy و paste می کنید تا من خطایابی کنم. دیگر پاسختان را نمی دهم، زیرا باید اراده ای برای یادگیری در سوال کننده باشد. 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#26
ادمین اتفاقا خیلی مشتاقم که برنامه نویسی با متلب رو یاد بگیرم
دلیل اینکه کدها رو کپی پست کردم این بود که اون زمان پشت کامپیوتر خودم نبودم و برنامه متلب رو سیستم دوستم نصب نبود
با این حال جوابه درست کدها رو بهتون میفرستم تا ببینید که الکی وقتمو تلف نمیکنم
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#27
عالیه ! چون هدف از راه اندازی سایت کلیدستان هم همینه . قوی تر شدن برنامه نویسی من و سایر کاربران سایت، اولین اولویت است. به نظر من، انجام پروژه در اولویت دوم می باشد (وقتی از دانشگاه فارغ التحصیل شوید و همه استرس های آنجا را فراموش کنید، کاملا متوجه منظورم می شوید). عجله نکنید و اگر می توانید بخشی از کدها را خودتان بنویسید، هرگز به سراغ دیگران نروید. اگر سوالی باشد که ببینم قبلش به دنبال پاسخ بوده اید اما به نتیجه نرسیده اید، پاسخ می دهم. 

شما سماجت زیادی در این زمینه دارید، اگر خوب به راهنمایی ها گوش یدهید، حتما یک برنامه نویس موفق می شوید. 
 

 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#28
 
کد پی‌اچ‌پی:
function X=hazf(A,B)
[
r,c]=size(A);
for 
i=1:r-1
    
for j=i+1:r
        lambda
=A(j,i)/A(i,i);
        
A(j,:)=A(j,:)-lambda*A(i,:);
        
B(j)=B(j)-lambda*B(i);
    
end
end
 
X
=zeros(r,1);
X(r)=B(end)/A(end,end);
 
for 
i=r-1:-1:1
    A
(i,i+1:end)
    
X(i+1:end)
X(i)=(B(i)-(A(i,i+1:end)*X(i+1:end)))/A(i,i);
end
end 

این دستور رو تایپ میکنم

کد پی‌اچ‌پی:
>> X=hazf([2 4 --2;1 2 4 -3;--3 8 -2; -1 1 6 -3],[-4;5;7;7]) 

این جوابو میده

کد پی‌اچ‌پی:
ans =

   
Inf


ans 
=

   
NaN


ans 
=

     
5    -2


ans 
=

   
NaN
   NaN


ans 
=

     
4    -2    -2


ans 
=

   
NaN
   NaN
   NaN


=

   
NaN
   NaN
   NaN
   NaN 

درحالی که هیچ ارروری نمیده و لی جوابم نمیده
 
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#29
ادمین چرا نظرتو نمیده
من که کدهارو قرار دادم
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#30
من معمولا برای خطا در کدنویسی راهنمایی می کنم، ولی کد شما خطا نمی دهد و باید الگوریتم را چک کنید. مقدار NaN در اثر ایجاد ابهام و یا خیلی بزرگ یا کوچک بودن اعداد، تولید می شود. مثلا برای ابهام صفر تقسیم بر صفر و ...
بنابراین باید ببینید کدام قسمت الگوریتم شما باعث به وجود آمدن NaN ها می شود.
در ضمن ببینید که الگوریتم برای چه نوع ورودی هایی طراحی شده است.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لطفا تو نوشتن این تابع کمکم کنین

#31
ادمین گفته های شما تا حدودی درسته
پس از بررسی کدها متوجه شدم که این برنامه فقط قادره ماتریس هایی رو حل کنه که نیاز به محور گیری نداشته باشه
اگر ماتریسی بدیم که با محورگیری حل بشه مثل ماتریس بالا درست حل نمیکنه و یه جایی از کدها رو تقسیم بر صفر میکنه و NAN رو نمایش میده


 
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)